CC2540 flash 问题
时间:10-02
整理:3721RD
点击:
CPU的寻址范围最大只能到16bit,也就是说64KB空间,XDATA和CODE都只有64KB的寻址空间。
因此,XDATA里的高位32KB XBANK只是在FLASH里面选择一块32KB的物理block映射到XDATA而已,而且是read-only的。
我在spec里面看到CODE段的映射可以把SRAM映射到CODE段0x8000起始的位置。这样有个好处是指令从SRAM里面执行,高效、并且省电。spec里对于这个功能说得含糊不清,只提到XMAP为1时候CODE段的映射是这样的。但是具体情况没有说明,我很有兴趣使用这样的CODE map来运行程序,但有如下疑问:
1. XMAP设置为1前,如何往SRAM里复制指令。
2. SRAM 8KB的物理限制如何处理?代码大小一定会超过SRAM 8KB的。
3. 64KB的CODE空间,除了8KB的SRAM运行指令,其余的空间如何运用?
4. 由于SRAM用于放置指令了,(我不知道是全部还是部分的SRAM),那么Stack/Heap该如何配置?
请大神回复这个CC2540的问题。
您好
请参考CC2540 user guide 文档的2.2.1章节
http://www.ti.com/lit/ug/swru191f/swru191f.pdf
8k字节通常不够用作程序存储器的。
8k字节sram通常不够用作程序存储器的。
为了提高速度可以考虑cc2640或者nrf52832