问题描述和分析:
GD32 MCU有时会出现无法烧录的情况,其中一个原因是mcu被读保护了,下面给出几种方法来判断是否被读保护了以及如何解除读保护。
解决方案:
如何判断MCU是否读保护以及如何解除读保护,有以下几种方法:
通过GD Link Programmer
连上gdlink线,打开GD Link Programmer工具,界面如下
图1
图2
Target目录下点击Connet,会显示连接成功,并读出option bytes,如果都两个字节是A5 5A,表示没有读保护,如图1;如果是A5 5A之外的其他数据,例如BB 44,如图2,则表示已经读保护了。
GD Link Programmer工具可以解除读保护,
图3
如图3,点击target->insecurity,就可以解除读保护。
也可以直接用GD Link Programmer工具来设置读保护:
图4
如图4,点击target->security,选择low,就可以设置为读保护
2、通过GD32 All-In-One Programmer
先将BOOT0拉高,BOOT1拉低,进入ISP模式,连上串口,打开GD32 All-In-One Programmer,界面如下:
图5
如图5,选择串口,点击connect。如果成功连接在device information处会显示芯片型号出来。
如果有读保护,则会出现remove protection按钮,如果没有读保护,则不会出现。
如果要解除读保护,点击remove protection按钮就可以了。
在没有读保护的情况下,如果要设置为读保护,可以直接通过工具修改选项字节:
图6
图7
图8
如图6,点击edit optionbytes,弹出图7,没有读保护时SPC为0xA5,将A5改为任意其他值,再apply,如图8,就可以了。
3、通过jlink commander
连上jlink,通过jlink commander读SPC的地址的值,不同系列mcu这个地址是不同的
图9
如果读出来是A5 5A 就没有保护,如果是A5 5A之外的值就是读保护了。
连上jlink,可以用批处理文件解除读保护,路径为:
10x_20x_30x读保护添加和去除\RemoveRDP,双击RemoveRDP.bat就可以解除读保护了
适用系列: GD32F30x系列等。
————————————————
版权声明:本文为CSDN博主「countryroad520」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/countryroad520/article/details/131503985
|