查看: 1643|回复: 0
打印 上一主题 下一主题

arm的“位置无关码”中变量是怎么处理的?

[复制链接]
跳转到指定楼层
沙发
发表于 2015-3-24 19:26:51 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
  最近看2440的引导代码,有个很大的问题,烦请大侠能指点迷津啊。

        2440的boot代码在上电初期是运行在芯片内部的SRAM里的,但boot代码的“链接地址”都不是0x00,所以在stepping stone中运行的代码需要“位置无关代码”用来确保程序跳转的正常执行。

现在问题来了,如果在汇编代码中调用C函数,该如何怎么实现“位置无关”这一功能?

我看韦东山的视频代码中是使用bl cfuntion,这样的代码。这样的C函数中的变量,是如何实现“位置无关”的呢?如果无法实现“位置无关变量”,这种C函数应该是无法正常执行的,所以应该可以实现这样的“位置无关C变量”,那么它的实现原理是什么呢?又该如何实现呢?

回复

使用道具 举报

您需要登录后才可以回帖 登录 | 加入中科因仑

本版积分规则

快速回复 返回顶部 返回列表