JTAG因为文章内容比较多,拆分成了四个部分,读者能够依据需求,点击检查其它的JTAG信息:

JTAG基础

JTAG调试原理

JTAG调试实例

模拟系统溃散,使用JTAG调试找到溃散点

JTAG调试实例

本文以DM8168芯片为例,使用XDS560仿真器,对JTAG进行调试。

衔接仿真器,检查仿真器类型。

经过设备管理器能够检查当时衔接的仿真器类型和类型,方面后续调试时挑选正确的仿真器类型。(依据自己实际使用的仿真器类型去挑选)

【开发工具】【JTAG】JTAG调试实例【三】
【开发工具】【JTAG】JTAG调试实例【三】​修改

翻开CCS5/CCS7软件(没有能够自行安装)

【开发工具】【JTAG】JTAG调试实例【三】
【开发工具】【JTAG】JTAG调试实例【三】​修改

新建/挑选项目目录

这儿不是重点,随意新建一个目录都能够。

【开发工具】【JTAG】JTAG调试实例【三】
【开发工具】【JTAG】JTAG调试实例【三】​修改

“view”->“Target Configurations”

这儿便是为了挑选仿真器类型+需求仿真的芯片类型。(仿真器类型看设备管理器,芯片类型看对应的芯片类型)

【开发工具】【JTAG】JTAG调试实例【三】
【开发工具】【JTAG】JTAG调试实例【三】​修改

“Target Configurations” -> “User Defined” -> “NewTargetConfiguration.ccxml”

这儿挑选对应的装备文件,能够自己新建.ccxml装备文件。

【开发工具】【JTAG】JTAG调试实例【三】
【开发工具】【JTAG】JTAG调试实例【三】​修改

“NewTargetConfiguration.ccxml” -> “Connection” -> “Board or Device” -> “Save Configration” -> “Test Configration”

双击上一步的.ccxml装备文件,进入到装备界面,然后挑选对应的仿真器类型和芯片类型(仿真器类型看设备管理器,芯片类型看对应的芯片类型)

挑选结束后需求点击“Save Configration”保存本次装备,然后点击“Test Configration”测试一下仿真器能否正常衔接设备。

(注:在”Test Configration”这一步或许会出很多很多的问题,每个问题都需求单独剖析)

有关的JTAG衔接问题,参阅:

software-dl.ti.com/ccs/esd/doc…

【开发工具】【JTAG】JTAG调试实例【三】
【开发工具】【JTAG】JTAG调试实例【三】​修改

“Test Configration”测试JTAG衔接成功打印如下:

【开发工具】【JTAG】JTAG调试实例【三】
【开发工具】【JTAG】JTAG调试实例【三】​修改

“Target Configurations” -> “User Defined” -> “NewTargetConfiguration.ccxml” ->(右键) “Launch Selected Configuration”

确认JTAG衔接功能正常后,回到之前的“Target Configurations”界面(假如找不到了,从头按4、5步去做就能找到了)

在”NewTargetConfiguration.ccxml”界面经过鼠标右键,翻开”Launch Selected Configuration”选项,进入到JTAG调试

【开发工具】【JTAG】JTAG调试实例【三】
【开发工具】【JTAG】JTAG调试实例【三】​修改

“Launch Selected Configuration” -> “Debug” -> “xxx Debug Probe xxx” -> “Connect Target”

Launch之后,就能够开端Debug调试了,挑选对应的芯片,点击鼠标右键,经过“Connect Target”衔接,

衔接成功后,芯片结尾()中会变成Suspended/Connect…之类,

后面就能够开端读取对应的芯片寄存器了。

【开发工具】【JTAG】JTAG调试实例【三】
【开发工具】【JTAG】JTAG调试实例【三】​修改

“Suspended” -> “view” -> “Memory…” / “Registers” / “Disassembly”…

衔接上芯片后,能够调试/检查的信息有下面的几个

“Memory…” – 输入内存地址,打印对应内存地址上的值;

“Registers” – 直接检查Core寄存器中的PC、LR、R0~R15等寄存器,判断当时系统运行在哪个函数上(需求咱们将程序反汇编,再依据PC/LR中的值,找到该地址对应的函数)

“Disassembly” – 对应汇编指令(其实将运行的镜像反汇编后,找到对应地址,看到的也是在履行这段命令)

【开发工具】【JTAG】JTAG调试实例【三】
【开发工具】【JTAG】JTAG调试实例【三】​修改