使用GD32F303VET6的芯片,使用jlink下载程序下载失败但能识别到jlink

KEIL报的错误信息如下:

  • JLink Info: T-bit of XPSR is 0 but should be 1. Changed to 1.
  • JLink Info: T-bit of XPSR is 0 but should be 1. Changed to 1.
    Erase Failed!
    Error: Flash Download failed - "Cortex-M4"
  • 尝试按复位等待时机烧录(失败)
  • 更新jlink驱动(失败)
  • 换pack包(失败)
  • boot0和boot1拉高,(失败)
  • 最终解决:尝试修改下载速率从默认的5m到1m到200k到100k,发现该芯片只能支持100k下载速率,怀疑可能是板子硬件问题,网上也有相应的硬件修改方法,貌似要将sdo接电阻上拉10k,最多可以达到4m。

GD32F303芯片jfash解锁方式

1. 判断是否已被锁

 使用jlink_commander工具来连接芯片输入“mem 0x1ffff800 10”,从0x1ffff800地址读取10个字节,如果读出来的前两个字节全是FF的话说明芯片处于读保护状态。两个字节为A5 5A,说明芯片解除读保护成功

2. 解锁步骤

   2.1 打开J-Flash V6.6,没有的话可以去官网下载SEGGER - The Embedded Experts - Downloads - J-Link / J-TraceDownload the latest SEGGER trial versions, eval packages and user manuals!https://www.segger.com/downloads/jlink/    2.2 创建新的工程去链接芯片。

选择芯片:这里选择ST的型号,为啥选ST的,一方面因为GD的型号不全,另一方面选择GD的型号可能解锁指令不能用,后面新的J-Flash版本应该会逐步完善GD。下面给出一些对应的参考型号,不唯一,大体原则就是FLASH大小保持一致。
GD32E230系列 <—> STM32F030系列
例如:GD32E230F4 <—> STM32F030F4
GD32E230R8 <—> STM32F030R8

GD32F10X,GD32F30X,GD32E103,GD32F3X0 <—> STM32F103系列
例如:GD32F103C8 GD32F303C8 GD32E103C8 GD32F3x0C8<—> STM32F103C8

GD32F450 <—> STM32F429系列
例如:GD32F450VE <—> STM32F429VE

其他系列类似。

2.3 连接MCU,下面出现Connect successfully
如果连接不上:进行如下检查:
1>复位电路是否正常,10K加0.1UF,抓电源与复位脚波形,复位时间大概在0.3ms
2>BOOT0必须拉低;
3>线尽可能的短或换线;mcu驱动能力可能不够;

2.4  进行解锁

        灰色的Unsecure chip是解锁,由于我的芯片目前没有锁所以是灰色的。

3 .回到JLink-commander,再次输入“mem 0x1ffff800 10”读取0x1ffff800开始的10个字节,提示前两个字节为A5 5A,说明芯片解除读保护成功,可以正常下载程序了。


新发现:

发现下载了最新版本V8.30的J-flasH后,芯片被保护后,使用keil下载程序,他就会自动检测到芯片一被锁,点击确认就可以解锁!!挺方便。不知道是不是每次都i是这样,或者偶发性。

Logo

魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。

更多推荐