继上一篇为大家介绍了《泰凌微电子JTAG工具使用教程(一)》,本篇将继续为大家介绍JTAG相关工具命令行的使用和常见问题及解决方法。
1
GDB常用命令的使用
正常debug的时候,可以在Telink IOT Studio上面设置断点进行debug,断点停住的时候,可以去读PC以及状态寄存器。但是在实际的debug过程中,经常会遇到死机的状况,这个时候可以采用命令行方式操作GDB去读PC以及状态寄存器或者memory。
在Debugger Console窗口中输入相应命令,可以对寄存器/内存进行读写操作。
命令举例:
读指令:
1
x/1w 0x20000e40 (从0x20000e40读取一个word的数据)
2
x/1h 0x20000e40(从0x20000e40读取half word的数据)
3
x/1b 0x20000e40(从0x20000e40读取一byte的数据)
其中
x/: 表示读
1: 读取数量
W: 单位(word)
写指令:
1
set *(unsigned int*) 0x20000e40=0x12345678
在地址0x20000e40 写一个word,数值为0x12345678;
2
set *(unsigned short*) 0x20000e40=0x5678
在地址0x20000e40 写half word,数值为0x5678;
3
set *(unsigned char*) 0x20000e40=0x78
在地址0x20000e40 写1个字节,数值为0x78;
其中
Set: 代表写
unsigned char: 写入单位
0x20000e40 : 写入地址
0x12345678 : 写入数值
2
Telnet常用命令的使用
使用Telnet连接工具(putty或MobaXterm等)和ICEman可以在不stall MCU的情况下来读写寄存器和内存。
-
环境搭建:Mobaxterm软件下载地址:https://mobaxterm.mobatek.net/。
-
打开ICEman(打开前确保IDE中JTAG连接断开了,否则可能会蓝屏),如果采用四线模式连接方式则执行"./ICEman -Z v5",采用两线模式连接方式则执行"./ICEman -Z v5 -I aice_sdp.cfg",输出信息中提示软件打开了Telnet 4444号端口。
-
使用Mobaxterm软件去连接Telnet 4444号端口。
常用设置命令:
nds configure dmi_quick_access 1
nds mem_access bus该指令用设置通过总线进行内存访问(使用DMA访问内存)
nds mem_access cpu该指令用设置通过CPU进行内存访问
上面两条内存访问路径的指令请根据实际需求来设定,如果要读写内存/寄存器,需要先执行指令nds configure dmi_quick_access 1 和 nds mem_access bus
查看调试信息
1、读寄存器/内存的指令为,md[x] [addr] [count]。有三部分组成,其中mdx为读取指令,[x]可选b(字节)、h(半字)、w(字)、d(双字)[addr]是要读取的寄存器/内存首地址地址,[count]是数量,不输入时默认为1。
eg:
mdb 0xc0200018 1
mdh 0xc0200018 1
mdw 0xc0200018 1
mdd 0xc0200018 1
2、写寄存器/内存的指令为,mw[x] [addr] [count]。有三部分组成,其中mdx为读取指令,[x]可选b(字节)、h(半字)、w(字)、d(双字)[addr]是要读取的寄存器/内存首地址地址,[count]是数量。
eg:
mwb 0xc0200018 0x12
mwh 0xc0200018 0x1234
mww 0xc0200018 0x12345678
mwd 0xc0200018 0x1234567812345678
3
JTAG常见问题及解决方法
1、断点设置异常
目前 TLSR9 系列 SOC 支持最多两个硬件断点,当程序运行的起始地址是 0x20000000 时,说明它运行在 flash 里面,需要使用硬件断点。而 step in 或 step over 等命令本身就会用到一个断点,所以用户调试时只能自定义一个断点,否则就会发生异常。这也是为什么不建议勾选 Stop on startup at,因为这个选项实际上的工作是设置了一个断点。当调试时发生了 cannot access memory at address xx 异常时,可以使用 info br 命令检查一下断点数量。
2、断点停止异常
在使用打断点功能时需要注意:(1)断点前必须存在对勾,否则断点会停不住。(2)程序停的位置可能在设置断点位置后的一两行,属于正常现象。
3、链接源文件异常
断点调试的过程中,可能会发生找不到源文件的错误,此时点击 Edit Source Path... , 如下图:
点击 Add, 选择 Path Mapping, 编辑如下:
左边需要手动输入,右边可以选择路径。此问题的原理是,将 IoT Studio 中的路径正确映射到本地路径,所以最简单的映射方式也可以是将 /cygdrive/c/直接映射到 C:(示例中的 SDK 放在C盘)。上述配置完成后,即可正常调试。
4
总结
JTAG强大的功能为芯片研发工作提供了极大的便利。以上就是在Telink IoT Studio中使用JTAG的详细介绍,有多种调试方式和丰富的调试功能供用户选择,为用户在各种复杂环境下进行调试提供了更大的灵活性。
关 于 泰 凌
泰凌微电子致力于为客户提供一站式的低功耗高性能无线连接SoC芯片解决方案,包括经典蓝牙,蓝牙低功耗,蓝牙Mesh,Zigbee,Thread,Matter,Apple HomeKit,Apple“查找(Find My)”,和私有协议等低功耗2.4GHz多协议无线连接系统级芯片和丰富的固件协议栈。公司产品广泛应用于智能照明,智能家居/楼宇,智能遥控,无线外设,智能零售,穿戴设备,无线音频,智能玩具,物流追踪,智慧城市等各类消费和商业应用场景中。
官网:www.telink-semi.com
微信公众号:telink-semi
https://developers.telink-semi.cn/
销售接洽:
中国大陆(华东、华北) :
+86-21-20281118-8213
中国大陆(华南、香港、音频) :
+86-0755-26614003
telinksales@telink-semi.com
原文标题:【技术专栏】泰凌微电子JTAG工具使用教程(二)
文章出处:【微信公众号:泰凌微电子】欢迎添加关注!文章转载请注明出处。
-
泰凌微
+关注
关注
6文章
143浏览量
10768
原文标题:【技术专栏】泰凌微电子JTAG工具使用教程(二)
文章出处:【微信号:telink-semi,微信公众号:泰凌微电子】欢迎添加关注!文章转载请注明出处。
发布评论请先 登录
相关推荐
评论