关于CMD与存储空间之间的联系,有几个疑问想请教一下:
1.DSP手册上写着RAM的入口地址是0x0000_0000,Flash的入口地址是0x0008_0000。这是否意味着从0x0000_0000~0x0000_7FFFF这部分空间都划归到RAM了(当然了不一定会占满这部分空间,这部分空间的大小是512K),而从0x0008_0000后面的地址就划归Flash了?
如果是这样理解的话,那为何在提供的Generic_Flash_Lnk文件中,又出现大量在0x0000_0000~0x0000_7FFFF之间的地址?
此外,由于0x0000_0000~0x0000_7FFFF这部分空间的长度是512K,这是否意味着RAM最大只能到512K?
2 在设置部分,Flash好像是默认分配好了Sector(如下图),那这部分和CMD文件是什么关系呢?这部分Sector并不会随着CMD文件的改变而改变
3 想比较全面的了解Flash到底有哪些区间可以使用,就根据官方提供的手册上的地址部分,绘制了下分布图
可以看到,RAM部分被系统很零散的占据了一小部分空间,那该如何充分利用好剩余的其他空间呢?直接使用除去系统占用部分吗?担心和系统占用的部分空间产生冲突
官方手册上是否有这种对于内存空间标注比较详细的图呢?
4 官方提供的CMD文件里,Flash的CMD文件取名为RAMGSx,RAMLSx,RAMMx,为啥是RAM呢?这些名称有什么含义吗?PAGE0和PAGE1的使用是必须严格按照程序区和数据区来区分吗?程序段必须要严格按照属性分配到PAGE0或者PAGE1吗?最重要的一点是,这些不同的段都是可以任意使用的吗?在使用的时候发现用不同的快有的程序会运行着结果就突然报错,如下
5.CMD里会把存储空间分成很多的存储段,比如RAMLS等,然后将不同的程序段分配到不同的存储段。为啥不把所有的程序段作为一个整体来使用呢?我看在实际分配的时候也会出现将一个程序段分配到多个存储段的情况,如下:
谢谢专家!