開始使用J-Trace PRO 很簡單。有了Ozone J-Trace例程項目,開發(fā)者們可以輕松開始。
Ozone J-Trace PRO例程可以作為您學習和使用J-Trace PRO流式跟蹤和實時分析功能的起點。例程展示了如何在15分鐘內(nèi)獲得對系統(tǒng)的最先進分析。
例程項目從目標硬件上運行的簡單應用程序開始,無需特殊代碼或配置即可展示跟蹤功能。項目中還包括更高級的示例,如系統(tǒng)初始化和使用embOS,也可以使用J-Trace PRO進行分析。它包括預構(gòu)建的應用程序、Ozone項目以及一個Embedded Studio項目,用于修改和重新構(gòu)建應用程序。
下載Ozone J-Trace PRO例程項目:
https://www.segger.com/downloads/jlink/J-Trace_PRO_CortexM_Tutorial.zip
這個例程項目是以Cortex-M Trace參考板為背景編寫的。

Trace例程演練
1. 下載例程項目,并確保已安裝J-Link軟件和最新的Ozone。
2. 將項目解壓到計算機上的任何目標目錄。
3. 將J-Trace PRO與計算機和目標板連接,并給板供電。
4. 使用Ozone打開項目目錄中的
SEGGER_CortexM_Trace_Reference_Board.jdebug。
5. 打開Code Profile窗口和Instruction Trace
窗口。(view → Code Profile和視圖→Instruction Trace)

6. 在OS_TraceDemo.c中的main()函數(shù)的BSP_Init處設置一個斷點。
7. 開始調(diào)試會話(Debug → Start Debug Session → Download and Reset program)。Ozone啟動并加載為您的Cortex-M Trace參考板預構(gòu)建的可執(zhí)行文件。應用程序被加載到您的Cortex-M Trace參考板,它啟動并運行到main。

8. 繼續(xù)運行到您的斷點處(Debug → Continue)。Ozone在從OS_InitHW()返回后中斷。指令跟蹤窗口顯示了到目前為止已執(zhí)行的內(nèi)容。最近的指令在底部。指令按源行和相應函數(shù)分組。折疊所有塊將顯示已調(diào)用的函數(shù)以及應用程序返回到的函數(shù)。要折疊所有塊,請右鍵單擊“Instruction Trace”,然后點擊“Collapse all”。
當所有塊都展開時,您可以瀏覽指令以在源代碼查看器和反匯編窗口中跟蹤執(zhí)行情況,并查看從main開始直到命中斷點為止確切發(fā)生了什么。要展開所有塊,請右鍵單擊“Instruction Trace”,然后點擊“Expand all”。
9. 再次繼續(xù)執(zhí)行((Debug → Continue)。
應用程序正在運行,LED燈正在閃爍。源代碼查看器中的源代碼行可以展開以顯示每行源代碼生成的指令。
源代碼查看器的左列顯示代碼覆蓋率級別。每行代碼都被標記為完全執(zhí)行(黃色)、部分執(zhí)行(橙色)或未執(zhí)行(灰色)。

10. 在源代碼查看器中顯示代碼配置文件計數(shù)器(右鍵單擊Source Viewer → Execution Counters)
除了代碼覆蓋率標記之外,左列還可以顯示執(zhí)行的源代碼行和指令的數(shù)量。在應用程序運行時,計數(shù)器會從跟蹤流中實時更新。將鼠標懸停在計數(shù)器上,可以在工具提示中獲取提取和未執(zhí)行計數(shù),以及該行的CPU負載。

11. 代碼配置文件窗口(View → Code Profile)
代碼配置文件窗口按函數(shù)顯示代碼覆蓋率和分析信息。它允許按負載或覆蓋率排序,并過濾函數(shù),使其不計入負載統(tǒng)計。在下面的示例屏幕截圖中,OS_Idle()未被選入負載計算,因為應用程序在該函數(shù)中花費了超過99%的時間。

12. 將跟蹤數(shù)據(jù)導出到報告(右鍵單擊Code Profile→ Export...)
代碼配置文件窗口中的信息可以導出到具有不同格式的報告中,這可以用于驗證過程。
要修改項目,請使用Embedded Studio打開
J-Trace_PRO_CortexM_Tutorial.emProject。
您可以更改OS_TraceDemo.c或添加您自己的應用程序文件。
完成所有更改后,重新編譯項目(Build → Build Solution),為參考板創(chuàng)建應用程序。如果Ozone項目仍然打開,它將提示重新加載剛剛更改的應用程序文件。如果Ozone未啟動,請啟動它并加載SEGGER_CortexM_Trace_Reference_Board.jdebug。