杰理可视化SDK开发-杰理SDK代码区域说明 📅 2026/6/24 5:31:28 前言现在为止也开发了许多杰理TWS蓝牙耳机、音响项目SDK的案子在调试案子时不断的向前辈们学习到了很多关于蓝牙音响、蓝牙TWS耳机专业的知识。想在这里做一个学习汇总方便各位同行和对杰理芯片SDK感兴趣的小伙伴们学习本章详细讲解杰理可视化SDK开发SDK代码区域说明通常JL硬件设备包含flash和RAM两大物理存储介质程序编译链接后生成的可执行文件如ELF通常被划分为多个段section每个段存放特定类型的数据或代码。 这些段在程序加载和运行时会被放置到flash或RAM中。其中他们之间的关系如下表所示。段内容存储位置烧录后运行时位置是否占用flash是否占用RAM.text可执行指令代码函数等flashflash是否.rodata只读常量flashflash是否.data_code可执行指令放RAMflashRAM是是.data已初始化的全局/静态变量flash初始值RAM是存初始值是.bss未初始化的全局/静态变量无RAM否是堆动态内存无RAM否是栈局部变量、函数调用无RAM否是overlay内存复用空间flashRAM是是杰理蓝牙设备中各个代码的位置如下图所示红色框的文件是占用RAM橙色框的文件是占用FLASH绿色框的文件为辅助信息不用理会sdl.lst文件.lst文件是列表文件Listing File由编译器/汇编器生成的一种文本格式的中间文件。它的核心作用是将源代码、汇编指令、机器码和地址信息一一对应地列出来用于代码分析和调试。flash存储介质1、断电后数据不丢失2、主要用于存储。存放我们编译好的代码.text段、常量.rodata段这里杰理是合并入.text段3、代码放到flash:CPU的程序计数器直接指向flash的地址空间来读取指令并执行运行效率一般4、flash区域中代码越多程序代码量越大5、成本相对较低RAM存储介质1、随机存取存储器断电后数据丢失2、主要用于运行。存放动态变化的变量全局变量、推、栈、函数调用时的现场数据3、代码放到RAM系统启动后需要有一段专门的启动代码将这个代码段从flash中拷贝到它在RAM中的指定位置拷贝完成后CPU再跳转到RAM中的地址去执行运行效率更高4、成本相对较高以下是各个段在开发中常见的表现形式注意函数中的局部变量一定要定义初始值不然程序运行时会设置随机值导致程序的不正常运行个人小结程序在开发编译链接后生成的可执行文件会被划分多个段每个段存放特定类型的数据代码。这些段在程序加载和运行时会被放置到flash或者RAM中。段.text段可执行指令代码函数等.rodata段只读常量.data_code可执行指令放RAM.data已初始化的全局/静态变量.bss未初始化的全局/静态变量堆动态内存栈局部变量、函数调用overlay内存复用空间制作不易喜欢的小伙伴给个小赞赞喜欢我的小伙伴点个关注有不懂的地方和需要的资源随时问我哟