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

描述

在数字电路的开发和调试过程中经常需要用JTAG来观察和修改芯片状态。本篇文章将从JTAG的介绍及使用详细步骤以来展开描述。

 

1

JTAG介绍

 

 

JTAG是英文“Joint Test Action Group”的缩写,是一种硬件调试和测试技术,常被用于在集成电路中诊断和调试问题。JTAG的正式名称为IEEE 1149.1标准,是一种通过扫描链(scan chain)实现的测试方法,该方法可以在不破坏芯片的情况下,对集成电路进行测试和调试。JTAG技术广泛应用于数字集成电路、嵌入式系统和电路板等硬件开发领域。

 

在JTAG中,芯片上的所有测试点都被连接到一个扫描链中,这个扫描链允许对芯片进行“非入侵式”地加载测试模式或者读取芯片中的状态。除了测试和调试,JTAG还可以用于烧写程序和配置数据到芯片中,从而方便开发人员进行硬件和软件的联合调试和测试。JTAG接口通常由调试工具连接到开发板上,以便开发人员可以远程调试和测试集成电路。

 

2

JTAG使用教程

 

 

以下教程使用软件环境为Telink IoT Studio(V2023.8)。软件环境下载地址:

http://wiki.telink-semi.cn/wiki/IDE-and-Tools/Telink_IoT_Studio/

 

1、硬件连接

 

将TLSR9 DEV KEY与开发板进行连接,保证TCK(测试时钟输入)、TMS(测试模式选择)、TDI(测试数据输入)、TDO(测试数据输出)、REF(参考电压)、GND(接地)引脚连接正确,再使用USB数据线将TLSR9 DEV KEY连接至电脑,连接正常时只亮蓝灯。

 

TLSR9 DEV KEY 购买链接:https://item.taobao.com/item.htm?id=680161782840

 

泰凌微

 

2、使用Jtag_Burn 烧录程序

 

点击Telink →Jtag Burn(SPI Burn),烧录程序时,注意配置Jtag_Burn的路径和芯片类型(Jtag_Burn 位于 $IoTStudio/RDS/V3.2.3/flash/ 目录下,其帮助文档也在同一目录),然后点击 Start ICEman,ICEman 准备好后,确保 Telnet Port 和 Burner Port 与 ICEman 保持一致,再点击烧录,如下图:

 

泰凌微

 

3、使用JTAG进行Debug

 

  • 打开ICEman:在进行 Debug 之前,需要先执行 ICEman。点击上方工具栏 Telink --> Toolchain Shell or ICEman Shell --> Open ICEman(RDS V5.1.2) shell。

 

泰凌微

 

Windows环境下,在终端输入命令:./ICEman -Z v5,执行结果如下:

 

泰凌微

 

1111 就是需要监听的 TCP 端口号,调试过程中需要保证 ICEman 在运行,不能关闭终端。ICEman 位于 $IoTStudio/RDS/V5.1.1/ice/ 目录下,也可以自行打开 ICEman。

 

  • Debug Configuration:打开ICEman 之后,点击工具栏 Debug 图标下拉箭头,选择 Debug Configuration。

 

泰凌微

 

选择 C/C++ Remote Application, 配置 main 选项卡,选择编译出的 elf 文件作为 gdb 的输入文件,并选择 Disable auto build。

 

泰凌微

 

然后点击下方的 Select other, 默认为 Automatic, 选成 Manual。

 

泰凌微

 

点击 Debugger 选项卡,配置相应的 debugger, 这里是 riscv32-elf-gdb,注意不要勾选 Stop on startup at。

 

泰凌微

 

点击 Connect 子选项卡,将 TCP 端口号填写为 ICEman 得到的 1111。

 

泰凌微

 

配置完成,点击调试按钮,添加断点即可开始调试,界面如下:

 

泰凌微

 

  • 设置断点:进入debug模式后可以在需要程序停住的位置设置相应断点,断点最多支持2个(硬件断点),断点设置后的状态如下图。点击Resume按钮,程序会执行到断点处,再点一次,程序会执行到下一处断点处。

 

泰凌微

 

  • 单步调试:step into单步调试遇到子函数进入子函数执行;step over单步调试,遇到子函数不进入执行。

 

泰凌微

 

4、通过选项卡查看和修改寄存器和内存

 

Expressions选项卡内可以查看变量/变量表达式,可以直接在Value处修改对应的值。

 

泰凌微

 

Memory选项卡内可以查看和修改内存数据。

 

泰凌微

 

Registers选项卡内可以查看和修改CPU寄存器数据。

 

泰凌微

 

本篇介绍到这,下一篇小编将给大家介绍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
完善资料,
赚取积分