📘 TWS 内存优化实战

30章 · 从入门到报告
⚡ 嵌入式软件 · 手把手内存优化 · 友好色系
01TWS内存全景
SRAM、Flash、PSRAM 角色与系统架构
02编译与链接基础
GCC流程 · 链接脚本 · map文件分析
03栈(Stack)深度分析
栈溢出原理 · 最大深度计算 · 配置技巧
04堆(Heap)管理机制
malloc/free剖析 · newlib/FreeRTOS堆方案
05全局变量与BSS段
.data/.bss布局 · 减少全局变量
06常量与只读数据
.rodata · 常量放Flash · const最佳实践
07代码段(.text)优化
代码体积 · -Os优化 · 函数属性
08链接脚本定制
手写.ld · 自定义段 · 指定内存区域
09内存对齐与填充
对齐原则 · __attribute__((aligned))
10静态内存分配
摒弃动态分配 · 内存池 · 实时性
11内存池设计
固定/可变大小池 · 分配策略对比
12环形缓冲区
音频流处理 · 避免数据拷贝
13零拷贝技术
I2S/DMA零拷贝 · 减少带宽占用
14音频编解码内存优化
SBC/AAC/LDAC · 编解码缓冲区
15协议栈内存优化
BLE/HFP优化 · 裁剪协议特性
16RTOS任务栈优化
FreeRTOS栈分析 · uxTaskGetStackHighWaterMark
17内存碎片整理
内存压缩算法 · 空闲整理堆碎片
18Cache与内存一致性
DCache/ICache · 缓存一致性问题
19DMA与内存
描述符链 · 内存到外设高效传输
20低功耗内存策略
待机/播放/通话 · 降低功耗
21内存错误检测
栈溢出 · 内存泄漏 · 野指针检测
22MPU内存保护
Cortex-M MPU · 隔离关键任务
23Flash磨损均衡
延长Flash寿命 · 均衡算法
24XIP(就地执行)
Flash直接执行 · 节省RAM
25Overlay技术
代码覆盖 · 按需加载功能模块
26内存压缩
LZSS/LZ4 · 只读数据压缩
27双核通信内存
主从芯片共享内存 · 核间通信
28OTA升级内存管理
双Bank切换 · 临时缓冲区
29性能分析工具
Cycle Counter · Run Time Stats
30综合实战
真实TWS项目优化 · 输出报告