之前曾经写过一篇 魔改国产ST-LINK V2仿真器,增加SWO支持 的博文,记录了给山寨ST-LINK V2增加SWO引脚引出的方法,而今天要说的是,这个方法在合宙的AIR32系列MCU上实测并不不好用,原因在于:https://wiki.luatos.com/chips/air32f103/switchFromSxx.html#debug-sw-jtag ,这里合宙官方的文档上描述了AIR32与STM32的JTAG关断差异,简单说就是SWD和JTAG同气连枝,要开都开,要关都关,而后面又有关于SWO的描述:https://wiki.luatos.com/chips/air32f103/switchFromSxx.html#traceswo-printf,要使用SWO则必须关掉JTAG但保留SWD(这个目前我理解是SWO的printf输出依赖SWD调试),但是尴尬的是:https://wiki.luatos.com/chips/air32f103/switchFromSxx.html#jtag-jtrst,调试状态关JTAG会导致程序复位,这几个情况叠加在一起就造成了我试验时的现象:接上魔改的ST-LINK V2的SWO,一通配置Keil调试设置和代码设置(具体不写了,百度一搜一大堆),然后调试启动后确实能看到SWO的输出,但是过一小会儿,程序就重置了。。。😂于是,我又开始寻找其它方案(其实最后还是换了带串口的DAP-LINK,走UART打log了,这里记录的是研究过程),最终使用Keil的中间件(应该是这么叫吧)Event Recorder实现了既不依赖SWO,也不用串口,就SWD那几根儿线打log的功能:
Continue reading…