0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

來講講與工具密切配合的CoreSight

sanyue7758 ? 來源:處芯積律 ? 2023-10-30 17:54 ? 次閱讀

Perface

定位問題時,自然是需要過硬的能力,但是如果有一個牛掰的工具,那必然會幫助我們很多。

官方的IDE可能無法滿足我們的需求,而需要尋找其他的專業(yè)工具。

其中,勞特巴赫公司提供的調試工具備受推崇。該公司專門為各種不同的芯片處理器提供高端的調試解決方案,其工具功能強大,易于使用,但價格較為昂貴。

對于某些特定領域或大型項目,系統(tǒng)的復雜性和規(guī)模需要更強大的調試工具。此時,勞特巴赫公司成為了一個值得信賴的選擇。

他們的調試工具可以捕捉偶發(fā)性的問題、進行死機調試、代碼分析、函數運行時間測試等操作,這些都是在開發(fā)過程中非常實用的功能。

應該很多朋友在工作中有使用過,或者聽說過。但是,小型企業(yè)和個人開發(fā)者來說,勞特巴赫公司的調試工具還是成本太高。

當然這里不講工具本身,來講講與工具密切配合的CoreSight

本片主要的內容:聊聊CoreSight中的CTI、ETM、PTM、ITM、HTM、ETB...

ARM調試:CoreSight、ETM、PTM、ITM、HTM、ETB等常用術語解析

c31add90-76cf-11ee-939d-92fbcf53809c.jpg

我們使用勞特巴赫的時候會有如下的打印:

++++++++++++ DAP Discovery        -> Guessed Debugger Setup ++++++++++++++++++


AP#0         APB2/3-AP            -> SYStem.CONFIG DEBUGACCESSPORT  0.
 0xxxxxxxxx  ROMTABLE             -> no setup required
 0xxxxxxxxx  DEBUG Cortex-A55     -> SYStem.CONFIG.COREDEBUG.Base   0xxxxxxxxx  
 0xxxxxxxxx  CTI                  -> SYStem.CONFIG.CTI.Base         0xxxxxxxxx  
 0xxxxxxxxx  PMU Cortex-A55       -> SYStem.CONFIG.BMC.Base         0xxxxxxxxx  
 0xxxxxxxxx  ETM/PTM              -> SYStem.CONFIG.ETM.Base         0xxxxxxxxx  
 0xxxxxxxxx  DEBUG Cortex-A55     -> SYStem.CONFIG.COREDEBUG.Base   0xxxxxxxxx  
 0xxxxxxxxx  CTI                  -> SYStem.CONFIG.CTI.Base         0xxxxxxxxx  
 0xxxxxxxxx  PMU Cortex-A55       -> SYStem.CONFIG.BMC.Base         0xxxxxxxxx  
 0xxxxxxxxx  ETM/PTM              -> SYStem.CONFIG.ETM.Base         0xxxxxxxxx  


AP#3         AXI-AP               -> SYStem.CONFIG AXIACCESSPORT  3.
 0x00000000  ROMTABLE             -> no setup required




++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

?AP#0:表示應用程序的進程編號,其中“0”表示第一個進程。?APB2/3-AP:表示APB總線2和APB總線3上的應用程序。APB(Advanced Peripheral Bus)是一種先進的外部總線,用于連接嵌入式系統(tǒng)中的外設。?SYStem.CONFIG:表示系統(tǒng)配置,該日志記錄了與系統(tǒng)配置相關的信息?DEBUGACCESSPORT:表示調試訪問端口,用于遠程調試和訪問設備。?ROMTABLE:表示ROM表,用于存儲設備的配置信息和地址映射。?Cortex-A55:表示ARM Cortex-A55處理器,是一種適用于高性能、低功耗應用的處理器。?CTI:表示Cortex Test Interface(CTI),用于在Cortex-A處理器上進行測試和調試。?PMU:表示Power Management Unit(PMU),用于管理處理器的電源狀態(tài)。?ETM/PTM:表示Embedded Trace Macrocell(ETM)和Processor Trace Macrocell(PTM),用于在處理器內部進行跟蹤和調試。?SYStem.CONFIG.COREDEBUG.Base 和 SYStem.CONFIG.CTI.Base 等:表示系統(tǒng)配置中不同模塊的基地址,用于調試和訪問這些模塊。?BMC.Base:表示Baseboard Management Controller(BMC)的基地址,用于硬件管理控制器(通常在服務處理器中)。

下面先看看這些關鍵詞是什么意思?

CoreSight

?CoreSight

CoreSight CoreSight 是一種基礎架構,它可對完整的芯片上系統(tǒng) (SoC) 設計的性能進行調試、監(jiān)視和優(yōu)化,CoreSight 跟蹤宏單元在 SoC 中提供全面的非干預性可見性。

通過遵循 CoreSight 架構規(guī)范,可以方便地將合作伙伴特定的跟蹤宏單元集成到 CoreSight 系統(tǒng)中 CoreSight是ARM公司提出的一個用于對復雜的SoC(System on a Chip)實現debug和trace的架構。它是一個硬件和軟件組件的集合,旨在提供強大的調試和測試功能,以幫助開發(fā)人員開發(fā)和維護復雜的嵌入式系統(tǒng)。

CoreSight的主要組件包括:

?CTI(Cross-Trigger Interface):用于在處理器和其他組件之間傳遞觸發(fā)信號,以控制執(zhí)行流程和觸發(fā)調試事件。?CTM(Cross-Trigger Matrix):用于實現多個CTI之間的觸發(fā)信號的相互發(fā)送與接收,以支持多處理器調試和測試。?ETM(Embedded Trace Macrocell):用于跟蹤處理器執(zhí)行指令的地址和數據,生成跟蹤數據以供調試和測試使用。?PTM(Processor Trace Macrocell):用于在處理器內部實現跟蹤功能,記錄處理器的狀態(tài)和事件,以供調試和測試使用。?TMC(Trace Memory Controller):用于控制跟蹤數據的存儲和讀取,將跟蹤數據保存到外部存儲器中或從外部存儲器中讀取跟蹤數據。?DCC(Debug Communication Controller):用于實現調試器與目標設備之間的通信,包括將調試命令發(fā)送到目標設備或從目標設備讀取數據。?DMC(Debug Memory Controller):用于控制對目標設備內存的訪問,包括將數據寫入目標設備內存或從目標設備內存讀取數據。

通過這些組件的組合和配置,CoreSight可以實現對復雜SoC的debug和trace功能。開發(fā)人員可以使用調試工具鏈來訪問和處理CoreSight生成的跟蹤數據,以進行故障排除、性能優(yōu)化、安全分析等操作。

CTI

CoreSight CTI是ARM Cortex-A系列處理器的一個調試和測試接口。它提供了一種硬件觸發(fā)信號機制,用于測試處理器內部狀態(tài),并實現跟蹤和調試功能。

在硬件結構上,CTI接口連接到一個Cortex-A處理器的調試端口上,并與一個或多個其他CTI接口或調試工具相連。它包含一組觸發(fā)信號線,用于向處理器發(fā)送觸發(fā)信號或接收來自處理器的觸發(fā)信號。

觸發(fā)信號是用于控制處理器執(zhí)行特定操作的電信號。通過使用CTI觸發(fā)信號,調試工具可以控制處理器的執(zhí)行流程,以便在特定條件下暫停處理器的執(zhí)行,或者將處理器置于調試狀態(tài)。

CTI觸發(fā)信號有多種類型,包括軟件觸發(fā)信號、硬件觸發(fā)信號和跟蹤觸發(fā)信號。

其中,

?軟件觸發(fā)信號是通過調試命令將處理器置于調試狀態(tài);?硬件觸發(fā)信號是根據預設的條件或事件來觸發(fā)處理器執(zhí)行特定操作;?跟蹤觸發(fā)信號則是用于在處理器執(zhí)行代碼時生成跟蹤數據。

除了觸發(fā)信號外,CTI還提供了一些其他調試和測試功能。例如,它可以通過訪問處理器內部寄存器和內存來讀取和寫入數據,以便檢查處理器狀態(tài)或控制處理器執(zhí)行特定操作。此外,CTI還可以生成中斷信號,以便在特定條件下中斷處理器的執(zhí)行。

CTI的觸發(fā)信號類型

?Input triggers:這類觸發(fā)信號是由處理器發(fā)送給CTI的,用于觸發(fā)事件輸入到CTI。當處理器檢測到特定事件時,它會通過Input triggers信號線將觸發(fā)信號發(fā)送給CTI。這些信號可以用于控制處理器的執(zhí)行流程,例如在特定條件下暫停處理器的執(zhí)行或將其置于調試狀態(tài)。?Output triggers:這類觸發(fā)信號是由CTI發(fā)送給處理器的,用于觸發(fā)事件輸出到處理器。當CTI檢測到特定事件時,它會通過Output triggers信號線將觸發(fā)信號發(fā)送給處理器。這些信號可以用于控制處理器的執(zhí)行流程,例如在特定條件下觸發(fā)處理器執(zhí)行特定操作或將其置于調試狀態(tài)。?Input channels:這類信號是通道事件輸入到CTI的。當CTM(Cross-Trigger Matrix)檢測到特定事件時,它會通過Input channels信號線將信號發(fā)送給CTI。這些信號可以用于控制處理器的執(zhí)行流程,例如在特定條件下觸發(fā)處理器執(zhí)行特定操作或將其置于調試狀態(tài)。?Output channels:這類信號是通道事件輸出到CTM的。當CTI檢測到特定事件時,它會通過Output channels信號線將信號發(fā)送給CTM。這些信號可以用于控制處理器的執(zhí)行流程,例如在特定條件下觸發(fā)處理器執(zhí)行特定操作或將其置于調試狀態(tài)。

這些觸發(fā)信號類型提供了對處理器執(zhí)行流程的精細控制,使得開發(fā)人員可以更方便地進行調試和測試。通過使用這些觸發(fā)信號,調試工具可以靈活地控制處理器的執(zhí)行流程,以便在特定條件下檢查處理器狀態(tài)或執(zhí)行特定操作。

CTM:CoreSight CTM(Cross-Trigger Matrix)是一個交叉觸發(fā)矩陣,用于實現多個CTI(Cross-Trigger Interface)之間的觸發(fā)信號的相互發(fā)送與接收。它可以將觸發(fā)信號從一個CTI發(fā)送到另一個CTI,以便在設備之間傳播事件。每個Core和DSP都有一個CTI組件相連,CTI可以給處理器(DSP)發(fā)送trigger信號,也可以接收處理器(DSP)的trigger信號。所有的CTI和CTM相連,因此可以實現多個CTI之間的trigger信號的相互發(fā)送與接收。這些信息對于理解和使用CoreSight CTM是非常有幫助的。

ETM,嵌入式跟蹤宏單元

ETM 宏單元為 ARM 微處理器提供實時指令跟蹤和數據跟蹤。跟蹤軟件工具使用 ETM 生成的信息重建全部或部分程序的執(zhí)行情況。

ETM (Embedded Trace Macrocell) 是一種在 ARM 微處理器中使用的硬件單元,它主要用于提供實時的指令跟蹤和數據跟蹤。這種跟蹤信息對于調試和性能分析等任務非常有用。

ETM 宏單元的主要功能如下:

?實時指令跟蹤:ETM 可以跟蹤微處理器執(zhí)行的每一條指令。這使得開發(fā)人員能夠精確地了解程序在執(zhí)行時的行為,這對于調試和性能優(yōu)化特別重要。?數據跟蹤:ETM 還能跟蹤微處理器中的數據流動。這使得開發(fā)人員可以清楚地看到哪些數據被讀取、寫入和修改,這對于理解程序的數據使用情況非常有幫助。

使用 ETM 生成的信息,開發(fā)人員可以使用跟蹤軟件工具來重建程序的部分或全部執(zhí)行情況。這使得開發(fā)人員可以更深入地理解程序的運行方式,有助于發(fā)現潛在的錯誤或性能瓶頸。

白話一刻

ETM 就像是一個微處理器中的“間諜”,它默默地觀察并記錄下微處理器在做些什么。對于程序員來說,這就像有一個私人助手,隨時告訴他們程序在什么時候、在哪里、怎樣運行的。

?指令跟蹤:想象一下,你正在讓一個朋友幫你編寫一個程序,但是他編寫的代碼出了問題,導致程序行為異常。這時,ETM 就相當于一個隱藏的攝像頭,記錄下了朋友編寫的每一行代碼。通過查看 ETM 記錄的信息,你就能知道程序在哪個地方出現了問題,就像看回放一樣。?數據跟蹤:ETM 還可以跟蹤程序運行時數據的流動情況。比如說,你的程序需要讀取一個文件,然后進行處理。通過 ETM,你可以看到程序在什么時候讀取了文件,讀取了哪些數據,以及這些數據后來被怎樣處理。這樣,你就可以更好地理解程序的運行過程,看看是否有改進的地方。

ETM 就像是一個微處理器的“監(jiān)控攝像頭”,默默地記錄下程序的一切行為。通過這些記錄的信息,程序員可以更好地理解程序的行為,找出潛在的問題,優(yōu)化程序的性能。

ETM 在優(yōu)化程序性能方面有什么幫助?

?識別性能瓶頸:通過 ETM 提供的數據跟蹤信息,開發(fā)人員可以清楚地看到哪些代碼部分是程序運行最慢的部分,從而識別出性能瓶頸。這樣,他們就可以針對這些瓶頸進行優(yōu)化,以提升程序的總體性能。?理解數據使用:通過 ETM 的數據跟蹤功能,開發(fā)人員可以清楚地看到程序在運行過程中數據的讀取、寫入和修改情況。這有助于他們更好地理解程序的數據使用情況,從而優(yōu)化數據結構、算法或者數據處理流程,以提升程序性能。?指令優(yōu)化:通過 ETM 的指令跟蹤功能,開發(fā)人員可以觀察到程序執(zhí)行的每一條指令。這樣,他們就可以針對這些指令進行優(yōu)化,比如使用更高效的指令集、優(yōu)化指令排序等,以提高程序的運行速度。?系統(tǒng)級優(yōu)化:ETM 提供的信息不僅可以幫助開發(fā)人員優(yōu)化程序本身,還可以幫助他們優(yōu)化整個系統(tǒng)。例如,通過 ETM 提供的數據,開發(fā)人員可以更好地理解程序在內存、CPU 利用率等方面的情況,從而優(yōu)化系統(tǒng)配置或調整系統(tǒng)參數,以提升整個系統(tǒng)的性能。

ETM 提供了哪些數據跟蹤信息?

ETM 提供的數據跟蹤信息主要包括以下幾類:

?指令跟蹤信息:ETM 會記錄微處理器執(zhí)行的每一條指令。這使得開發(fā)人員可以了解程序執(zhí)行的完整過程,包括指令的執(zhí)行順序、執(zhí)行時間等。這些信息對于調試程序和性能優(yōu)化都非常有用。?數據跟蹤信息:ETM 還會記錄微處理器中數據的讀取、寫入和修改情況。這使得開發(fā)人員可以了解程序在運行過程中數據的變化情況,從而更好地理解程序的運行過程。?異常和中斷信息:當程序出現異常或中斷時,ETM 會記錄下相關的信息,包括異常的類型、發(fā)生時間、發(fā)生位置等。這有助于開發(fā)人員更好地理解程序的異常處理和中斷響應機制。?系統(tǒng)級信息:除了指令和數據跟蹤信息,ETM 還可以提供一些系統(tǒng)級的信息,例如 CPU 利用率、內存使用情況等。這有助于開發(fā)人員更好地了解程序的運行環(huán)境和系統(tǒng)資源配置情況。

ETM 記錄的指令跟蹤信息主要包括以下內容:

?指令地址:每條指令在內存中的地址。?指令操作碼:指令的操作碼,即指令的功能碼,表示該指令執(zhí)行什么樣的操作。?指令參數:指令所需的參數,如操作數、偏移量等。?指令執(zhí)行時間:該指令被執(zhí)行的時間。?指令來源:該指令是從哪個寄存器、內存地址或外部設備讀取的。?指令目標:該指令將結果存儲在哪個寄存器或內存地址中。?指令執(zhí)行結果:該指令執(zhí)行后的結果,如計算結果、跳轉目標等。

PTM,程序跟蹤宏單元

PTM 是一個模塊,它根據程序流程跟蹤 (PFT) 體系結構執(zhí)行實時指令流跟蹤。跟蹤工具使用 PTM 生成的信息重建全部或部分程序的執(zhí)行情況。

PTM 是一種硬件或軟件模塊,它被設計為在程序執(zhí)行時進行實時的指令跟蹤。它記錄的是程序執(zhí)行時的指令序列,這使得開發(fā)人員可以了解程序執(zhí)行的所有細節(jié)。

這個指令序列或者說“跟蹤信息”,可以用于多種目的:

?程序調試:通過查看 PTM 生成的指令序列,開發(fā)人員可以精確地了解程序在何時、何地以及如何執(zhí)行每一條指令。這對于找出程序中的錯誤、異?;蛐阅軉栴}非常有幫助。?性能分析:PTM 提供的指令序列還可以用于性能分析。通過分析這些信息,開發(fā)人員可以了解程序的哪些部分消耗了最多的計算資源,從而找出潛在的性能瓶頸。?程序重建:跟蹤工具可以使用 PTM 生成的信息來重建程序的執(zhí)行情況。這允許開發(fā)人員在程序運行后,或在特定的程序狀態(tài)(例如在發(fā)生錯誤時)下,重新查看程序的狀態(tài)和行為。?系統(tǒng)級優(yōu)化:PTM 提供的信息不僅可以用于優(yōu)化程序本身,還可以用于優(yōu)化整個系統(tǒng)。例如,通過分析 PTM 提供的信息,系統(tǒng)管理員可以了解程序的內存使用情況、CPU 利用率等,從而優(yōu)化系統(tǒng)的資源配置。

白話一刻

PTM 就像是一個記錄員,它在程序運行的時候,認真“聽”了每一個指令并且把它記錄下來。這些記錄的信息就像是一本書,記錄了程序是怎么一步步運行的。

那么,PTM 記錄了哪些信息呢?

?指令順序:PTM 會記錄程序執(zhí)行每條指令的順序。這就像是你看電影時,知道電影中每個鏡頭的先后順序一樣。?指令內容:PTM 還會記錄每條指令的內容。這就像是你看電影時,知道每個鏡頭發(fā)生了什么一樣。

那么,PTM 的記錄信息有什么用呢?

?找錯誤:如果程序運行結果不正確,PTM 的記錄信息就像是“現場直播”的回放,幫助開發(fā)人員找到問題出在哪里。?優(yōu)化性能:通過 PTM 的記錄信息,開發(fā)人員可以找出程序中“走得慢”的部分,就像是跑步比賽中的“瓶頸”一樣。針對這些部分進行優(yōu)化,可以提高程序的總體性能。?程序回放:PTM 的記錄信息還可以讓開發(fā)人員重新查看程序的運行情況。就像是重新看一遍電影一樣,幫助開發(fā)人員更好地理解程序的行為。

PTM的記錄信息還有什么用途?

這些信息可以用于程序的可視化、調試和性能分析等方面。PTM的記錄信息也可以用于程序的反向工程,例如在逆向分析中推斷程序的結構和功能。

另外,PTM還可以用于軟件測試和驗證,通過重放程序的執(zhí)行情況,可以驗證程序的正確性和可靠性??傊?,PTM的記錄信息對于程序的開發(fā)、調試、優(yōu)化、測試和驗證等方面都有重要的應用價值。

PTM和ETM的關系

PTM和ETM都是嵌入式跟蹤宏單元(ETM)架構規(guī)范中的一部分,它們之間的關系是互補的。ETM是一個通用的跟蹤宏單元,它可以用于跟蹤不同的信息,例如指令跟蹤和數據跟蹤而PTM是ETM的一個特定實現,專門用于進行程序流程跟蹤(PFT)。

PTM和ETM都提供了實時的跟蹤信息,這些信息可以用于調試、性能分析和程序驗證等。PTM主要記錄的是程序的指令序列和相關的程序流程信息,例如分支指令、異常事件等。而ETM則可以記錄更廣泛的信息,例如指令地址、數據地址和數據值等

在實際應用中,ETM和PTM通常會一起使用。例如,在調試程序時,可以使用ETM來跟蹤程序的指令和數據流動情況,而使用PTM來跟蹤程序的流程和執(zhí)行路徑。這樣可以更全面地了解程序的執(zhí)行情況,從而幫助開發(fā)人員進行調試和優(yōu)化。

PTM和ETM在ETM架構規(guī)范中的關系是什么?

PTM和ETM在ETM架構規(guī)范中的關系是互補的。ETM是一個通用的跟蹤宏單元,它可以用于跟蹤不同的信息,例如指令跟蹤和數據跟蹤。而PTM是ETM的一個特定實現,專門用于進行程序流程跟蹤(PFT)。

PTM基于PFT架構進行實時的指令流跟蹤,它會copy一份正在執(zhí)行的code,只在一些program execution point(叫做waypoint)進行trace。這些點是由PTM內部的一些特定機制決定的,例如當執(zhí)行到某個特定的指令或者達到某個特定的數據條件時,PTM就會開始記錄當前的指令和數據狀態(tài)。

PTM會記錄下這些waypoint之間的指令執(zhí)行情況,從而幫助開發(fā)人員了解程序執(zhí)行的具體流程和路徑。同時,PTM還可以記錄下程序執(zhí)行過程中的一些關鍵事件,例如異常事件、分支指令等,這些信息對于調試和性能分析都非常重要。

它們就像是一對雙胞胎,各自有不同的特點,但是又相互關聯。

ETM是一個非常厲害的“記錄員”,它可以在程序運行的時候記錄下很多信息。而PTM就像是一個專注的“小弟弟”,它告訴ETM只記錄哪些關于程序“行走”的信息。

PTM說:“我只關注程序怎么走的,其他的我都不關心?!?所以PTM記錄的信息都是關于程序怎么從一個地方走到另一個地方,也就是程序執(zhí)行時的指令序列。

ETM聽從PTM的話,于是它只記錄了程序執(zhí)行時的指令和數據。但是它不只記錄了指令序列,還記錄了其他一些信息,比如指令是在哪個時間執(zhí)行的,是在哪個內存地址執(zhí)行的等等。

所以,PTM和ETM就像是一對合作默契的好搭檔。PTM告訴ETM應該關注什么,然后ETM就專注地記錄下這些信息。兩者相互配合,可以提供更全面、更準確的程序執(zhí)行情況記錄。

這里的waypoint怎么生成?

PTM的waypoint是PTM內部通過一種特定機制來生成的。PTM會根據一些預設的條件或者規(guī)則來確定這些waypoint的位置。

一種常見的做法是使用預設的斷點作為waypoint。開發(fā)人員可以在程序中預設一些斷點,當程序執(zhí)行到這些斷點時,PTM就會開始記錄當前的指令和數據狀態(tài)。這些斷點可以是固定的位置,也可以是根據某些條件動態(tài)生成的。例如,當程序執(zhí)行到某個特定的指令或者達到某個特定的數據條件時,PTM可以將其作為waypoint并開始記錄。

另一種常見的做法是使用動態(tài)的計數器作為waypoint。PTM內部會維護一個計數器,當計數器達到某個預設的值時,PTM就會開始記錄當前的指令和數據狀態(tài)。這種方式的優(yōu)點是可以根據需要動態(tài)地生成waypoint,而不需要在程序中預設斷點。

無論采用哪種方式,PTM的waypoint都是根據預設的條件或者規(guī)則來生成的,可以靈活地根據需要進行設置。這些waypoint的位置對于PTM來說是非常重要的,因為它們決定了PTM記錄哪些指令和數據狀態(tài),從而幫助開發(fā)人員了解程序執(zhí)行的具體流程和路徑。

ITM,測量跟蹤宏單元

CoreSight ITM 塊是一個軟件應用程序驅動的跟蹤源。支持的代碼將生成軟件測量跟蹤 (SWIT)。此外,該塊還提供粗略的時間戳功能。

ITM塊是一個嵌入式跟蹤宏單元(ETM)架構規(guī)范中的一部分,它是一個軟件應用程序驅動的跟蹤源。當應用程序執(zhí)行時,ITM塊可以監(jiān)視和記錄應用程序的執(zhí)行過程,并生成軟件測量跟蹤(SWIT)。

SWIT是一種跟蹤數據格式,它記錄了應用程序執(zhí)行時的指令序列和相關數據。這些數據可以用于調試、性能分析和故障排除等應用場景。通過分析SWIT數據,開發(fā)人員可以了解程序執(zhí)行的具體流程、數據訪問模式、函數調用關系等,從而更好地理解程序的行為和性能表現。

除了生成SWIT數據,ITM塊還提供了一個粗略的時間戳功能。這個時間戳可以用于測量代碼執(zhí)行的時間,但需要注意的是,它可能不夠精確。盡管如此,這個時間戳對于評估程序的執(zhí)行效率、識別性能瓶頸和故障排查仍然非常有用。

通過使用ITM塊,開發(fā)人員可以在實際硬件上執(zhí)行應用程序,同時收集跟蹤數據。這些數據可以通過串口或JTAG等方式傳輸到主機進行分析和處理。這樣,開發(fā)人員可以在實際運行環(huán)境中監(jiān)視和跟蹤應用程序的執(zhí)行,從而更好地理解程序的行為、性能瓶頸以及可能存在的錯誤。

總之,ITM塊提供了一種高效的跟蹤解決方案,可以幫助開發(fā)人員更好地理解程序的行為、性能表現和錯誤原因。它在嵌入式系統(tǒng)的開發(fā)過程中具有重要的作用,是調試、性能分析和故障排除等應用場景中不可或缺的工具之一。

該塊的主要用途是:

?支持 printf 風格調試?跟蹤操作系統(tǒng)和應用程序事件?發(fā)出診斷系統(tǒng)信息

ITM和PTM、ETM有什么關系

ITM(Instrumentation Trace)塊、PTM(Program Trace Macro)塊和ETM(Embedded Trace Macro)塊都是嵌入式跟蹤宏單元(ETM)架構規(guī)范中的一部分,它們之間存在密切的關系。

ETM是一個通用的跟蹤宏單元,它可以用于跟蹤不同的信息,例如指令跟蹤和數據跟蹤。PTM是一個模塊,它根據程序流程跟蹤(PFT)體系結構執(zhí)行實時指令流跟蹤。PTM可以記錄下程序執(zhí)行時的指令序列和其他相關信息,幫助開發(fā)人員了解程序的執(zhí)行流程和路徑。

ITM塊則是一個軟件應用程序驅動的跟蹤源,它支持通過特定的代碼生成軟件測量跟蹤(SWIT)。ITM塊還提供粗略的時間戳功能,可以用于測量代碼執(zhí)行的時間。

ITM塊與PTM塊和ETM塊的關系是互補的。PTM塊主要用于程序流程跟蹤,而ITM塊則提供了更細粒度的指令跟蹤和時間戳功能。ETM塊作為通用的跟蹤宏單元,可以集成ITM塊和PTM塊的功能,并根據需要選擇不同的跟蹤模式。

在實際應用中,ETM、PTM和ITM通常會一起使用。ETM作為核心的跟蹤宏單元,可以記錄程序執(zhí)行時的各種信息。PTM可以根據程序流程跟蹤體系結構執(zhí)行實時指令流跟蹤,而ITM則可以提供更細粒度的指令跟蹤和時間戳功能。這些宏單元相互配合,可以提供更全面和準確的程序執(zhí)行情況跟蹤。

HTM,AHB 跟蹤宏單元

HTM 可顯示無法使用 ETM從內核跟蹤推斷的總線信息:

了解多層總線利用率。軟件調試。例如,內存區(qū)域訪問和數據訪問的可見性。跟蹤觸發(fā)器或過濾器的總線事件檢測,以及用于總線分析。HTM 提供了有關 AHB 總線的地址和數據跟蹤信息。通過將 HTM 中的信息與調試器結合使用,可對基于 AHB 的嵌入式系統(tǒng)進行方便、精確的調試。HTM 提供了廣泛的資源以使事件識別功能生成觸發(fā)事件。HTM 通過 AMBA 跟蹤總線 (ATB) 來生成輸出的跟蹤數據。跟蹤調試功能是非干預性的。可以使用 APB (AMBA v3) 接口來控制 HTM。

HTM用于什么場景?

HTM則主要用于虛擬化環(huán)境中。HTM塊是用于顯示虛擬機監(jiān)視器(VMM)或操作系統(tǒng)內核的跟蹤信息。

它提供了一種機制,使得VMM可以獲取和顯示與虛擬機相關的信息,例如虛擬機的指令序列、內存訪問等。

HTM塊可以用于監(jiān)視和控制虛擬機的執(zhí)行,幫助開發(fā)人員更好地理解虛擬機的行為和性能表現。因此,HTM在虛擬化技術中具有重要的作用,可以用于調試、優(yōu)化和監(jiān)控虛擬機的運行狀態(tài)。

STM,系統(tǒng)跟蹤宏單元

STM為所有軟件開發(fā)人員提供了低成本的軟件和硬件執(zhí)行實時可見性,尤其是應用程序和內核開發(fā)人員,從而為整個供應鏈中支持 ARM 處理器的設備提供了功能豐富且優(yōu)化的低能耗軟件。

STM 是一種軟件工具,它可以讓開發(fā)人員以低成本的方式觀察和分析他們的程序在硬件上的執(zhí)行過程。這種工具對于應用程序和內核開發(fā)人員特別有用,因為它們可以幫助開發(fā)人員更好地了解程序的執(zhí)行情況,從而更容易地找出和修復問題。

STM 的工作原理是通過記錄程序執(zhí)行時的指令序列和其他相關信息,例如寄存器狀態(tài)和內存訪問。這些信息可以通過串口或 JTAG 等方式傳輸到主機進行分析和處理。通過這些信息,開發(fā)人員可以了解程序執(zhí)行的時間和順序,從而優(yōu)化程序的性能。

除了對開發(fā)過程中的問題解決和優(yōu)化有重要作用外,STM 還對整個供應鏈中支持 ARM 處理器的設備提供了功能豐富且優(yōu)化的低能耗軟件。通過使用 STM,設備制造商可以獲得一種可靠的、高效的工具來優(yōu)化其設備的能耗,同時提高其功能和性能。這對于當前和未來的 ARM 處理器設備非常重要,因為這些設備通常需要在更小的空間內提供更高的性能,同時盡可能減少能耗。

總的來說,STM 就像一個“監(jiān)視器”一樣,幫助開發(fā)人員實時觀察程序的執(zhí)行情況,從而更容易地找出和解決問題。同時,它也為設備制造商提供了優(yōu)化其設備性能的工具,使得整個供應鏈中的 ARM 處理器設備能夠更好地滿足用戶的需求。

ECT,嵌入式交叉觸發(fā)

CoreSight ECT 是一個控制和訪問組件,支持 SoC 內的多個觸發(fā)事件的交互和同步。

CoreSight ECT 是一個控制和訪問組件,它支持 SoC(System on a Chip)內的多個觸發(fā)事件的交互和同步。ECT(Error Checking and Correction)是一種用于檢測和糾正內存錯誤的機制,它通常在計算機系統(tǒng)中用于確保數據的完整性和可靠性。

CoreSight 是 ARM 的一個嵌入式調試和跟蹤平臺,它提供了一套完整的工具鏈,用于開發(fā)和調試基于 ARM 處理器的系統(tǒng)。ECT 是 CoreSight 平臺的一部分,它提供了一種高效的內存錯誤檢測和糾正機制,以確保在系統(tǒng)運行時數據的完整性和可靠性。

ECT 通過在內存中插入校驗和(checksum)來檢測數據錯誤,并使用一個或多個 ECC(Error Checking and Correcting)寄存器來存儲校驗和。當系統(tǒng)讀取或寫入內存時,ECT 會自動計算校驗和并將其與存儲在 ECC 寄存器中的校驗和進行比較。如果發(fā)現錯誤,ECT 會自動糾正單比特錯誤,并報告多比特錯誤。

除了支持內存錯誤的檢測和糾正,ECT 還支持 SoC 內多個觸發(fā)事件的交互和同步。這意味著 ECT 可以與其他的 CoreSight 組件和外部硬件設備進行通信,以實現更復雜的事件處理和系統(tǒng)控制。例如,ECT 可以與 CoreSight 的其他組件配合,實現系統(tǒng)級的錯誤檢測和糾正,或者與其他硬件設備進行通信,以實現更高效的內存訪問和控制。

CoreSight ECT 是一個功能強大的控制和訪問組件,它支持 SoC 內的多個觸發(fā)事件的交互和同步,并提供了一種高效的內存錯誤檢測和糾正機制,以確保系統(tǒng)的完整性和可靠性。

CoreSight ECT 的工作原理是什么?

CoreSight ECT(Error Checking and Correction)是一種用于檢測和糾正內存錯誤的機制,它主要在系統(tǒng)運行時工作。以下是其工作原理的簡要說明:

?校驗和計算:當系統(tǒng)寫入數據到內存時,ECT 會自動計算數據的校驗和(checksum)。這個校驗和是根據數據的每個字節(jié)計算出來的,并被存儲在一個或多個 ECC(Error Checking and Correcting)寄存器中。?校驗和檢查:當系統(tǒng)從內存中讀取數據時,ECT 會自動計算數據的校驗和,并將它與存儲在 ECC 寄存器中的校驗和進行比較。如果兩個校驗和匹配,說明數據是正確的;否則,說明數據存在錯誤。?錯誤糾正:如果發(fā)現數據錯誤,ECT 會自動糾正單比特錯誤。它會使用 ECC 寄存器中的正確校驗和來修正錯誤的數據,并通知系統(tǒng)繼續(xù)運行。對于多比特錯誤,ECT 會報告錯誤但不進行糾正,因為多比特錯誤可能超出了其糾正能力。?觸發(fā)事件交互和同步:除了支持內存錯誤的檢測和糾正,ECT 還支持與其他 CoreSight 組件和外部硬件設備的交互和同步。這使得 ECT 可以與其他組件配合,實現更復雜的事件處理和系統(tǒng)控制。例如,ECT 可以與 CTI(CTI)組件配合,實現多個觸發(fā)事件之間的相互發(fā)送與接收。

CoreSight ECT 的工作原理是利用校驗和計算和檢查來檢測數據錯誤,并使用 ECC 寄存器來糾正單比特錯誤。同時,它還支持與其他組件的交互和同步,以實現更復雜的事件處理和系統(tǒng)控制。

ECT如何與外部硬件設備進行交互?

首先,ECT 可以與其他的 CoreSight 組件進行交互。CoreSight 是 ARM 的一個嵌入式調試和跟蹤平臺,提供了一套完整的工具鏈,用于開發(fā)和調試基于 ARM 處理器的系統(tǒng)。ECT 是 CoreSight 平臺的一部分,因此它可以與其他 CoreSight 組件進行通信和交互。例如,ECT 可以與 CTI(Communication Trace Interface)組件配合,實現多個觸發(fā)事件之間的相互發(fā)送與接收。

其次,ECT 也可以與外部硬件設備進行交互。這通常是通過與其他硬件設備進行通信實現的。例如,ECT 可以使用串行通信接口(如 UARTI2C)或并行通信接口(如 SPI 或 USB)與其他硬件設備進行通信。通過通信接口,ECT 可以接收來自其他硬件設備的數據,也可以向其他硬件設備發(fā)送數據。

在交互過程中,ECT 可以利用其錯誤檢測和糾正能力,對接收到的數據進行校驗和檢查。如果發(fā)現數據錯誤,ECT 可以自動糾正單比特錯誤,或者將錯誤報告給系統(tǒng)或其他硬件設備,以采取相應的糾正措施。同時,ECT 也可以利用其觸發(fā)事件交互和同步能力,與其他硬件設備配合實現更復雜的事件處理和系統(tǒng)控制。

ECT 與外部硬件設備的交互主要是通過與其他 CoreSight 組件和外部硬件設備配合實現的。它可以使用各種通信接口與其他設備進行通信和數據交換,并利用其錯誤檢測和糾正能力保證數據的完整性和可靠性。

ETB,嵌入式跟蹤緩存

CoreSight ETB 是一個跟蹤接收器,它可使用可配置大小的 RAM 為跟蹤數據提供芯片上存儲。

CoreSight ETB(Embedded Trace Buffer)是一個跟蹤接收器,它可以使用可配置大小的 RAM 為跟蹤數據提供芯片上存儲。它主要用于在嵌入式系統(tǒng)中進行調試和跟蹤,以便開發(fā)人員在系統(tǒng)運行時觀察和跟蹤硬件事件和數據。

ETB 通常與 CoreSight 的其他組件一起使用,例如嵌入式跟蹤宏單元(ETM)和通信跟蹤接口(CTI),以提供全面的調試和跟蹤解決方案。

ETB 的主要特點是它可以使用可配置大小的 RAM,這意味著開發(fā)人員可以根據他們的需求調整跟蹤數據的存儲大小。ETB 可以配置為存儲固定數量的數據或根據需要動態(tài)擴展。這種可配置性使得 ETB 能夠適應不同的應用場景和需求。

除了使用 RAM 存儲跟蹤數據外,ETB 還支持多種跟蹤數據格式,例如跟蹤事件、跟蹤數據包和跟蹤快照。這些格式可以靈活地選擇和配置,以適應不同的跟蹤需求和協(xié)議。

此外,ETB 還支持多個跟蹤通道,這意味著它可以同時接收和處理來自不同源頭的跟蹤數據。這使得 ETB 非常適合用于復雜的系統(tǒng)架構中,其中同時發(fā)生多個硬件事件和數據交互。

總之,CoreSight ETB 是一個功能強大的跟蹤接收器,它使用可配置大小的 RAM 為跟蹤數據提供芯片上存儲,并支持多種跟蹤數據格式和多個跟蹤通道。這些特點使得 ETB 成為嵌入式系統(tǒng)中調試和跟蹤的理想選擇。

CoreSight ETB有哪些應用場景?

?調試硬件事件和數據:ETB 可以用于觀察和跟蹤硬件事件和數據,例如中斷、異常、寄存器訪問等。開發(fā)人員可以通過分析跟蹤數據來調試硬件問題,并確保系統(tǒng)在特定條件下正確地執(zhí)行。?系統(tǒng)性能分析:ETB 可以用于分析系統(tǒng)的性能特征,例如處理器使用率、內存訪問模式、功耗等。通過跟蹤系統(tǒng)的運行情況,開發(fā)人員可以識別性能瓶頸和優(yōu)化機會,以提高系統(tǒng)的整體性能。?實時系統(tǒng)監(jiān)控:ETB 可以用于實時監(jiān)控系統(tǒng)的狀態(tài)和行為。例如,開發(fā)人員可以設置觸發(fā)條件,當系統(tǒng)滿足特定條件時,自動保存跟蹤數據并通知調試器進行進一步分析。這種應用可以幫助開發(fā)人員在系統(tǒng)運行時檢測和識別異常行為。?系統(tǒng)錯誤診斷:當系統(tǒng)出現錯誤或故障時,ETB 可以用于保存錯誤發(fā)生時的跟蹤數據。這些數據可以用于后續(xù)的分析和故障診斷,幫助開發(fā)人員定位錯誤的原因。?算法優(yōu)化和驗證:ETB 可以用于跟蹤算法的運行過程,幫助開發(fā)人員在算法開發(fā)初期發(fā)現問題并進行優(yōu)化。同時,ETB 也可以用于驗證算法的正確性和性能,確保算法在實際應用中表現良好。?嵌入式系統(tǒng)開發(fā):ETB 常用于嵌入式系統(tǒng)的開發(fā)過程中。在軟件開發(fā)和硬件調試階段,開發(fā)人員可以使用 ETB 來跟蹤程序的執(zhí)行過程、內存訪問和硬件事件,以便快速定位問題并進行修復。


聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規(guī)問題,請聯系本站處理。 舉報投訴
  • 處理器
    +關注

    關注

    68

    文章

    19044

    瀏覽量

    228504
  • ARM
    ARM
    +關注

    關注

    134

    文章

    9009

    瀏覽量

    366101
  • 嵌入式
    +關注

    關注

    5053

    文章

    18915

    瀏覽量

    300873

原文標題:參考資料

文章出處:【微信號:處芯積律,微信公眾號:處芯積律】歡迎添加關注!文章轉載請注明出處。

收藏 人收藏

    評論

    相關推薦

    芯片DFX:Coresight的寄存器一覽

    coresight對于每個coresight組件,規(guī)定了一些寄存器,這些寄存器的偏移是固定的,這些寄存器,是必須存在的。但是有的,可以不實現該寄存器功能。
    的頭像 發(fā)表于 11-02 11:45 ?980次閱讀
    芯片DFX:<b class='flag-5'>Coresight</b>的寄存器一覽

    大家來講講電感制作心得吧

    大家來講講電感制作心得吧,如何選擇材料?PCB打樣找華強 http://www.hqpcb.com/3 樣板2天出貨
    發(fā)表于 10-13 18:38

    講講友善串口助手工具

    繼續(xù)講講串口,如果我們已經創(chuàng)建好了虛擬串口,那么就可以通過串口助手來愉快的判斷數據啦。首先我們要下載一個小工具——友善串口助手(如果大神的話,可以自己用QT寫哦)設置一下自身的串口數據通過 那個 藍色三角符號 可以打開串口...
    發(fā)表于 02-16 06:03

    適用于SoC600的CoreSight訪問工具(CSAT600)用戶指南1.0版

    用于SoC600的CoreSight訪問工具(CSAT600)提供對ARM調試接口架構規(guī)范ADIV6.0或CoreSight SoC-600目標的訪問。 CSAT600工具用于在
    發(fā)表于 08-16 07:20

    CoreSight?訪問工具(CSAT)用戶指南

    CoreSight TM Access Tool(CSAT)程序是一個基于控制臺的測試程序,用于驗證CoreSight系統(tǒng)。 該工具包含許多命令,允許使用DSTREAM和VStream調試控制
    發(fā)表于 08-16 08:13

    CoreSight? 訪問工具(CSAT)用戶指南

    CoreSight TM Access Tool(CSAT)程序是一個基于控制臺的測試程序,用于驗證CoreSight系統(tǒng)。 該工具包含許多命令,允許使用DSTREAM和VStream調試控制
    發(fā)表于 08-18 07:38

    Keil工具的ARM CoreSight基礎知識

    ARM CoreSight技術是一套工具,可用于調試和跟蹤在基于ARM的設備上運行的軟件。 調試功能用于觀察或修改設計部分的狀態(tài),而跟蹤功能允許連續(xù)收集系統(tǒng)信息,以便以后進行離線分析。 有了ARM
    發(fā)表于 08-25 07:53

    CoreSight SoC-400綜合套件解決方案

    CoreSight SoC-400是包括可配置調試和追蹤組件及設計工具(以自動化IP針數和測試)在內的綜合套件。該解決方案的功能包括:完整的自動化系統(tǒng)stitching和測試臺、增強的AMBA
    的頭像 發(fā)表于 07-02 14:28 ?3487次閱讀

    關于CoreSight中調試和跟蹤的相關內容

    講講關于CoreSight中調試和跟蹤的相關內容。 strongerHuang 1 調試和跟蹤功能 CoreSight兩個主要功能就是調試和跟蹤功能。 1.調試功能 運行處理器的控制,允許啟動和停止
    的頭像 發(fā)表于 11-03 16:10 ?2001次閱讀

    由變頻器和PLC密切配合的雙恒壓無塔供水系統(tǒng)

    PLC和變頻器都是工業(yè)控制中最常用的設備,二者可以單獨使用,也可以密切配合,都能夠達到自動化控制的目的,應用非常的廣泛,今天就舉一個具體的例子:雙恒壓無塔供水系統(tǒng),這個系統(tǒng)是由變頻器和PLC密切配合
    的頭像 發(fā)表于 04-22 09:53 ?1841次閱讀
    由變頻器和PLC<b class='flag-5'>密切配合</b>的雙恒壓無塔供水系統(tǒng)

    PLC與變頻器相結合的經典案例:雙恒壓無塔供水系統(tǒng)

    PLC和變頻器都是工業(yè)控制中最常用的設備,二者可以單獨使用,也可以密切配合,都能夠達到自動化控制的目的,應用非常的廣泛,今天就舉一個具體的例子:雙恒壓無塔供水系統(tǒng),這個系統(tǒng)是由變頻器和PLC密切配合才能完成的,一般都在大的項目上使用。
    的頭像 發(fā)表于 04-22 09:52 ?3019次閱讀
    PLC與變頻器相結合的經典案例:雙恒壓無塔供水系統(tǒng)

    經典PLC編程案例:雙恒壓無塔供水系統(tǒng)

    PLC和變頻器都是工業(yè)控制中最常用的設備,二者可以單獨使用,也可以密切配合,都能夠達到自動化控制的目的,應用非常的廣泛,今天就舉一個具體的例子:雙恒壓無塔供水系統(tǒng),這個系統(tǒng)是由變頻器和PLC密切配合才能完成的,一般都在大的項目上使用。
    發(fā)表于 03-03 15:58 ?653次閱讀

    講講軟包電池尺寸的規(guī)格變化

    從結構上來說也在不斷簡化,尤其是電池設計開始走向CTP和CTC之后。我們本文重點來講講軟包電池尺寸的規(guī)格變化。
    的頭像 發(fā)表于 03-23 15:10 ?6315次閱讀

    經典PLC編程案例——雙恒壓無塔供水系統(tǒng)

    ?? PLC和變頻器都是工業(yè)控制中最常用的設備,二者可以單獨使用,也可以密切配合,都能夠達到自動化控制的目的,應用非常的廣泛,今天就舉一個具體的例子:雙恒壓無塔供水系統(tǒng),這個系統(tǒng)是由變頻器和PLC密切配合才能完成的,一般都在大的項目上使用。
    發(fā)表于 04-20 11:07 ?372次閱讀

    PLC編程案例:雙恒壓無塔供水系統(tǒng)

    PLC和變頻器都是工業(yè)控制中最常用的設備,二者可以單獨使用,也可以密切配合,都能夠達到自動化控制的目的,應用非常的廣泛,今天就舉一個具體的例子:雙恒壓無塔供水系統(tǒng),這個系統(tǒng)是由變頻器和PLC密切配合才能完成的,一般都在大的項目上使用。
    的頭像 發(fā)表于 04-27 11:52 ?1002次閱讀
    PLC編程案例:雙恒壓無塔供水系統(tǒng)