当前位置: 首页 > news >正文

杰理可视化SDK开发-杰理SDK代码区域说明

前言

现在为止也开发了许多杰理TWS蓝牙耳机、音响项目SDK的案子,在调试案子时不断的向前辈们学习到了很多关于蓝牙音响、蓝牙TWS耳机专业的知识。想在这里做一个学习汇总,方便各位同行和对杰理芯片SDK感兴趣的小伙伴们学习;

本章详细讲解杰理可视化SDK开发SDK代码区域说明

通常,JL硬件设备包含flash和RAM两大物理存储介质,程序编译链接后生成的可执行文件(如ELF)通常被划分为多个段(section),每个段存放特定类型的数据或代码。 这些段在程序加载和运行时,会被放置到flash或RAM中。其中他们之间的关系如下表所示。

内容

存储位置(烧录后)

运行时位置

是否占用flash

是否占用RAM

.text

可执行指令(代码函数等)

flash

flash

.rodata

只读常量

flash

flash

.data_code

可执行指令放RAM

flash

RAM

.data

已初始化的全局/静态变量

flash(初始值)

RAM

是(存初始值)

.bss

未初始化的全局/静态变量

RAM

动态内存

RAM

局部变量、函数调用

RAM

overlay

内存复用空间

flash

RAM

杰理蓝牙设备中各个代码的位置如下图所示

红色框的文件是占用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:内存复用空间


制作不易!喜欢的小伙伴给个小赞赞!喜欢我的小伙伴点个关注!有不懂的地方和需要的资源随时问我哟!

http://www.jsqmd.com/news/1070986/

相关文章:

  • 【AI应用实战-WorkBuddy】效率翻倍:我的 WorkBuddy 工作流分享(十八)
  • DiskGenius:机械硬盘坏了怎么修复?机械硬盘有坏道,记录使用DiskGenius修复全过程
  • 计算机毕业设计之基于jsp“明丽书屋”图书管理系统
  • 事件中心客户端_azure-eventhub-rust
  • 呆啵宠物DyberPet:让二次元角色活在你的桌面,打造专属数字伙伴的终极指南
  • 项目实训个人9--api适配
  • 27家投标,21家满分并列第一!
  • Softer-NMS 深度技术解析:从定位不准确性到精准边框的后处理革命
  • 【聊天机器人项目】7.结合Ollama,Streamlit实现聊天机器人
  • 分布式事务的几种实现方式
  • 如何用不到百元成本打造你的AI语音交互机器人?ESP32开源项目实战指南
  • Pandora与CVE漏洞分析:Kaspersky CVE-2023-23349等安全漏洞实战利用指南 [特殊字符]
  • Workflow-Orchestration 与 Durable Execution
  • linux系统编程(一):pthread常用函数
  • 大模型幻觉治理:2026前沿技术与实战指南
  • 【万字精讲】计算机网络高频填空简答18题:从死记硬背到体系化精通(原题+深度解析+避坑指南)
  • 别再找 Prompt 模板了:提示词的本质,是你和 AI 的任务契约
  • office 2021 下载安装激活
  • 建筑石材选型的数据分析:用pandas对比8类石材性能
  • 第40章:移动端中的AI编程——Flutter/React Native/Kotlin
  • 企业客户获取软件三个月功能使用分析:实际价值与局限性评估
  • 鸿蒙系统的状态和事件
  • AndHook性能优化:提升Android动态插桩效率的10个技巧
  • 一建机电备考笔记(46)建筑电气施工—变配电施工(变压器)(含考频+题型)
  • PhoneVR性能优化技巧:如何降低延迟提升VR体验
  • go-duktape在生产环境中的应用:微服务配置与动态脚本
  • Cursor实战案例-金融量化-01-A股行情净化:用Cursor自动构建Tushare异常数据清洗与MongoDB落库管道
  • Harness工程学习--Learn Claude Code从0到1--(2)
  • 豆包+九章编程法 排错 Claude C Compiler (CCC) - 常量折叠优化pass 顶级AI写代码,排错一下见水平
  • Outraged AI: Large language models prioritise emotion over cost in fairness enforcement