嵌入式除錯可以在不同的級別執行,具體取決於可用的裝置。表徵不同形式嵌入式除錯的不同度量標準包括:是否減慢主應用程式,被除錯的系統或應用程式與實際系統或應用程式的距離有多近,可以為除錯設定的觸發器的表達程度如何(例如,當特定的程式計數器值到達時,我想檢查記憶體),以及在除錯過程中可以檢查什麼(例如,只有記憶體,記憶體和暫存器等)。
從最簡單到最複雜,它們大致可分為以下幾個方面:
· 互動式駐留除錯,使用嵌入式作業系統提供的簡單shell(例如Forth和Basic)
· 使用日誌記錄或串列埠輸出進行外部除錯,以使用快閃記憶體中的監視器或使用Remedy偵錯程式等除錯伺服器來跟蹤操作,該除錯伺服器甚至可用於異構多核系統。
· 一個線上偵錯程式(ICD),一種透過JTAG或Nexus介面連線到微處理器的硬體裝置。這允許微處理器的操作在外部被控制,但通常限於處理器中的特定除錯能力。
· 線上模擬器(ICE)用模擬等效替代微處理器,從而完全控制微處理器的所有方面。
· 一個完整的模擬器提供了對硬體所有方面的模擬,允許對所有硬體進行控制和修改,並允許在普通PC上進行除錯。缺點是費用低且執行緩慢,在某些情況下比最終系統慢100倍。
· 對於SoC設計,典型的方法是在FPGA原型板上驗證和除錯設計。 Certus 等工具用於在FPGA RTL中插入探針,使訊號可用於觀察。這用於除錯多個FPGA上的硬體,韌體和軟體互動,其功能類似於邏輯分析儀。
· 純軟體偵錯程式的好處是不需要任何硬體修改,但必須仔細控制它們記錄的內容以節省時間和儲存空間。
嵌入式除錯可以在不同的級別執行,具體取決於可用的裝置。表徵不同形式嵌入式除錯的不同度量標準包括:是否減慢主應用程式,被除錯的系統或應用程式與實際系統或應用程式的距離有多近,可以為除錯設定的觸發器的表達程度如何(例如,當特定的程式計數器值到達時,我想檢查記憶體),以及在除錯過程中可以檢查什麼(例如,只有記憶體,記憶體和暫存器等)。
從最簡單到最複雜,它們大致可分為以下幾個方面:
· 互動式駐留除錯,使用嵌入式作業系統提供的簡單shell(例如Forth和Basic)
· 使用日誌記錄或串列埠輸出進行外部除錯,以使用快閃記憶體中的監視器或使用Remedy偵錯程式等除錯伺服器來跟蹤操作,該除錯伺服器甚至可用於異構多核系統。
· 一個線上偵錯程式(ICD),一種透過JTAG或Nexus介面連線到微處理器的硬體裝置。這允許微處理器的操作在外部被控制,但通常限於處理器中的特定除錯能力。
· 線上模擬器(ICE)用模擬等效替代微處理器,從而完全控制微處理器的所有方面。
· 一個完整的模擬器提供了對硬體所有方面的模擬,允許對所有硬體進行控制和修改,並允許在普通PC上進行除錯。缺點是費用低且執行緩慢,在某些情況下比最終系統慢100倍。
· 對於SoC設計,典型的方法是在FPGA原型板上驗證和除錯設計。 Certus 等工具用於在FPGA RTL中插入探針,使訊號可用於觀察。這用於除錯多個FPGA上的硬體,韌體和軟體互動,其功能類似於邏輯分析儀。
· 純軟體偵錯程式的好處是不需要任何硬體修改,但必須仔細控制它們記錄的內容以節省時間和儲存空間。