因仑“3+1”工程特种兵精英论坛

标题: arm的“位置无关码”中变量是怎么处理的? [打印本页]

作者: 123321    时间: 2015-3-24 19:26
标题: arm的“位置无关码”中变量是怎么处理的?
  最近看2440的引导代码,有个很大的问题,烦请大侠能指点迷津啊。

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

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

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






欢迎光临 因仑“3+1”工程特种兵精英论坛 (http://bbs.enlern.com/) Powered by Discuz! X3.4