📘 TWS 内存优化实战
30章 · 从入门到报告
⚡ 嵌入式软件 · 手把手内存优化 · 友好色系
01
TWS内存全景
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优化 · 裁剪协议特性
16
RTOS任务栈优化
FreeRTOS栈分析 · uxTaskGetStackHighWaterMark
17
内存碎片整理
内存压缩算法 · 空闲整理堆碎片
18
Cache与内存一致性
DCache/ICache · 缓存一致性问题
19
DMA与内存
描述符链 · 内存到外设高效传输
20
低功耗内存策略
待机/播放/通话 · 降低功耗
21
内存错误检测
栈溢出 · 内存泄漏 · 野指针检测
22
MPU内存保护
Cortex-M MPU · 隔离关键任务
23
Flash磨损均衡
延长Flash寿命 · 均衡算法
24
XIP(就地执行)
Flash直接执行 · 节省RAM
25
Overlay技术
代码覆盖 · 按需加载功能模块
26
内存压缩
LZSS/LZ4 · 只读数据压缩
27
双核通信内存
主从芯片共享内存 · 核间通信
28
OTA升级内存管理
双Bank切换 · 临时缓冲区
29
性能分析工具
Cycle Counter · Run Time Stats
30
综合实战
真实TWS项目优化 · 输出报告