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