谷谷小师妹 发表于 2023-12-20 22:56:37

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

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

在数字电路的开发和调试过程中经常需要用JTAG来观察和修改芯片状态。本篇文章将从JTAG的介绍及使用详细步骤以来展开描述。
1JTAG介绍
JTAG是英文“Joint Test Action Group”的缩写,是一种硬件调试和测试技术,常被用于在集成电路中诊断和调试问题。JTAG的正式名称为IEEE 1149.1标准,是一种通过扫描链(scan chain)实现的测试方法,该方法可以在不破坏芯片的情况下,对集成电路进行测试和调试。JTAG技术广泛应用于数字集成电路、嵌入式系统和电路板等硬件开发领域。
在JTAG中,芯片上的所有测试点都被连接到一个扫描链中,这个扫描链允许对芯片进行“非入侵式”地加载测试模式或者读取芯片中的状态。除了测试和调试,JTAG还可以用于烧写程序和配置数据到芯片中,从而方便开发人员进行硬件和软件的联合调试和测试。JTAG接口通常由调试工具连接到开发板上,以便开发人员可以远程调试和测试集成电路。
2JTAG使用教程
以下教程使用软件环境为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
https://mmbiz.qpic.cn/mmbiz_png/7dpQq6eeu2y6RuicpSUNSt9gzFOhCplSwXyKzIClWHZZOMmZib2JjHwCf1dmDibqTiaoSXBRZDNwvzYbgCRrhC6OibA/640?wx_fmt=png&from=appmsg
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 保持一致,再点击烧录,如下图:
https://mmbiz.qpic.cn/mmbiz_png/7dpQq6eeu2y6RuicpSUNSt9gzFOhCplSwUPQwZsTqWbYeACqHGSiaEWibEbQBTvqIo8QkxA66hiayGTicq8QeXXvzvw/640?wx_fmt=png&from=appmsg
3、使用JTAG进行Debug

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

https://mmbiz.qpic.cn/mmbiz_png/7dpQq6eeu2y6RuicpSUNSt9gzFOhCplSwV9r9Gz5wKpQZOqk5PLlOyjUiapjrT7WhT8WBLZOZibAQ1Z0yGtoiajmxQ/640?wx_fmt=png&from=appmsg
Windows环境下,在终端输入命令:./ICEman -Z v5,执行结果如下:
https://mmbiz.qpic.cn/mmbiz_png/7dpQq6eeu2y6RuicpSUNSt9gzFOhCplSwvRE5cWSmS33B0LBuEg1FeYFQyBxCI1LyibLZKEIbfVsYKAypCKOAlFA/640?wx_fmt=png&from=appmsg
1111 就是需要监听的 TCP 端口号,调试过程中需要保证 ICEman 在运行,不能关闭终端。ICEman 位于 $IoTStudio/RDS/V5.1.1/ice/ 目录下,也可以自行打开 ICEman。

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

https://mmbiz.qpic.cn/mmbiz_png/7dpQq6eeu2y6RuicpSUNSt9gzFOhCplSwTdqoiaat6ZUZS6nbbnxLdxPxRGJKf28lM5PY7kICEunqqOX0ZU95ibicA/640?wx_fmt=png&from=appmsg
选择 C/C++ Remote Application, 配置 main 选项卡,选择编译出的 elf 文件作为 gdb 的输入文件,并选择 Disable auto build。
https://mmbiz.qpic.cn/mmbiz_png/7dpQq6eeu2y6RuicpSUNSt9gzFOhCplSwibEftvMxrLjX9cz9wTw4KquCWh8aPVrSMXmyjTcIcktszW2YVMKODOA/640?wx_fmt=png&from=appmsg
然后点击下方的 Select other, 默认为 Automatic, 选成 Manual。
https://mmbiz.qpic.cn/mmbiz_png/7dpQq6eeu2y6RuicpSUNSt9gzFOhCplSw2KBg87USTcJMIzEAeqMAQClAuoGYTqxkIZun74RibJpRhJzl5celtiag/640?wx_fmt=png&from=appmsg
点击 Debugger 选项卡,配置相应的 debugger, 这里是 riscv32-elf-gdb,注意不要勾选 Stop on startup at。
https://mmbiz.qpic.cn/mmbiz_png/7dpQq6eeu2y6RuicpSUNSt9gzFOhCplSwalHc2Y5TF82Siamjkd53nib362CV4ib5zPYOn55c0Y57Em37TlhqBoQdA/640?wx_fmt=png&from=appmsg
点击 Connect 子选项卡,将 TCP 端口号填写为 ICEman 得到的 1111。
https://mmbiz.qpic.cn/mmbiz_png/7dpQq6eeu2y6RuicpSUNSt9gzFOhCplSwicbTXJlbIiapAWiaibMAbQB04jQ3ELH1xr4UEb0U94LjPUG8XTsV4jlyvQ/640?wx_fmt=png&from=appmsg
配置完成,点击调试按钮,添加断点即可开始调试,界面如下:
https://mmbiz.qpic.cn/mmbiz_png/7dpQq6eeu2y6RuicpSUNSt9gzFOhCplSwVCg3kmCz6KymHKGFENIFGpLu5sWyJOE92AlpGHf0dgiaq8VrlnLE0cA/640?wx_fmt=png&from=appmsg

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

https://mmbiz.qpic.cn/mmbiz_png/7dpQq6eeu2y6RuicpSUNSt9gzFOhCplSwcfkmsjTQ9ONZgNiaU8UypjXTeHSq4yvGoib5oZXJ8FvhCvcDSf3Qvq6A/640?wx_fmt=png&from=appmsg

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

https://mmbiz.qpic.cn/mmbiz_jpg/7dpQq6eeu2y6RuicpSUNSt9gzFOhCplSwq0tbB5NM2PmVFfCfnAQglwcZ7cE0kMj1tyoDjoAQFoqf2XbSZ2hCFA/640?wx_fmt=jpeg&from=appmsg
4、通过选项卡查看和修改寄存器和内存
Expressions选项卡内可以查看变量/变量表达式,可以直接在Value处修改对应的值。
https://mmbiz.qpic.cn/mmbiz_png/7dpQq6eeu2y6RuicpSUNSt9gzFOhCplSwSOJ63jMMW6UjY2icHxwAFUUAzl2E6u85WnlibUn2JFMtQlnV5Bia5ibUVA/640?wx_fmt=png&from=appmsg
Memory选项卡内可以查看和修改内存数据。
https://mmbiz.qpic.cn/mmbiz_png/7dpQq6eeu2y6RuicpSUNSt9gzFOhCplSwa6kbPvBnvZnOcyMZxU6ccbickdBuUhbKE4MBb2I8Gy4ibclkPp5Laickw/640?wx_fmt=png&from=appmsg
Registers选项卡内可以查看和修改CPU寄存器数据。
https://mmbiz.qpic.cn/mmbiz_png/7dpQq6eeu2y6RuicpSUNSt9gzFOhCplSwhczoNhQpDLbR7uHictLNUQaKWaeYnVZXgicUjPavVHrRaohHpRydxu7A/640?wx_fmt=png&from=appmsg
本篇介绍到这,下一篇小编将给大家介绍JTAG相关工具命令行的使用和常见问题及解决方法。

页: [1]
查看完整版本: 【技术专栏】泰凌微电子JTAG工具使用教程(一)