keil编译stm32程序,将函数放到RAM中不能跳转执行。请大神指点一下。

请教大家两个问题,将一个函数复制到一个数组然后跳转到数组地址去执行那个函数,gcc编译器编译x86可执行程序没有问题,IAR编译430可执行程序也没有问题,但是Keil编译stm32 程序执行的时候不能跳转,进一步发现是LSB置1了并且发现跳转的地址是个偶数(猜测可能与这个有关系,因为好像是CM3规定跳转分支需要是奇数地址)?进而又准备将那个函数绑定在某个地址编译,绑定在ROM可以通过(因为时间关系没有来得及执行),发现绑定在RAM编译不通过,这是为什么?求大神指点一下。最终目的也就是需要将这个函数放到RAM中执行,不知道有没有一些更好的方案设计?

Parents
  • Hi GJF712,

    我没理解错的话,是编译的一个问题。

    1. 你用的是 arm compiler 5? 具体版本是多少?

    2. 请贴一下你编译的具体错误是什么,便于进一步分析?如果有一个小的测试例子,更好。

Reply Children
No Data