|
最近看2440的引导代码,有个很大的问题,烦请大侠能指点迷津啊。
2440的boot代码在上电初期是运行在芯片内部的SRAM里的,但boot代码的“链接地址”都不是0x00,所以在stepping stone中运行的代码需要“位置无关代码”用来确保程序跳转的正常执行。
现在问题来了,如果在汇编代码中调用C函数,该如何怎么实现“位置无关”这一功能?
我看韦东山的视频代码中是使用bl cfuntion,这样的代码。这样的C函数中的变量,是如何实现“位置无关”的呢?如果无法实现“位置无关变量”,这种C函数应该是无法正常执行的,所以应该可以实现这样的“位置无关C变量”,那么它的实现原理是什么呢?又该如何实现呢?
|
|