在给nrf52832自研的一个开发板下载程序是出现
一开始以为是协议栈擦除没完全擦除成功,然后就上网查了资料。
找到以下几种方法
方法一;
先将nrf52XXx2m和nrf52 xxx UIR Erase移除,然后添加nrf52 xxx softdevice erase,完成之后点击下载。
下载完成后,再把nrf52 xxx softdevice erasei移除,添加nrf52xxx2m和nrf52XXxUIR Erase,之后就能成功下载应用程序。
结果测试了一下,第一次用这种方法成功了,结果后面就又不行了,只好继续找问题和解决办法。
方法二:
全片擦出芯片(有时还是会出现M4错误),网上大部分是这个方法。
方法三:使用J-Flash擦除下载
(1)安装JFlash,官网:https://www.segger.com
选择Download—Jlink
选择Jlink Software,选择合适的点击下载
(2)安装后,打开安装路径,可以看到J-Flash程序。(或者windows程序里面找)
(3)启用J-Flash,会弹出欢迎界面,可以关掉。
执行如下,打开配置窗口
新建工程后选择开发版的芯片型号
4.擦除芯片
执行“Target-Manual Programming-Erase Chip”,即可擦除芯片。该操作是全片擦除,即擦除片内所有Flash和掉电保持的寄存器。
5.烧写程序
5.1打开编译的程序文件:File-Open data file,导航到待烧写的文件路径,打开文件。
5.2 按下 “F7”,烧写目标板子。
5.3 按下 “F9”,开始运行并烧写程序。
网上那个教程说方法二有问题后,使用方法三的J-Flash。当方法三使用1次后,再在Keil中可以直接烧录了,Cortex-M4错误完美解决。但是很遗憾,题主也还是有问题没办法下载。
后续还依次使用了nrf programmer进行擦除但是还是没有办法成功下载,
随后题主测试了用nrf programmer下载程序,发现可行,则说明不是芯片问题,问题应该出现在keil5的某些下载配置上,于是乎继续找。。。。。。
方法四:
结果看到了这个
于是看了一下自己的下载速度,
然后把它更改成2Mhz
下载成功了!!!!!!!!
总结:
出现不进去的情况有两种可能:
1.协议栈没有擦除,导致flash下载不进去,因为nrf系列芯片有协议栈保护,所以擦除协议栈就可以下载。
2.keil 5的某些下载环境你没有设置好,不论是硬件的J—link下载器的好坏还是下载线的下载速度局限,都应该注意。