Keil中scatter文件中的RO,RW地址和启动代码中的RO,RW地址关系

启动代码(此网页中):http://www.amobbs.com/thread-3339593-2-1.html(其实是论坛123楼提的问题)里面出现的代码:LDRr0,... 启动代码(此网页中):http://www.amobbs.com/thread-3339593-2-1.html(其实是论坛123楼提的问题)里面出现的代码:
LDR r0, =|Image$$RO$$Limit| ; 装入RO段结束地址 LDR r1, =|Image$$RW$$Base| ; 装入RW段起始地址 LDR r3, =|Image$$ZI$$Base| ; 装入ZI段起始地址 中有|Image$$RO$$Limit|, |Image$$RW$$Base|,|Image$$ZI$$Base|变量。与我使用keil的scatter文件中LR_ROM1 0x30000000 { ; load region ER_ROM1 0x30000000 0x0800000 { ; load address = execution address *.o (RESET, +First) *(InRoot$$Sections) .ANY (+RO) } RW_RAM1 0x30800000 0x0800000 { ; RW data .ANY (+RW +ZI) } RW_IRAM1 0x40000000 0x00001000 { .ANY (+RW +ZI) }}
有什么关系哦?我的keil配置图如下:

这些设置不是什么片内RAM和片内flash的设置吗?怎么跟RO,RW联系起来?还是我本来就搞错了(或者|Image$$RO$$Limit|, |Image$$RW$$Base|,|Image$$ZI$$Base|这些变量不是从这里设置)。。
展开
 我来答
Dan_Brown
2015-01-16 · TA获得超过297个赞
知道小有建树答主
回答量:268
采纳率:100%
帮助的人:199万
展开全部
在使用Keil时,如果你没有特别的需求,可以不用自己写Scatter文件,而是让Keil自动产生。这样可以避免产生错误。
你的附图就是为芯片配置ROM和RAM的。
只要在Options for Target "XXXX"->Linker页面中,将选项Use Memory Layout from Target Dialog打上勾就可以让Keil自动产生Scatter文件。

如果一定要自己写Scatter文件,那么最基本的要求就是将你提到的几个变量和实际CPU的ROM/RAM相一致。
追问
你知道那个论坛的启动代码是裸机的还是uboot的start.S里的代码吗?
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式