继上一篇为大家介绍了《泰凌微电子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工具使用教程(二)
文章出处:【微信公众号:泰凌微电子】欢迎添加关注!文章转载请注明出处。
第一版本5G国际标准的商用系统设备有望年底推出
Java和c语言间的差距,谁更有优势
Prestera 交换机为网络提供了嵌入式保护?
扫地机语音芯片ic,智能家居语音交互方案,唯创知音WTV380-8S
北汽新能源携六款产品盛大亮相 未来的市场表现值得期待
【技术专栏】泰凌微电子JTAG工具使用教程(二)
耦合式无电收音机diy教程
一名.net程序员的Java学习之路
黑马称霸新能源汽车市场
无人机武器在战场上的一系列应用,如何防范从天而降的武器?
紫光芯片设计云方案优势有哪些
电子芯闻早报:台积电南京厂动工 小米note2或首发骁龙821
基于CPLD的开放式四轴运动控制器的硬件、软件设计
美国撤销对孟晚舟指控 且不能重新提起诉讼
方锡智:服务已经成为沃尔沃继安全后打出的第二张牌
A2B与数字麦克风给予汽车音频应用更多的可能性
新移动时代下的IC设计
即将首发!华为 Mate X2或将搭载麒麟 9000
智能手机用户持续增加,手机资料处理保存技术的更新尤为重要
Qtum量子链的分布式自治协议介绍