嵌入式
返回首页

RK3568开发板的JTAG仿真方案:突破AMP架构调试瓶颈

2026-03-13

在开发实践中,串口打印调试以其操作简便、门槛低的优点得到普遍应用。然而在AMP实时方案中,其局限性显著暴露——实时性弱、性能开销大、调试深度不足等问题,在多核协同工作场景下变得尤为突出。尤其在需要精确分析核间同步机制、中断响应时序及资源共享冲突时,传统串口调试方法往往无法胜任。


针对这一痛点,JTAG调试技术提供了专业且高效的解决方案。


JTAG(Joint st on Group)调试技术是一种广泛应用于开发和硬件测试的国际标准技术,它具备深度交互与实时控制能力,可在线设置断点、执行单步调试,同时支持实时查看并修改寄存器与变量值;更关键的是,其非侵入式调试模式无需在代码中插入打印语句,能最大程度保留程序原有逻辑与运行性能,且可随时暂停,精准捕捉任一时刻的系统完整状态,快速定位各类复杂调试难题。


方案架构:一体化JTAG调试生态

这里我们用基于RK3568设计开发的OK3568-C开发板进行演示。

wKgZPGmhLjqAQFvYAAJj9FAQT1E221.jpg


wKgZPGmhLjqAcvNJAAGyjhuDIEw500.jpg


飞凌嵌入式实现的方案基于完整的工具链整合,在Windows环境下提供无缝调试体验。系统架构分为三个关键层次:开发主机层硬件层目标设备层

开发主机层基于Eclipse IDE,集成CDT开发工具和GNU  Eclipse插件,提供友好的图形化界面。调试指令通过GDB生成,经由OpenOCD转换协议,最终通过J-Link硬件接口与RK3568芯片。

wKgZO2mhLjqAaypXAACDxtFjaw0520.jpg


这一架构的核心优势在于高度集成与透明化,无需关注底层通信细节,可专注于代码逻辑和问题定位。


一、调试实战:可视化的问题定位流程

温馨提示:以下演示视频在PC端观看,画面更清晰

1. 断点暂停

在飞凌嵌入式的JTAG方案中,断点调试变得直观简单。只需在代码左侧双击即可设置断点,程序执行到此处自动暂停,方便检查此刻所有核心的变量、和内存状态。

(1)设置断点:双击代码左侧,当出现“蓝色小球”后说明此处有一个断点,程序执行到此处后会暂停运行。

wKgZPGmhKaSAd4wIAAbSm8XZfsY308.png1wKgZO2mhKbSAJ4ZFAAZBmKoILBs418.png2wKgZPGmhKeSAC74xAAYTAN2PmR0583.png3wKgZPGmhKfKAQ7roAAXuRLsLw8c672.png4wKgZPGmhKh6AXit7AB2cc2ymFBA886.png5wKgZO2mhKkOAbYoiAB4aB4VMkq0881.png6


(2) 取消断点:双击代码左侧的“蓝色小球”,当小球消失后,则表示此处断点取消。

wKgZPGmhKreAQ_WhABxh22vSayU919.png7


(3) 忽略所有断点:此时所有断点取消,程序可全速运行。

wKgZO2mhKtWAM6yTAB354cB1Adg448.png1wKgZO2mhKuWADAU7AButxb1PONM574.png2


2. 单步、多步执行

(1) 单步执行多种模式:Step Over可跳过函数调用,Step Into可深入函数内部,Step Return则可快速执行完当前函数剩余部分。

wKgZPGmhKxCAXLcfACKEGdMuK8U626.png1wKgZPGmhKyKAWYxUACMFgWDEWzs682.png2wKgZO2mhKzGALEp9ACOOq0hlkPU797.png3



(2) 多步执行:包括“运行到光标处”“继续运行”,满足不同场景需求。

wKgZPGmhK4WAWhRAAB8KYB8R0QQ148.png1wKgZPGmhK6SAINIqACCVKcBJ6Y4497.png2


3. 变量查看

(1) 局部变量实时显示当前函数作用域内的值变化,而且能修改变量的数值。

wKgZPGmhK_6AQj03ACN_5IlX6t0929.png


(2) 全局变量则在整个调试会话期间均可访问,暂停后能反映系统全局状态的实时快照。

wKgZO2mhLCGAHbELABtNqS_Gx-o633.png1wKgZPGmhLDmAU-RjABq8IeXSYDI786.png2wKgZPGmhLGSAWZasABs2cFX51Ps768.png3wKgZO2mhLHWAEGbgABxhw11jTG0700.png4wKgZPGmhLIeAQkISAB9P36a-Yvo503.png5wKgZPGmhLKSAY4nEAB4_EuHpusA907.png6

4. 内存查看

(1) 地址访问与修改功能直接而强大。通过内存浏览器,工程师可以直接读取指定内存或寄存器地址,观察内存内容、验证寄存器配置。

wKgZPGmhLMCAasRCAB17whD6FKI526.png1wKgZPGmhLNCANIElABbocLTkQuQ462.png2wKgZPGmhLOiAKo2GAB65_s0V9M0656.png3wKgZPGmhLPyAFoH2AB7Mb80j_vQ568.png4wKgZPGmhLQ-AB80oACOH0k-CvzA640.png5


(2) 还可向指定地址写入新值,动态改变内存数据、配置外设寄存器。

wKgZO2mhLUCATQ4wADuoIadoam8785.png1wKgZPGmhLU2AJnBpADJS0grAEWA177.png2wKgZPGmhLWOAU6LgAD0MfxZinRk834.png3wKgZPGmhLXuAdDA4ADzDL8KcGac479.png4wKgZPGmhLY6ALk04AD5gL0o1URM971.png5


以上这套AMP多核协同场景下的JTAG调试方案显著地降低了实时核调试技术的使用门槛。将调试工作可视化,可同时监控AMP实时核状态,让程序跳转、任务切换等动作变得更加清晰,希望这套方案能够对您有所帮助。

进入嵌入式查看更多内容>>
相关视频
  • 【TI MSPM0 应用实战】智能小车+工业角度编码器+血氧仪+烟雾探测器!硬核参考设计详解!

  • FollowMe 第二季:3 - EK_RA6M5 开发板入门

  • FollowMe 第二季: 1 Adafruit Circuit Playground Express及任务讲解

  • Azure RTOS step by step workshop

  • 2022 Digi-Key KOL 系列: 你见过1GHz主频的单片机吗?Teensy 4.1开发板介绍

  • 从0到1:树莓派与物联网教程(英文)

精选电路图
  • 锂离子/锂聚合物USB电池充电器

  • 6晶体管H桥

  • AVR LCD温度计—LM35

  • AVR PC步进电机驱动器

  • AVR温度计TCN75

  • JDM2 PIC 18F 编程器

    相关电子头条文章