XMC1402使用Jlink调试记录

工作需要自己画了一块基于XMC1402-T038-X0128芯片的板子。第一次自己画英飞凌,记录一下配置调试环境的过程。

使用的调试软件是memtool和DAVE,计划采用的接口为SWD,这是根据英飞凌自己的一块评估板定的,用到一个8pin的接口(其实不算是接口,没有这样的标准接口,实际是杜邦线插的)

首先了解到芯片出厂状态是ASC_BSL即串口的启动模式,这是由BMI寄存器决定的。在ASC_BSL模式下,烧写需要通过串口进行,并且软件不会运行。可以在英飞凌论坛上搜索“XMC调试”找到一些相关的说法。BMI可以通过英飞凌的memtool通过串口连接进行修改。我使用了CH340连接上位机和单片机。默认的串口是0.14-RX,0.15-TX或者1.3-RX,1.2-TX。上图1.2和1.3这两个口似乎抄XMC4700评估板的作业错了,也有可能是4700和1402不同,实际应以1402的数据手册2.2.2为准。

打开memtool,由于是自己画的板子,没有默认的目标配置,自己新建一个。下图点new

   

Controller0 如下图配置。(这里的Type不知为什么选上1402T038,返回之后又会变回F064,在本例中没有影响。)

 

CORTEX 选择Minimonitor,即串口的接口。

 

保存配置。再打开Setup。

 

选择CH340

 

完成后点击连接就显示已连接至目标。将hex读取到FLASH中,就可以烧写了。

 

但如之前所说,串口模式下程序不会运行,所以需要修改BMI为UMD(用户调试)模式。烧写之前点击上图右下角的Setup,在Program选项卡中勾选Set boot mode after program。我选择了1.3和1.2的SWD接口。

 

这样烧写之后BMI就变成了SWD模式,烧写可能会显示失败,同时报连接错误。现在可以退出memtool。理论上memtool也能用SWD连上单片机,但我没有成功,原因未知,可能和下面用到的Jlink-OB有关,不知道换成英飞凌的调试器会不会好。

换上Jlink连接好对应引脚。使用的Jlink是某宝20块钱的Jlink-OB。在进行下一步之前,确认Jlink的驱动版本不要太老,否则不支持XMC1400系列,如商家提供的V4.92。可以自行到Segger网站下载更新的版本,我下载了V5.12。

Jlink安装好以后可以打开Commander看看SWD连接是否正常。下图是4.92的界面,可以看到已经连接到了目标,识别到Cortex-M0。这里的interface speed应该不正确,是1000kHz。

 

现在打开DAVE(版本4.4.2)。先配置debbuger,选择configurations

双击GDB SEGGER J-Link Debbuging,新建一个配置。Browse一下elf的路径,然后在Debugger选项卡中确认一下是否是USB、SWD。

 

Apply之后直接Debug报错,原因是找不到GDBServer(可能和我Jlink安装位置有关,不知道默认安装位置会不会报错)。在DAVE的Window-Preferences-Run/Debug-SEGGER J-Link中,Browse一下Jlink的安装目录。

 

不出意外现在点小虫子就可以进入调试模式了!

如果出现如下错误,更新一下Jlink驱动的版本

 

Guess you like

Origin blog.csdn.net/Dio980/article/details/105691120