【问题标题】:Nordic nrf51822 and S130 never gets to my application codeNordic nrf51822 和 S130 永远无法访问我的应用程序代码
【发布时间】:2015-08-29 18:52:46
【问题描述】:

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

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

我检查了汇编代码,S130 卡在(arm asm 传入)WFE 和 bn 指令上,据我所知,它似乎在等待中断、事件或唤醒发生,然后再执行任何操作...这是预期的行为还是我做错了什么?

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

【问题讨论】:

  • 您是否记得在链接描述文件中将程序(闪存)基址更改为0x20000 并将RAM 基址更改为0x20002800

标签: bluetooth-lowenergy nrf51


【解决方案1】:

我很久以前就解决了,但忘记发布解决方案。问题是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。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2014-01-12
    • 1970-01-01
    • 2016-03-18
    • 2013-05-07
    • 1970-01-01
    • 2014-02-24
    • 1970-01-01
    • 2020-08-24
    相关资源
    最近更新 更多