下载完SDK后,直接下载代码可能会出现下图提示的错误:

但是芯片的硬件部分是没有问题的,配置也是SDK默认的配置,同时也能识别到IDCODE。

出现这样的原因的是因为芯片的内部的Flash已经有数据,用nrf connect pc看也确实是这样。这部分内容是(SoftDevice+MBR or Application),也就是协议栈。

我们从keil来看,默认的地址是从0x0开始的,因此从这个位置开始下载代码就会造成冲突。

解决办法
1.将芯片chip erase,这样就不会出现这个提示了;
2.将原来的Algorithm换成SoftDevice Erase后缀的Algorithm,这个算法的意思是忽略协议栈的存在,即会擦除协议栈。


通过第一种方法烧录之后的memory layout。

通过第二种方法烧录之后的memory layout。

从memory layout上来看,第一种方法更加贴近我们的理解。
网友评论