[功能问题] 芯片json配置文件中,target.iram和target.irom需要修改
{
"iram": {
"base": "0x20000000",
"size": "0x00006000"
},
"irom": {
"base": "0x00000000",
"size": "0x00040000"
}
}
IRAM和IROM之前理解的含义不是很对。以下是这一块在ST芯片工程里删除后,Keil自动生成的代码:
<Cpu>IRAM(0x20000000,0x00020000) IRAM2(0x24000000,0x00080000) IROM(0x08000000,0x00100000) IROM2(0x08100000,0x00100000) XRAM(0x30000000,0x00048000) XRAM2(0x38000000,0x00010000) CPUTYPE("Cortex-M7") FPU3(DFPU) CLOCK(12000000) ELITTLE</Cpu>
对比PACK包pdsc文件可以发现,这里实际上自动填入了pdsc文件中描述的所有RAM和ROM地址(由于Keil RAM地址只有2格,填不下的被挤到了XRAM里),并且之后的onChipMemory标签中的内容和Cpu标签里的同步。即此处应该填写的是厂商希望用户在默认情况下使用的Scatter-load配置,而不是这个芯片全部实际的RAM/ROM配置。
因此可知,Keil工程生成逻辑中,此处应该需要进行如下变化:
- iram和irom合并成memories列表;
- 模版中此处需对应替换为列表的实现;
- 模版中需要实现onChipMemory相关的内容;
IAR中没有相关代码,无影响。