JTAG因为文章内容比较多,拆分成了四个部分,读者能够依据需求,点击检查其它的JTAG信息:
JTAG基础
JTAG调试原理
JTAG调试实例
模拟系统溃散,使用JTAG调试找到溃散点
JTAG调试实例
本文以DM8168芯片为例,使用XDS560仿真器,对JTAG进行调试。
衔接仿真器,检查仿真器类型。
经过设备管理器能够检查当时衔接的仿真器类型和类型,方面后续调试时挑选正确的仿真器类型。(依据自己实际使用的仿真器类型去挑选)
修改
翻开CCS5/CCS7软件(没有能够自行安装)
修改
新建/挑选项目目录
这儿不是重点,随意新建一个目录都能够。
修改
“view”->“Target Configurations”
这儿便是为了挑选仿真器类型+需求仿真的芯片类型。(仿真器类型看设备管理器,芯片类型看对应的芯片类型)
修改
“Target Configurations” -> “User Defined” -> “NewTargetConfiguration.ccxml”
这儿挑选对应的装备文件,能够自己新建.ccxml装备文件。
修改
“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…
修改
“Test Configration”测试JTAG衔接成功打印如下:
修改
“Target Configurations” -> “User Defined” -> “NewTargetConfiguration.ccxml” ->(右键) “Launch Selected Configuration”
确认JTAG衔接功能正常后,回到之前的“Target Configurations”界面(假如找不到了,从头按4、5步去做就能找到了)
在”NewTargetConfiguration.ccxml”界面经过鼠标右键,翻开”Launch Selected Configuration”选项,进入到JTAG调试
修改
“Launch Selected Configuration” -> “Debug” -> “xxx Debug Probe xxx” -> “Connect Target”
Launch之后,就能够开端Debug调试了,挑选对应的芯片,点击鼠标右键,经过“Connect Target”衔接,
衔接成功后,芯片结尾()中会变成Suspended/Connect…之类,
后面就能够开端读取对应的芯片寄存器了。
修改
“Suspended” -> “view” -> “Memory…” / “Registers” / “Disassembly”…
衔接上芯片后,能够调试/检查的信息有下面的几个
“Memory…” – 输入内存地址,打印对应内存地址上的值;
“Registers” – 直接检查Core寄存器中的PC、LR、R0~R15等寄存器,判断当时系统运行在哪个函数上(需求咱们将程序反汇编,再依据PC/LR中的值,找到该地址对应的函数)
“Disassembly” – 对应汇编指令(其实将运行的镜像反汇编后,找到对应地址,看到的也是在履行这段命令)
修改