当前位置: 代码迷 >> 驱动开发 >> ARM中C语言实现位置无关的有关问题
  详细解决方案

ARM中C语言实现位置无关的有关问题

热度:82   发布时间:2016-04-28 10:56:20.0
ARM中C语言实现位置无关的问题!
在U-boot的start.S文件中,调用了一个初始化函数(关于时钟的),它是用C语言写的,而且比较复杂。Start.S的代码需要是位置无关的,但是这是时钟初始化函数怎么保证也是位置无关的???

目前,这个函数内部还有三层函数调用。当上电后,感觉运行到这个函数就回不来了(串口没有打印)。当我把这个时钟初始化函数内部的函数调用注释掉而没有内部的函数调用,则可以继续往下走。

各位有没有遇到类似的问题,请帮忙给点意见,非常感谢

------解决方案--------------------
探讨
在U-boot的start.S文件中,调用了一个初始化函数(关于时钟的),它是用C语言写的,而且比较复杂。Start.S的代码需要是位置无关的,但是这是时钟初始化函数怎么保证也是位置无关的???

目前,这个函数内部还有三层函数调用。当上电后,感觉运行到这个函数就回不来了(串口没有打印)。当我把这个时钟初始化函数内部的函数调用注释掉而没有内部的函数调用,则可以继续往下走。

各位有没有遇到……

------解决方案--------------------
这个问题的关键在于你这个函数调用时,是否需要使用到堆栈,如果不需要,那么没什么关系。
如果需要应该考虑在堆栈建立后再调用这个函数。
  相关解决方案