一、文档背景
尽管开发板原厂提供了相关文档,但可能缺乏对 A7 处理器 JTAG 功能的详细说明。这可能会导致以下问题:
● 开发人员难以理解和利用 A7 处理器的基本功能,阻碍调试和开发进度。
● 在进行Uboot移植过程中,无法应用图形界面的调试软件(如ArmDS)直观对Uboot进行调试,导致开发人员增加工作量和难度。
二、 解决的问题或者进行问题分析
在开发和调试RV1126 AI开发板上运行的A7处理器时,开发人员可能会遇到以下问题:
● 缺乏对JTAG功能的理解: 开发人员可能不清楚RV1126 AI开发板的JTAG硬件配置、A7处理器的JTAG调试寄存器以及如何使用JTAG工具进行调试。
● 调试困难: 缺乏有效的调试工具和方法,导致开发人员难以定位和解决A7处理器中的故障。
三、 如何在RV1126 AI开发板实现A7处理器JTAG调试功能
1. 从RV1126的Datasheet中可以查看到RV1126的JTAG有两个,一个是A7,另一个是RISC-V,如图3-1所示:
图3-1
2. 从Rockchip RV1109/RV1126 Technical Reference Manual可以查看到RV1126的A7的JTAG功能配置寄存器:GRF_GPIO1A_IOMUX_H,偏移地址是:0x10014,把GRF_GPIO1A_IOMUX_H配置为0x3300,就可以实现JTAG功能,如图3-2所示:
图3-2
3. 从Rockchip RV1109/RV1126 Technical Reference Manual可以查看到,GRF_GPIO1A_IOMUX_H的基地址:0xFE000000. 则GRF_GPIO1A_IOMUX_H的绝对地址:0xFE010014,如图3-3所示:
图3-3
4. 因RV1126 JTAG接口有功能复位需设置,从RV1126 AI开发板的原理图了解到,需要修改硬件,连接R8与RP7的JTMS引脚,如图3-4所示:
图3-4
5. 启动RV1126 AI开发板,并进入到Uboot的命令行下,如图3-5所示:
图3-5
6. 运行“nm.l ”命令,把GRF_GPIO1A_IOMUX_H(0xFE010014)寄存器的值设置为0x3300,如图3-6所示:
注:设置值时,需要输入:0xFFFF3300,因“Write enable for lower 16bits, each bit is individual.”。
图3-6
四、验证RV1126 AI开发板实现A7处理器JTAG调试功能
1. 用ArmDS新建的调试平台,并用Dstream-ST连接好开发板,设置好调试接口的参数,自动扫描平台,扫描完成后,RV1126 AI开发板的调试模型已创建完成,如图4-1所示:
图4-1
2. 配置一下RV1126 AI开发板的调试模型,如图4-2所示:
图4-2
3. 新建一个Cortex-A7的Demo,编译后,进行调试模式,如图4-3所示:
图4-3
五、讨论分析
● 问题:如何正确连接JTAG接口的引脚与RV1126处理器?
● 答案:首先,需要查阅RV1126的技术文档和电路图,确定JTAG接口的引脚映射。通常包括TDI(数据输入)、TDO(数据输出)、TCK(时钟)、TMS(模式选择)和TRST(复位)等引脚。确保所有引脚正确连接,特别是电源和地线连接要稳定,避免信号干扰;重点注意一下,RV1126处理器的调试接口的复用;SWD方式与标准JTAG方式的区别。
● 问题:使用的JTAG接口标准是否与开发工具兼容?
● 答案:RV1126通常支持标准的IEEE 1149.1 JTAG接口。确保所使用的JTAG调试器(如U-Link或Dstream-ST)也支持该标准。可以通过调试器的文档确认其兼容性和支持的特性。
● 问题:如何选择和配置合适的调试工具和软件?
● 答案:选择支持RV1126的调试器,如U-Link或Dstream。安装相应的驱动和软件,配置调试软件(如Keil, ArmDS等),设置正确的目标设备、接口类型和通信参数。调试器通常需要配置配置文件(如.cfg文件)来指定RV1126的特性。
六、结论
JTAG调试是一种非常强大的调试方法,可以用于调试各种类型的电子电路。对于RV1126 AI开发板来说,JTAG调试可以用于调试A7处理器以及其他片上外设。JTAG调试的主要优点包括非侵入性、可控性、可观察性,主要缺点包括复杂性和速度限制。