随笔简述嵌入式内存
BES存储器部分
各存储器功能分配:
ROM:用于关键常数和代码的嵌入式ROM,比如片上引导程序。
RAM:用于关键数据和代码,比如音频解码,算法,数据传输,编译等。
SIP flash:用于自定义程序,OTA引导程序,提示音文件,TWS和移动设备配对信息、音量等,烧录工具的BT name、BT addres、工厂信息存储,音频EQ数据,ANC数据等。
(注意DMA是直接存储器访问,是一个总线结构功能,BES主要用于音频/语音数据传输,并不是存储器。)
从map文件中,我们可以看到这样的逻辑地址映射打印:
name中有X集成了ITCM(指令内存),没有X的集成了DTCM(数据内存)
lds.S文件
在BES的软件包文件结构中,scripts/目录主要存放,编译和链接器脚本模板。例如BES2700IHC的链接器脚本best1000_1306_lds.S,存放在…/scripts/link/…目录下。
链接脚本是模板文件通过编译生成的。存放在…/out/best1306_ibrt_anc/目录下的_best1000_1306.lds文件中。
best1000_1306_lds.S文件功能很强大,包括了内存映射,配置内存区域链接器脚本映射,库配置,引导程序配置等。
另外关于内存分区的一些宏定义,需要参考plat_addr_map.h 和common.mk 文件。