因仑“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