在嵌入式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芯片通信。

這一架構的核心優勢在于高度集成與透明化,開發者無需關注底層通信細節,可專注于代碼邏輯和問題定位。
一、調試實戰:可視化的問題定位流程
溫馨提示:以下演示視頻在PC端觀看,畫面更清晰
1. 斷點暫停
在飛凌嵌入式的JTAG方案中,斷點調試變得直觀簡單。工程師只需在代碼左側雙擊即可設置斷點,程序執行到此處自動暫停,方便檢查此刻所有核心的變量、寄存器和內存狀態。
(1)設置斷點:雙擊代碼左側,當出現“藍色小球”后說明此處有一個斷點,程序執行到此處后會暫停運行。
1
2
3
4
5
6(2) 取消斷點:雙擊代碼左側的“藍色小球”,當小球消失后,則表示此處斷點取消。
7(3) 忽略所有斷點:此時所有斷點取消,程序可全速運行。
1
22. 單步、多步執行
(1) 單步執行多種模式:Step Over可跳過函數調用,Step Into可深入函數內部,Step Return則可快速執行完當前函數剩余部分。
1
2
3
(2) 多步執行:包括“運行到光標處”和“繼續運行”,滿足不同場景需求。
1
23. 變量查看
(1) 局部變量實時顯示當前函數作用域內的值變化,而且能修改變量的數值。

(2) 全局變量則在整個調試會話期間均可訪問,暫停后能反映系統全局狀態的實時快照。
1
2
3
4
5
64. 內存查看
(1) 地址訪問與修改功能直接而強大。通過內存瀏覽器,工程師可以直接讀取指定內存或寄存器地址,觀察內存內容、驗證寄存器配置。
1
2
3
4
5(2) 還可向指定地址寫入新值,動態改變內存數據、配置外設寄存器。
1
2
3
4
5以上這套AMP多核協同場景下的JTAG調試方案顯著地降低了實時核調試技術的使用門檻。將調試工作可視化,可同時監控AMP實時核狀態,讓程序跳轉、任務切換等動作變得更加清晰,希望這套方案能夠對您有所幫助。
-
嵌入式
+關注
關注
5198文章
20442瀏覽量
333989 -
JTAG
+關注
關注
6文章
415瀏覽量
74962 -
Amp
+關注
關注
0文章
100瀏覽量
48492 -
SWD
+關注
關注
1文章
60瀏覽量
12644 -
RK3568
+關注
關注
5文章
644瀏覽量
7938
發布評論請先 登錄
RK3568開發板數據手冊
【ROC-RK3568-PC開發板試用體驗】Firefly ROC-RK3568-PC開發板初探
【迅為工業RK3568穩定可靠】itop-3568開發板Linux驅動開發實戰:RK3568內核模塊符號導出詳解
突破AMP架構調試瓶頸:RK3568開發板的JTAG仿真方案
評論