__copy_rom_sections_to_ram();挂起MCU

时间:2017-05-08 23:36:42

标签: c arm embedded cortex-m rom

我正在使用ARM®的Kinetis KEA128产品系列开展项目 Cortex®-M0 +。特别是KEAZ64变体。

我有三个项目:PRE-LOADER,BOOTLOADER,&应用

预加载器执行得很好并跳转到Bootloader启动代码。在 __ arm_start.c 文件中 __ copy_rom_sections_to_ram(); 只需挂起MCU,不再进行进一步的操作。 有趣的是,在使用P& E JTAG调试器时,该项目工作正常并转换为应用程序。如果没有调试器,它就会陷入困境。

我尝试过延迟,在我的链接器文件中更改地址,尝试只将1个字节从ROM复制到RAM但没有任何东西可以使用。

但是,从我的链接器文件中删除整个项目的 .romp 部分。唯一的缺点是我没有从NVM加载我的变量。

对此有任何见解将不胜感激!

谢谢!

编辑: 我知道我无法与你们共享链接器文件,但感谢所有的输入。

我找到了解决方案但确切原因未知。  1.之前 .romp 部分声明在 .data 部分的BSS之后开始。  2.在BSS上方移动 .romp 部分后,所有问题都会消退。

我知道这有效,但我不明白这会有什么不同?

0 个答案:

没有答案
相关问题