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该如何配置?