链接地址和运行地址

        链接地址:链接时指定的地址(指定方式:Makefile中用-Text,或者链接脚本)

        运行地址:程序实际运行时地址(指定方式:由实际运行时被加载到内存的哪个位置决定的)

        链接地址和运行地址:可能相同也可能不同。

        位置无关代码和位置有关代码:位置无关代码要好一些,适应强,放在哪里都可以运行;位置有关代码就必须。

        运行在链接时指定的地址上,适应性差。(位置无关码有限制,不能完成所有功能,有时候不得不使用位置有关代码)

s5pv210的启动过程:三星推荐和uboot的实现是不同的

        三星推荐的启动方式:bootloader必须大于16KB并小于96KB,假定bootloader为80KB,启动过程是这个样子:先开机上电后BL0运行,BL0会加载外部启动设备中的bootloader的前16KB(BL1)到SRAM中去运行,BL1运行时会加载BL2(bootloader中80-16=64KB)到SRAM中(从SRAM的16KB处开始用)去运行;BL2运行时会初始化DDR并且将OS搬运到DDR去执行OS,启动完成。

         uboot实际使用方式:uboot大小随意,假定为200KB。启动过程:先开机上电后BL0运行,BL0加载外部启动设备中的uboot的前16KB(BL1)到SRAM中去运行,BL1运行时会初始化DDR,然后整个uboot搬运到DDR中,然后一句长跳转(从SRAM跳转到DDR)指令从SRAM中直接跳转到DDR中继续执行uboot直到uboot完全启动,uboot启动后在uboot命令中去启动OS。

为什么需要重定位:

       链接地址和运行地址有时候必须不同,而且还不能全部使用位置无关码,这时候只能重定位。

 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值