特权同学

Keil存储空间自定义分配

0
阅读(3140)

Keil存储空间自定义分配

看来Capital-Micro的软件支持包做得还不够到位啊,在51编程环境KeilC中使用Astro II器件光有个Capital Micro Device系列却没有任何型号可映射。如图1所示。

图1

因此,势必会造成后续存储区大小映射上的一些BUG。Astro II的代码和数据存储区共用32KB的地址,即冯诺依曼结构,这本无可厚非。但是由于Keil无法识别器件只有32KB存储空间,默认当然是作为64KB寻址了。

在实际工程测试过程中,特权同学遇到了莫名其妙的的现象,初步怀疑到了存储区指针的问题上,因此将问题变量定义为data区而非xdata区,重新测试发现问题暂时解决。于是和Capital-Micro沟通后,确认此问题需要专门在Target中设置后方可解决。

于是乎,Target设置如图2所示,分别映射code区为0x0地址起的20K地址空间,xdata区为0x5000地址起的12K地址空间。

图2

对应的,BL51 Locate选项卡中自动对应前面分配的地址空间。

图3

做开发有时候脑子要特别清醒,甚至于对整个系统的架构也要了如指掌,问题定位起来一“投”一个准。当然这也非一朝一夕可以练就的,否则资深工程师就不会那么吃香了。

Baidu
map