加载和执行时存储区分布

C和ARM汇编源文件经过ARM开发环境ADS1.2编译链接后,生成的映像(Image)文件包含RO(只读代码、数据段)、RW(可读写数据段)和ZI(将要初始化为0的段)三个输出段。当映像文件加载到flash中的时,RO段和RW段在Flash中的位置见图2(a),其中|Image$$RO$$Base|是RO段的开始地址,也是包含RO输出段的加载和执行地址,可以在ARM Linker中设置,即-ro-base的值,从flash启动时,这个值设置为0x00000000,ZI段不需要加载到flash中。当硬件电路复位后,映像文件中的RW段需要从Flash中拷贝到SDRAM内,同时要将ZI输出段的内容需要用“0”进行初始化,此时输出段在存储区内的位置见图2(b)。|Image$$RW$$Base|是包含RW输出段的执行地址,这个地址值也需要在ARM Linker中设置,即-rw-base的值,一般将-rw-base的值设置到SDRAM的地址范围内,在这里设置为SDRAM的首地址0x30000000。在Nucleus PLUS移植的过程中要编写代码,完成以上操作过程。


               图2 加载和执行时存储区分布

 
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值