Nordic nrf51822和S130永远不会访问我的应用程序代码

时间:2015-06-14 02:36:54

标签: bluetooth-lowenergy nrf51

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

当我对Blank设备进行编程时,一切正常,程序流程到达主函数。但是,当我闪存S130时,程序流程从未到达我的主要功能(我没有任何其他应用程序代码)。

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

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

1 个答案:

答案 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
}

现在程序流程达到主要目的。