1. CPU JTAG电路的设计
根据飞腾demo图trace32的接法图如下图所示(新一些的demo图jtag的接法已经删除了,可以看比较老点儿的demo才会有这部分原理图,这里参考FT-2000_4core_demo_V1.2_20190809.zip):
2. Trace32简介
Trace32为德国Lauterbach(劳德巴赫)公司研制的仿真测试工具,TRACE32采用了很多领先技术,双端口存储技术,实时多任务处理机制,以太网、光纤通信技术、多CPU调试技术、软件代码覆盖分析技术、基于断点系统的存储技术、多级触发单元技术、时钟处理单元技术、动态存储技术等,有助于固件、系统级代码调试。
Trace32整体除电源外,需要包含一个调试模块和一个调试接头。我们使用的是usb接口的power debug调试模块。调试接头需要使用支持arm v8的接头。这里需要特别说明的是,调试模块power debug是固定不变的,调试接头需要根据不同的平台选择不同的接头,有x86用的,有ppc用的,当然也有arm用的,并且trace32软件上读取的license也是存在在调试接头中的。
软件下载链接地址:
TRACE32® Download Trace32 Software for full installation (lauterbach.com)
https://www.lauterbach.com/frames.html?country=cn
3 Trace32软件安装
4 Trace32调试使用
4.1 CPU JTAG管脚功能配置
硬件上将仿真器接头连接到CPU JTAG接口。实现JTAG连接要将处理器FT-2000/4的管脚复用调成JTAG,而不是CAN。简单的方式就是在系统gurb里改,改/boot/efi/boot/grub/grub.cfg,这个文件是麒麟开机起来后最先执行的文件。在里面的kylin启动项里,在{}里第一行增加一句话Write_dword 0x28180204 0x88488440,这就是将jtag复用功能管脚配置为jtag功能。
把这个管脚复用寄存器设置为0x88488440=10001000010010001000010001000000b,下面就把复用功能设定的bit值分配出来,且只显示影响管脚复用的bit位,再提出设计jtag的信号位,最后整理如下表。
bit位 |
31..30 |
29..28 |
27..26 |
25..24 |
23..22 |
21..20 |
19..18 |
17..16 |
15..14 |
13..12 |
11..10 |
9..8 |
7..6 |
5..4 |
3..2 |
1..0 |
值 |
10 |
00 |
10 |
00 |
01 |
00 |
10 |
00 |
10 |
00 |
01 |
00 |
01 |
00 |
00 |
00 |
Func |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
||||||||
信号名 |
Ntrst_swj |
Tdi_swj |
Swditms_swj |
Tdo_swj |
4.2 Trace32工程配置