J-Flash J-Link解锁GD32单片机

目录

  • 前言
  • 一、使用J-Flash工具解锁单片机
    • 1.打开J-Flash软件
    • 2.创建工程
    • 3.连接 J-Link
    • 4.解锁Flash
  • 二、使用J-Link STM32 Unlock解锁GD32
    • 1.打开J-Link STM32 Unlock工具
    • 2.命令行输入
    • 3.解锁成功
    • 4.验证
  • 三、附录
  • 总结
      • *授人鱼,更要授人以渔,希望猿一的本篇博客能帮助到您!*


前言

提示:本篇所使用的工具为J-Link V9,软件为J-Flash V6.48b

当给GD32单片机Flash上锁,即配置安全保护后,单片机无法再通过keil、J-Link工具J-Flash烧录程序,

可通过J-Link STM32 Unlock或者J-Flash两种方法都可以。
J-Flash J-Link解锁GD32单片机_第1张图片
我们先来用J-Link命令行验证下是否是真的开启了安全保护的

打开J-Link Commander
J-Flash J-Link解锁GD32单片机_第2张图片
如下,根据提示,输入Connect
J-Flash J-Link解锁GD32单片机_第3张图片

根据提示,再输出?,选择你对应的单片机芯片,博主这里选择为GD32F303RC
J-Flash J-Link解锁GD32单片机_第4张图片
根据提示,选择连接方式,博主这里使用的是SWD,所以输入s即可;
选择速率:输入4000即为4000kHz
J-Flash J-Link解锁GD32单片机_第5张图片
如下,表示连接成功
J-Flash J-Link解锁GD32单片机_第6张图片
我们使用mem 0x08000000 10命令来查看地址为0x08000000起始的10个字节的数据
J-Flash J-Link解锁GD32单片机_第7张图片
上图中可以看到,提示我们并不能读取到内存(Flash)的的内容;
还有一种方法,GD32同STM32一样,可通过查看相应的配置寄存器内容来辨别是否安全保护(上锁),如下图
J-Flash J-Link解锁GD32单片机_第8张图片
当地址0x1ffff800,即SPC的内容不是0xA5时,则处于保护状态,同样他的布字节同理
我们输入mem 0x1ffff800 10命令
J-Flash J-Link解锁GD32单片机_第9张图片
可以看到SPC的地址并不是0xA5,而是0xBB,同理它的补字节即SPC_N,也不是0x5A,而是0x44,所以我们可以肯定的是当前单片机Flash是处于保护状态的。


提示:演示使用的单片机为GD32F303RC

一、使用J-Flash工具解锁单片机

1.打开J-Flash软件

J-Flash J-Link解锁GD32单片机_第10张图片

2.创建工程

J-Flash J-Link解锁GD32单片机_第11张图片
选择芯片为STM32F103RC,256KB的Flash大小这一款
J-Flash J-Link解锁GD32单片机_第12张图片

3.连接 J-Link

选择连接,Connect
J-Flash J-Link解锁GD32单片机_第13张图片
弹窗,点击Yes
J-Flash J-Link解锁GD32单片机_第14张图片

4.解锁Flash

选择Unsecure Chip,开始解锁
J-Flash J-Link解锁GD32单片机_第15张图片
弹窗提示解锁成功,然后可以开始愉快的编程下载了
J-Flash J-Link解锁GD32单片机_第16张图片

二、使用J-Link STM32 Unlock解锁GD32

1.打开J-Link STM32 Unlock工具

J-Flash J-Link解锁GD32单片机_第17张图片

2.命令行输入

打开后,如下,输入2,为什么输入2,因为GD32F303类比为STM32F103(懂得都懂),虽然内核不同,但Flash大小相同
J-Flash J-Link解锁GD32单片机_第18张图片

3.解锁成功

出现如下图所示即解锁成功
J-Flash J-Link解锁GD32单片机_第19张图片

4.验证

如果不放心,我们可以使用keil、J-Flash再下载程序(简单),或者使用命令行(略高级)来查看
打开J-Link Commander
J-Flash J-Link解锁GD32单片机_第20张图片
如下,根据提示,输入Connect
J-Flash J-Link解锁GD32单片机_第21张图片

根据提示,再输出?,选择你对应的单片机芯片,博主这里选择为GD32F303RC
J-Flash J-Link解锁GD32单片机_第22张图片
根据提示,选择连接方式,博主这里使用的是SWD,所以输入s即可;
选择速率:输入4000即为4000kHz
J-Flash J-Link解锁GD32单片机_第23张图片
如下,表示连接成功
J-Flash J-Link解锁GD32单片机_第24张图片
接下来根据手册,我们查看是是否解锁成功,查看0x1ffff800地址的头两个字节是否为A5 5A(即A5和它的补字节)
J-Flash J-Link解锁GD32单片机_第25张图片
输入命令,mem 0x1ffff800 10,可以看到头两个字节是A5和5A,所以也验证了确实解锁成功了
J-Flash J-Link解锁GD32单片机_第26张图片
同时,也可以验证下手册中提到的,当保护解除,会自动触发一次全片擦除
J-Flash J-Link解锁GD32单片机_第27张图片
我们输入命令,mem 0x08000000 10,
J-Flash J-Link解锁GD32单片机_第28张图片

可以看到,地址内的内容全变为0xFF,验证现象与手册中提到的是一致的。


三、附录

附录来源于网络,供参考未验证

GD32E230系列 <> STM32F030系列
GD32E230F4 <> STM32F030F4
GD32E230R8 <> STM32F030R8

GD32F10X,GD32F30X,GD32E103,GD32F3X0 <> STM32F103系列
GD32F103C8 GD32F303C8 GD32E103C8 GD32F3x0C8<> STM32F103C8

GD32F450 <> STM32F429系列
GD32F450VE <> STM32F429VE

J-Link 命令行相关命令查询 https://wiki.segger.com/J-Link_Commander

总结

以上就是使用J-Falsh相关工具解锁GD32单片机的两种简易方法!!!

授人鱼,更要授人以渔,希望猿一的本篇博客能帮助到您!

你可能感兴趣的:(单片机,单片机,GD32,经验分享,嵌入式,J-Flash)