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