精品国产人成在线_亚洲高清无码在线观看_国产在线视频国产永久2021_国产AV综合第一页一个的一区免费影院黑人_最近中文字幕MV高清在线视频

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

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

3天內不再提示

Tracealyzer實現流跟蹤最簡單的方法

我快閉嘴 ? 來源:麥克泰技術 ? 作者:麥克泰技術 ? 2022-09-02 11:11 ? 次閱讀

Tracealyzer 實現流跟蹤最簡單的方法就是使用SEGGER J-Link調試器,通過RTT功能來實現數據的傳送。RTT需要在RAM上建立一段緩存,在目標系統運行期間,由J-Link讀取緩存中的數據。一般來說RTT的速度和可靠性比較高,但是如果您遇到了問題,可以參照以下方法嘗試排除。

常規

檢查

1、檢查是否正確的集成了Tracealyzer跟蹤記錄器庫,以及是否根據J-Link RTT流模式進行了正確配置,請對照產品手冊檢查。

2、安裝最新的J-Link驅動。SEGGER經常更新驅動,IDE和Tracealyzer使用的J-link驅動通常不是最新版本。一定要讓Tracealyzer和IDE使用相同的驅動版本。

3、 “PSF Streaming Settings”中的設置要符合記錄器中的配置。

如果使用vTraceEnable(TRC_INIT),“Target Starts Tracing”和“Reset Target onConnect”不要勾選;

如果使用vTraceEnable(TRC_START),“Target Starts Tracing”保持勾選。

4、在Tracealzyer中檢查J-Link設置。J-Link的速度和協議(JTAG/SWD)要與IDE中的設置一致。

5、檢查Tracealyzer跟蹤記錄器庫的.c和.h文件是否是同一版本。

接收不到數據

1、如果按了“Starting Recording”之后,Live Stream窗口沒有接收到數據或者出現報錯,比較可能的問題是J-Link驅動不能檢測到RTT控制塊。從電腦任務欄綠色的“J”小圖標,打開J-Link控制面板。在RTT頁中,狀態應該顯示“Located RTT control block”。如果顯示“RTT Handled by other J-Link instance”,任務欄找到另外一個J-Link實例并查看狀態。

8eff25f8-2a6c-11ed-ba43-dac502259ad0.jpg

如果狀態顯示“Looking for RTT CB @…”,說明驅動沒有找到RTT控制塊,在IDE中查找到“_SEGGER_RTT”符號的地址(通過IDE的watch窗口或printf輸出),填入RTT頁的“Control block address”,然后點“Start”,或者在Tracealyzer PSF Streaming Settings設置地址。重新連接,然后應該就可以建立連接了。但要注意,每次重構建代碼地址可能會變化,需要手動更新一遍。

2、脫離Tracealyzer,驗證J-Link RTT通訊

先關閉Tracealyzer,下載J-Link驅動包并安裝,找到JLinkRTTLogger工具。在程序中禁用Tracealyzer,并在main函數中加入如下內容:

#include “SEGGER_RTT.h”

SEGGER_RTT_Init();

SEGGER_RTT_WriteString(0, “Hello!”);

啟動JLinkRTTLogger,按要求輸入信息,默認值通常是1,只需按回車鍵接受。如果JLinkRTTLogger能獲取到數據,說明RTT通訊是正常的,問題很可能是Tracealyzer跟蹤記錄器庫的配置問題。

8f0bb034-2a6c-11ed-ba43-dac502259ad0.jpg

事件丟失

在某些情況下,產生的數據超過J-Link的傳輸速度,就會導致RTT緩存寫滿,新產生的事件就會丟失,直到再次有可用的緩存。出現事件丟失的情況,在Tracealyzer的Live Stream窗口就會報告“Missed Events”,此外,實時視圖中的紅色區域顯示了數據丟失的位置,如下圖:

8f29bc82-2a6c-11ed-ba43-dac502259ad0.jpg

如果出現事件丟失,按照以下步驟進行操作:

1、在Tracealyzer接收數據時,打開J-Link控制面板,確定選擇“Process: Tracealyzer.exe”。檢查J-Link控制面板中的“Target interface”數值是否與Tracealyzer中的“J-Link Speed”設置的一致。

8f4e434a-2a6c-11ed-ba43-dac502259ad0.jpg

如果兩者不一致,存在兩種情況:

如果指定的速度高于J-Link所支持的速度,則驅動程序將使用所支持的最高速度(上圖中,是2667 KHz而不是4000 KHz),速度不能再增大,除非選用更高速型號的J-Link。

在某些情況下,驅動程序可能會忽略Tracealyzer中的“J-Link Speed”設置,而使用默認的200KHz。解決這個問題,“Debugger Interface”中設置實際使用的調試協議(JTAG/SWD),不要使用默認設置。

2、如果兩者一致,可以在“J-Link Speed”適當增大速度(默認是4000KHz),前提是J-Link支持更高的速度。各型號J-Link支持的最高速度可點擊“閱讀原文”查看。

3、在trcStreamingPort.h中增大TRC_CFG_RTT_

BUFFER_SIZE_UP,以增加RTT的緩存。

4、在trcConfig.h或者使用vTraceSetFilterMask() 和vTraceSetFilterGroup()過濾跟蹤的事件類型,減少產生的事件數量。

總結

如果J-Link RTT 流跟蹤遇到問題,首先應該根據Tracealyzer手冊檢查記錄庫的配置,如果出現事件丟失,最有效的方法是提高J-Link的速度設置,增大RTT緩存,或者減少產生的事件數量。

審核編輯:湯梓紅

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

    關注

    0

    文章

    65

    瀏覽量

    17086
  • 調試器
    +關注

    關注

    1

    文章

    300

    瀏覽量

    23690
  • J-Link
    +關注

    關注

    0

    文章

    83

    瀏覽量

    22118

原文標題:Tracealyzer J-Link RTT流跟蹤常見故障

文章出處:【微信號:麥克泰技術,微信公眾號:麥克泰技術】歡迎添加關注!文章轉載請注明出處。

收藏 人收藏

    評論

    相關推薦

    如何通過Tracealyzer實現Linux系統的跟蹤

    Tracealyzer是Percepio 公司開發的一款可視化跟蹤工具, 目前它提供了30多種相互關聯的運行時行為視圖,支持裸機、FreeRTOS、μC/OS-III、Zephyr、ThreadX、VxWorks、Linux系統的跟蹤
    的頭像 發表于 12-08 14:08 ?1214次閱讀
    如何通過<b class='flag-5'>Tracealyzer</b><b class='flag-5'>實現</b>Linux系統的<b class='flag-5'>跟蹤</b>?

    Tracealyzer 技術分享

    有兩種方式1.Snapshot Mode(快照模式)特點:跟蹤的數據保存在目標RAM中,幾KB的跟蹤緩沖區通常足以獲得最新事件的可靠跟蹤。基本上任何系統都可以使用。2.Streaming Mode(
    發表于 01-04 21:10

    教你快遞入門-Tracealyzer跟蹤記錄庫移植

    。使用Tracealyzer,可以查看到系統的真實運行情況,為開發人員節省排除錯誤的時間。Tracealyzer由PC應用程序和跟蹤組件組成,Percepio提供了跟蹤記錄庫(Trac
    發表于 07-31 14:08

    Tracealyzer利用CortexM的ITM實現跟蹤

    事件,達到1175KB/s的傳輸速率。使用ARM-ITM模式下文將以IAR EWARM 8.40、I-jet調試器和Tracealyzer 4.35為例說明如何配置和使用ITM實現
    發表于 12-05 15:34

    如何使用Tracealyzer預先定義的記錄器擴展文件實現用戶應用程序跟蹤

    被記錄為“用戶事件”。從Tracealyzer V4.2.9版本開始,增加了記錄器擴展方式來跟蹤用戶應用程序。記錄器擴展方式可以幫助用戶實現中間件、驅動程序API等重要功能函數調用的跟蹤
    發表于 12-18 13:37

    出現“丟失事件”?看Tracealyzer模式如何調優

    在使用自己定義的端口實現跟蹤時,如果Tracealyzer提示了“丟失事件”,那么你可以參照以下幾種
    發表于 02-19 10:06

    通過Tracealyzer用戶事件來了解應用程序

    Tracealyzer跟蹤記錄器庫的集成。可視化特定應用程序的自定義信息的第一步是創建一個用戶事件通道。這是一個字符串輸出通道,允許開發人員添加自己的自定義事件,在Tracealyzer中稱為用戶事件。例如,如果想要傳輸
    發表于 08-20 10:11

    使用Tracealyzer跟蹤FreeRTOS內核

    程序,還需要可用于周期性任務的定時機制。大多數現有的開源 RTOS 實現了基于樹或列表的機制來跟蹤哪個任務已就緒。我們知道,基于樹的機制在復雜搜索操作方面是高效和極時的,但在處理刪除和插入操作上需花費
    發表于 12-01 14:57

    如何使用Tracealyzer模式跟蹤ThreadX?

    Tracealyzer是Percepio 公司開發的一款用于RTOS的嵌入式軟件系統的可視化跟蹤工具,提供了30多種相互關聯的可視化運行時行為視圖,本文將介紹如何使用Tracealyzer
    發表于 09-23 13:25

    是否需要在iMXRT1060 EVK板上執行任何特定操作才能使tracealyzer正常工作?

    我有 iMXRT1060EVK,想在 FreeRTOS 的模式下使用 Tracealyzer。我正在使用 IAR EW 和 I-jet 調試探針。我已按照以下鏈接中的步驟進行操作,但數據仍然存在
    發表于 04-17 08:02

    使用Percepio的Tracealyzer和DevAlert實現FreeRTOS的可觀察性!

    ,可使用相關桌面工具實現多種類型的調試數據。您可以獲得Tracealyzer追蹤,查看導致檢測到異常的事件序列。此外,最近還新增了對GDB故障轉儲的支持,如下列屏幕截圖所示。 GDB 故障轉儲屏幕截圖
    發表于 05-18 13:41

    如何使用Tracealyzer模式來跟蹤ThreadX應用

    Tracealyzer是Percepio 公司開發的一款用于RTOS的嵌入式軟件系統的可視化跟蹤工具,提供了30多種相互關聯的可視化運行時行為視圖,本文將介紹如何使用Tracealyzer
    的頭像 發表于 09-16 11:14 ?1375次閱讀

    Tracealyzer跟蹤記錄庫移植

    使用Tracealyzer,首先要將跟蹤記錄庫集成到工程。安裝了Tracealyzer 4之后,在安裝路徑下找到以RTOS名稱命名的文件夾,將TraceRecorder子文件夾復制到自己的工程目錄中。以FreeRTOS為例:
    的頭像 發表于 11-08 11:17 ?1694次閱讀

    Tracealyzer利用CortexM的ITM實現跟蹤

    Tracealyzer快照模式,能夠跟蹤RTOS系統的運行時間受限于硬件可用的RAM大小,通常只能追蹤幾十秒的時間。使用模式則不會存在這個問題,只要電腦硬盤空間足夠,可用追蹤幾小時甚至幾天的時間。
    的頭像 發表于 12-20 11:12 ?1713次閱讀

    如何通過Tracealyzer導出的跟蹤數據對任務進行分析?

    Tracealyzer是Percepio 公司開發的一款用于RTOS的可視化跟蹤工具, 目前Tracealyzer提供了30多種相互關聯的運行時行為視圖,對系統運行時的行為提供了前所未有的洞察
    的頭像 發表于 02-06 14:13 ?1070次閱讀