工作中遇到的,折腾了好久,因为电脑重装过一遍系统,软件也都重新安装了,所以不知道之前的配置是什么,旧项目代码编译没问题,烧写时疯狂报错,用的是JLink。
keil版本v5.14
win10版本
JLink版本 7.82a(64位)
报错
报错信息:一开始使用keil报错 Error Flash Download failed - "Cortext-M0+"
,此时已经按照网上教程更改了flash download配置(如下图)。
之后折腾着折腾着报错信息变了,并且keil一直弹窗报错,点击确定会弹出新报错,直到keil崩溃退出。
过程中还把一块板子弄成读写保护状态烧不了程序,换了一块板子还是报这种错且keil崩溃。
在领导指导下试着直接用JLink烧写,结果是J-Link选择APM32F003F6P6芯片后会闪退,选了STM32F103C8T6没有闪退。不知道什么原因。
如下图,点击OK后会闪退
解决
安装了7.20a(32位)版本的JLink之后就可以顺利使用KEIL烧写了
在这个版本的JLINK里找不到APM32F003F6P6,但是用KEIL烧写就没问题
之后又遇到了读保护问题,报错Error Flash Download failed - "Cortext-M0+"
,参考博客 https://blog.csdn.net/ic2121/article/details/125341745 可使用JLINK解除读保护,原理写的很清楚。
脚本代码我就直接放出来了,文本文件后缀改为.jflash
,然后使用JLink.exe
打开脚本即可运行,运行前先连接好硬件
si 1
device CORTEX-M0
speed 100
JTAGConfg -1,-1
h
r
h
w4 0x40011004 0x45670123
w4 0x40011004 0xCDEF89AB
w4 0x40011008 0x45670123
w4 0x40011008 0xCDEF89AB
sleep 100
w4 0x40011010 0x00000220
w4 0x40011010 0x00000260
sleep 100
w4 0x40011010 0x00000200
w4 0x40011010 0x00000210
w4 0x00020400 0xFFFF00A5
sleep 100
w4 0x40011010 0x00000080
mem32 0x40011010 0x01
sleep 10
r