Keil : Error-Flash Download failed Cortex-M4错误解决方案整理(J-Flash擦除下载教程)
Keil : Error-Flash Download failed Cortex-M4错误解决方案整理
在开发 nRF51822/nRF52832/nRF52840时候出现如下如下问题:
问题: Keil电子下载时候出现 Error: Flash Download failed - "Cortex-M4"的错误,如下图
根据官方教程解释如下,还是发现不容易解决,另外结合网上一些教程方法,总结如下:
原因1:
芯片中已经下载了协议栈,协议栈对占用的Flash空间进行了保护,并且协议栈的地址从0开始,这时候下载地址从0开始的程序,就会出现这种现象。
(1)芯片内下载了协议栈,在没有进行全片擦出情况下下载逻辑程序。解决办法是全片擦除。
(吐槽:按照修改,选了全片擦除,还是会出现这个Cortex-M4错误。即使全片程序擦出,在Keil中烧录程序有时候还是会出现错误。)
原因2:没有加载编程算法
如下图,没有加载Flash,也会出现这个错误
解决方法一:
全片擦出芯片(有时还是会出现M4错误),网上大部分是这个方法。
解决方法二:使用J-Flash擦除下载
(1)安装JFlash,官网:https://www.segger.com
拉到最下,选择Download—Jlink
选择Jlink Software,点击下载
(2)安装后,打开安装路径,可以看到J-Flash程序。(或者windows程序里面找)
(3)启用J-Flash,会弹出欢迎界面,可以关掉。
- 执行如下,打开配置窗口
- 切换到“target Interface”,选择设备接口,我的是SWD.
3.切换MCU,选择器件。选中你开发版的芯片型号。
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错误完美解决。
白浪介绍:
(1)关于射频、微波、天线、无线通信、智能硬件、软件编程、渗透安全、人工智能、区块链、大数据、Java、Android、C/C++、python等综合能力的培养提升。
(2)各种学习资料、学习软件分享。
1.扫码关注公众号(Geekxiaobai)
2. 如在后台发送“Python高级编程”“Python Graphics”或者“2003”,即可免费获得电子书籍。仅供学习之用。
3. 扫码关注后,查看往期内容,会有更多资料惊喜等着你来拿哦
想要更多相关学习资料,可以在文章后面留言哦,后期将会根据留言需求免费分享学习资料哦。
========******=========******========******=========******==========