【技术专栏】泰凌微电子JTAG工具使用教程(二)

描述

继上一篇为大家介绍了《泰凌微电子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的情况下来读写寄存器和内存。

 

  1. 环境搭建:Mobaxterm软件下载地址:https://mobaxterm.mobatek.net/

  2. 打开ICEman(打开前确保IDE中JTAG连接断开了,否则可能会蓝屏),如果采用四线模式连接方式则执行"./ICEman -Z v5",采用两线模式连接方式则执行"./ICEman -Z v5 -I aice_sdp.cfg",输出信息中提示软件打开了Telnet 4444号端口。

  3. 使用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工具使用教程(二)

文章出处:【微信公众号:泰凌微电子】欢迎添加关注!文章转载请注明出处。


打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分