我正在使用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 部分后,所有问题都会消退。
我知道这有效,但我不明白这会有什么不同?