了解片上系統(tǒng)(SoC)的調(diào)試架構(gòu)
本文將介紹調(diào)試的基本概念并簡要闡述其在片上系統(tǒng)(SoC)中的實施方法,統(tǒng)稱為調(diào)試架構(gòu),其中參考了Nexus和ARM CoreSight標準。
本文引用地址:http://m.butianyuan.cn/article/128752.htm基本調(diào)試原理
片上系統(tǒng)(SoC)正在變得日趨復雜,為了充分利用先進的硬件,軟件的復雜性也相應(yīng)地增加了;因此,軟件調(diào)試逐漸成為擺在開發(fā)人員面前的一個難題。為了幫助開發(fā)人員調(diào)試他們的軟件,在SoC內(nèi)部構(gòu)建了一個硬件生態(tài)系統(tǒng),通常被稱為SoC調(diào)試架構(gòu)。在深入研究調(diào)試架構(gòu)的細節(jié)之前,讓我們首先了解一下調(diào)試需求。
總的來說,調(diào)試需求包括以下幾點。
● 觀察系統(tǒng)寄存器和處理器的狀態(tài),并能夠在不影響代碼執(zhí)行的情況下修改它們;
● 能夠根據(jù)需要暫停和啟動處理器;
● 獲得SoC上運行的各種軟件線程的信息,從而對軟件進行調(diào)試和優(yōu)化,以獲得更好的性能配置在出現(xiàn)特定運行時事件時觸發(fā)對此類信息的收集;
● 使用調(diào)試資源防止對系統(tǒng)進行未經(jīng)授權(quán)的訪問;
● 能夠在不同的系統(tǒng)低功率模式下進行調(diào)試。
中止處理器以獲得系統(tǒng)的各種狀態(tài)和參數(shù),這被稱為靜態(tài)/暫停模式調(diào)試,而在不干擾正常代碼執(zhí)行流的情況下訪問系統(tǒng)被稱為動態(tài)/監(jiān)視模式調(diào)試。在動態(tài)/監(jiān)視模式調(diào)試中,通常會在出現(xiàn)調(diào)試事件時執(zhí)行一個監(jiān)視程序。該程序隨后與外部調(diào)試器通信,在不中斷系統(tǒng)的情況下執(zhí)行請求的訪問。這種調(diào)試模式適用于實時系統(tǒng),如引擎控制器和硬盤控制器中的伺服機制。
獲得有關(guān)運行線程和相關(guān)程序和/或數(shù)據(jù)流的信息的過程稱為跟蹤。在這種調(diào)試模式下,數(shù)據(jù)在專用的并行接口而不是調(diào)試接口上輸出。
過去,軟件程序主要通過系統(tǒng)的電路內(nèi)仿真器(ICE)和周期準確的軟件模型進行調(diào)試。在ICE調(diào)試模式中,將要進行調(diào)試的組件(通常為處理器)替換為一個仿真器組件,后者允許對組件的各種內(nèi)部狀態(tài)和寄存器進行訪問,同時執(zhí)行被替換組件的工作。盡管這種方案非??焖俸陀行?,但是ICE模塊引入了非常高的成本。雖然周期準確的軟件模型的成本更低,但是速度比ICE更慢,并且開發(fā)這種模型會顯著地增加系統(tǒng)的復雜性。為了克服這兩種方法的局限性,制定了許多用于開發(fā)專用硬件生態(tài)系統(tǒng)/調(diào)試架構(gòu)的標準(如Nexus、CoreSight)。這種專用硬件生態(tài)系統(tǒng)/調(diào)試架構(gòu)構(gòu)成了完整系統(tǒng)的一部分,為復雜軟件的調(diào)試提供幫助并以較低的成本實現(xiàn)ICE功能。
評論