【 声明:版权所有,欢迎转载,请勿用于商业用途。 联系信箱:feixiaoxing @163.com】
大部分的mcu都不带wifi和bt,所以对于esp32来说,可以很好地弥补这一点。因此,如果有网络方面的需求,用esp32还是非常不错的,其他mcu这一点就有点相形见绌。不过从另外一个角度来说,esp32的调试目前还是打印为主,对于我们这种老登来说,还是习惯了j-link的调试方式,哪怕是比较新的st-link/v2调试,总觉得没有j-link顺手。

1、st-link/v2调试
现在几乎所有的mcu都支持swd调试。支持swd的调试器也很小巧,只需要一个st-link/v2就可以调试mcu芯片了。不光如此,swd需要的调试线也很少,只需要四根就可以,即clk、dio、vcc和gnd。其中clk和dio分别对应时钟和数据。
2、j-link兼容swd协议
对于jtag来说,本身pin比较多,占据空间比较多,如果板子比较小,使用jtag接口确实比较不方便。但是,这不妨碍用j-link调试swd。线还是那几根线,只需要从j-link找出来pin,插入到对应swd的连线就可以。
3、j-link也需要驱动
我们知道st-link需要安装驱动才能使用,j-link其实也是一样的。
4、选择合适的mcu core
用keil打开工程,调试的时候选择j-link/j-trace cortex之后,一定要选择合适的mcu core,不然可能不认识mcu。因为除了stm32这些大家都知道的mcu,还有国内的好多mcu,特别是最近几年出来的这些新mcu,大部分j-link都不认识。所以,弹窗出来要求我们选择mcu core的时候,一定要选对。

如果没有选择对,其实也没有关系。在当前项目下面,找到JLinkLog.txt和JLinkSettings.ini这两个文件,关掉项目,删掉文件,重新打开项目,这个时候就会提示我们重新选择芯片类型了。

5、用sw兼容模式打开
一般来说,我们进入debug界面之后,一定要用swd模式打开,只有port选中了swd模式,才能识别到具体的mcu,这样才能进行后面的烧入和调试工作。debug界面最重要的有两部分,一部分是左侧的j-link信息,代表j-link被识别到了,还有一个就是右侧的mcu,如果有IDCODE信息,就代表mcu被识别到了。

6、后续就是烧入和调试
用st-link/v2也好,j-link也好,只要能识别到mcu,就意味着后续可以烧入和调试。烧入自不必多讲,必须要先烧入才能调试。调试的话,其实就非常方便,比如单步调试等等。当然,现在很多的mcu芯片,都提供了大量的代码和example,用打印的方式也能做很多的开发,这当然就是另外一个话题了。
烧入的时候,一般都提示,把Reset and Run选上。

当然,具体的烧录算法都是提前配置好的,有兴趣的朋友可以单击Add看看也可以,

7、j-link和jtag的关系
这就和st-link和swd的关系是一样的,前者是工具,后者是协议。对于我们做嵌入式比较早的人来说,用j-link还是非常顺手的,毕竟对jtag可能更有感情一点。当然,不可否认,st-link调试也是非常方便的。