SDSoC 開發環境
SDSoC是 Xilinx 旗下用于設計開發 Zynq SoC 和 MPSoC 異構嵌入式系統的基于 Eclipse 的集成開發環境,可以完成從 C/C++ 到指定目標平臺上功能完整的硬件/軟件系統的編譯、實現、調試執行等全過程。
由 SDSoC 產生的系統是高性能的,同時也是復雜的硬件/軟件協同工作系統。要了解在這樣的系統中應用程序的執行過程是比較困難的,因為你需要同時關注在處理器上運行的軟件部分和在硬件可編程邏輯上執行的加速部分,以及數據在二者之間的傳遞過程和順序等。
Trace (事件追蹤) 功能
2015.4 版的 SDSoC 中新增了一個功能,叫做 Trace,即事件追蹤功能,可以幫助設計開發人員深入了解應用程序的執行過程中整個系統上發生了哪些事件以及發生的順序,用戶可以以此為依據進行系統優化。
Trace 提供的是一個詳細視圖,用戶可以在其中觀察應用,硬件/軟件分區和系統設計選擇的性能,它提供的是一個以時間軸為單位而量化的事件追蹤,包括在理器上運行的軟件事件,在可編程邏輯上運行的硬件加速事件和在系統中的數據傳輸鏈路事件。
由于需要讀取上板應用的數據,要啟動事件跟蹤,用戶必須將開發板經由 JTAG 連接到主機。
在 SDSoC 中啟動 Trace 后,事件追蹤功能就會被自動插入到軟件代碼和硬件 IP 中。然后,硬件部分(包括完成事件追蹤功能的監控 IP)經過綜合和布局布線,產生比特流,而軟件跟蹤代碼則被編譯到普通用戶應用中。硬件和軟件的事件追蹤時間戳被收集到了一個追蹤流中,并且以在可編程架構中緩存的方式記錄下來,由主機通過 JTAG 訪問并讀回數據。
下圖橙色高亮的部分,就是應用 Trace 功能后 SDSoC 自動插入的監控 IP,用以完成和記錄事件追蹤功能。
收集事件追蹤數據的接口根據不同的操作系統而略有不同。對于 Standalone 和 FreeRTOS 操作系統,用戶程序 ELF 使用 USB / JTAG 接口下載到電路板上進行配置和調試,斷點也是經由了同樣的 USB / JTAG 接口而插入,事件跟蹤的數據采集,也是在相同的 USB / JTAG 接口上讀取。
對于 Linux,一旦操作系統經由 SD 卡啟動,ELF 已經復制后,便可以經過 TCP/TCF 運行調試,斷點也可以經由 TCP/TCP 插入,但事件跟蹤的數據仍然需要通過 USB / JTAG 接口讀出。換句話說,要在 Linux 應用程序上啟動事件追蹤, USB / JTAG 和 TCP / TCF 接口都需要。
Trace 視圖
下圖所示就是 SDSoC GUI 提供的 Trace 視圖。用戶應用程序的每個跟蹤事件被賦予一個唯一的軌跡名稱,并且對應到同一個時間軸。通常,一個跟蹤點可以通過應用程序的執行創建多個軌跡,例如,如果相同的代碼被循環執行,或者在加速器中被多次調用。
每個事件追蹤軌跡都有幾個不同的屬性:名稱,類型,以及啟動,停止和持續時間。如果將鼠標懸停在某個軌跡上,就可以看到這個軌跡的詳細屬性。Trace 視圖中以不同的顏色區別不同類型的軌跡,例如橙色代表軟件事件追蹤,綠色代表硬件事件而藍色代表數據的交互。
關于 Trace 更詳細的介紹和分步驟教程,請關注 SDSoC 安裝目錄下的 docs 目錄,其中有一個 SDSoC_Trace2015.4.pdf 文檔可供參考。
由于 Trace 是在 SDSoC 2015.4 版首次發布,且目前還處于 Beta 階段,其僅能完成有限的事件追蹤功能,我們將在以后的版本中不斷完善,提供更全面的追蹤功能。敬請關注。
-
賽靈思
+關注
關注
33文章
1795瀏覽量
132008 -
可編程邏輯
+關注
關注
7文章
523瀏覽量
44465
發布評論請先 登錄
相關推薦
賽靈思和戴姆勒宣布將共同開發基于Xilinx AI技術的車載系統
如何利用賽靈思28納米工藝加速平臺開發?
關于Xilinx發布的全可編程SoC和MPSoC的SDSoC開發環境介紹
Xilinx正式版SDSoC開發環境可實現嵌入式C/C++語言應用開發
賽靈思將Zynq SoC用戶擴展至廣大的系統和軟件工程師社群

評論