Nordic nrf51822 和 S130 从未进入我的应用程序代码

Nordic nrf51822 and S130 never gets to my application code

我正在尝试 运行 使用 Emblocks 和 OpenOCD 的 NRF51822 芯片,调试器接口是来自支持 SWD 的 Discovery 板的 ST-Link。

当我对空白设备进行编程时,一切正常,程序流程到达主要功能。但是,当我刷S130时,程序流程永远不会到达我的主要功能(我没有任何其他应用程序代码)。

我检查了汇编代码,S130 卡在了(arm asm incoming)WFE 和 b.n 指令上,据我所知,它似乎正在等待中断、事件或唤醒在做任何事情之前发生...这是预期的行为还是我做错了什么?

我连接的唯一引脚是 SWD 线(2 个引脚)GND 和 VDD(3 伏)。

我早就解决了,但忘了post解决方案。问题出在Emblocks自带的脚本文件,需要修改。

我通过修改链接器文件中的部分使其工作:

MEMORY
{
SOFTD (rx) : ORIGIN = 0x00000000, LENGTH = 0x20000
FLASH (rx) : ORIGIN = 0x00020000, LENGTH = 0x20000
RAM (rwx) : ORIGIN = 0x20002800, LENGTH = 0x1800
}

为此:

MEMORY
{
SOFTD (rx) : ORIGIN = 0x00000000, LENGTH = 0x1C000
FLASH (rx) : ORIGIN = 0x0001C000, LENGTH = 0x24000
RAM (rwx) : ORIGIN = 0x20002800, LENGTH = 0x1800
}

现在程序流到main