我正在尝试使用Emblocks和OpenOCD运行NRF51822芯片,调试器接口是发现板的ST-Link,它支持SWD。 p>
当我对Blank设备进行编程时,一切正常,程序流程到达主函数。但是,当我闪存S130时,程序流程从未到达我的主要功能(我没有任何其他应用程序代码)。
我已经检查了汇编代码,并且S130卡在(arm asm incoming)WFE和bn指令上,据我所知,似乎它正在等待中断,事件或唤醒发生之前做任何事情......这是预期的行为还是我做错了什么?
我连接的唯一引脚是SWD线(2个引脚)GND和VDD(3伏)。
答案 0 :(得分:4)
我很久以前解决了这个问题,但忘了发布解决方案。问题是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
}
现在程序流程达到主要目的。