ble_app_uart 无法在 nRF 51822 上完全加载

ble_app_uart Can not be loaded completely on nRF 51822

我在 nrf 51822 模块上闪烁主程序和 SoftDevice 时遇到问题。我有 Keil 版本 5.24,我正在使用 SDK v12.3。

我可以很容易地烧写SoftDevice,但是烧写之后就不能烧写设备上的主程序了。在 Keil 中它只显示错误 erase failed, flash download failed - "cortex-m0" 。但是,如果我在刷新 SoftDevice 之后尝试通过 nRFgo studio 执行此过程,当我尝试刷新主程序时,它会显示错误:此 hex 文件在 SoftDevice 区域中有数据。尝试使用 "Program SoftDevice" 编程,或在编程前全部擦除。

会不会是ROM存储区配置和地址的问题?如果是这样我该如何解决?

感谢您的关注。

折腾了好久,终于找到问题所在了。 我尝试更改 SoftDevice 和主程序的 ROM 内存分配,终于成功了。

基本上SoftDevice的分配必须在内存中的主程序下面。例如我们有0x00到0xff的内存,SoftDevice可以从0x00到0x2f分配,0x2f到末尾的剩余区域必须留给主程序。

取决于您使用的 SoftDevice(SD),例如。 S110, S130 etc., SDs 的大小可以变化 所以 SDs 的内存分配从 0x00 开始但结束点取决于你使用的是哪个 SD,所以我在 Kiel 中更改了内存分配地址,并且可以获得有关 SDs 兼容性的信息站点中的 nRF 设备和 SD 功能:

https://infocenter.nordicsemi.com

这是另一个有用的 link :

https://devzone.nordicsemi.com/f/nordic-q-a/38067/ble_app_uart-can-not-be-loaded-completely-on-nrf-51822