背景:今年因为疫情,下半年芯片疯涨,公司各个产品的芯片都比较紧缺,原来使用的芯片都为st和华大公司的芯片,价格还好,都不超过五块,现在拿货,st芯片价格已经涨了30块左右,吃不消,遂开始加紧开发国内的芯片。
目录
一、问题
二、问题可能的根源
三、解决方案
四、可能碰到的问题
五、总结一下
在调试GD32E23系列芯片时找不到 j-link调试器选项,但是在其他芯片的工程中能找到j-link,也可以正常调试。本人使用keil版本为5.25,j-link版本为4.86b。因为之前调试的芯片都是arm-m0或者arm-m3内核的,所以想到该问题可能和GD32E23所使用的m23内核有关。
在SEGGER官网中查到j-link支持GD32E2系列的版本为V6.88
而在keil mdk 的官网中查到目前( 2020/12/24 23:22 )最新版本软件支持的j-link版本为6.86
所以照这两个版本的描述,现在GD32E2还不能进行正常的调试,但是mcu的官网相关的资料又显示可以用j-link配合keil进行芯片调试。所以只能尝试分别升级keil和j-link驱动来进行测试。
1、因keil升级比较复杂,所以先尝试将j-link进行了升级,使用V6.89b进行升级,结果发现并无作用,还是之前的情况,其中尝试重启电脑等的方法,都不行,所以只能走升级keil的路。
2、选择升级keil,因同事那有下好的keil5.29的安装包,所以决定先尝试安装keil5.29,安装完成后,发现j-link选项出现,问题暂时解决。但是比较奇怪的是,这个版本自带的j-link版本是V6.4的版本,竟然也能识别到j-link,可能是某些兼容性的问题。
1、j-link报The connected j-link is defective. proper operation cannot be guaranteed
在更新完j-link的驱动之后报错 The connected j-link is defective. proper operation cannot be guaranteed。
经过查找资料之后发现是j-link固件和j-link驱动程序不兼容引起的问题。可以升级j-link固件或者降低j-link驱动程序的版本来解决。我这边使用的是升级j-link固件解决问题。
升级前:
升级后
GD32E230对开发环境是有要求的,要不会出现无法识别芯片的问题;
1、keil必须是5.26以上板本
2、jlink驱动必须是6.88以上版本
3、keil安装目录下D:\Keil_v5\ARM\Segger\jlinkARM.dll必须是6.88以上板本
4、jlink必须是V9.0以上板本
这几个条件抖满足了就不会存在无法识别芯片的情况了。