在嵌入式Linux开发领域,串口打印调试因操作简单、易上手的特性而被广泛使用。但当应用场景转向AMP实时方案时,其局限性被急剧放大——实时性不足、性能开销较高、调试深度有限的问题,在多核协同工作场景中尤为突出,尤其在需要精确分析核心间同步机制、中断响应时序及资源共享冲突时,传统串口调试往往难以满足需求。
针对这一痛点,JTAG调试技术提供了专业且高效的解决方案。
JTAG(Joint Test Action Group)调试技术是一种广泛应用于嵌入式系统开发和硬件测试的国际标准技术,它具备深度交互与实时控制能力,可在线设置断点、执行单步调试,同时支持实时查看并修改寄存器与变量值;更关键的是,其非侵入式调试模式无需在代码中插入打印语句,能最大程度保留程序原有逻辑与运行性能,且可随时暂停CPU,精准捕捉任一时刻的系统完整状态,快速定位各类复杂调试难题。
一、方案架构:一体化JTAG调试生态
这里我们用飞凌嵌入式基于RK3568处理器设计开发的OK3568-C开发板进行演示。


飞凌嵌入式实现的方案基于完整的工具链整合,在Windows环境下提供无缝调试体验。系统架构分为三个关键层次:开发主机层、硬件接口层和目标设备层。
开发主机层基于Eclipse IDE,集成CDT开发工具和GNU MCU Eclipse插件,提供友好的图形化界面。调试指令通过GDB生成,经由OpenOCD转换协议,最终通过J-Link硬件接口与RK3568芯片通信。

这一架构的核心优势在于高度集成与透明化,开发者无需关注底层通信细节,可专注于代码逻辑和问题定位。
二、调试实战:可视化的问题定位流程
1. 断点暂停
在飞凌嵌入式的JTAG方案中,断点调试变得直观简单。工程师只需在代码左侧双击即可设置断点,程序执行到此处自动暂停,方便检查此刻所有核心的变量、寄存器和内存状态。
(1) 设置断点:双击代码左侧,当出现“蓝色小球”后说明此处有一个断点,程序执行到此处后会暂停运行。






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

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


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



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


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

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






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





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





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