幽默的小編先問大家一個問題:想讓我們的MCU打印出一段消息,需要怎么辦才能讓這段消息顯示在PC端呢?相信大家最常用的方式是通過MCU的串口將消息打印到PC端的串口調試終端上。那再換一個問題,打印分幾步?
簡簡單單4步,我們就可以發送私信了!
1.初始化MCU這邊的串口,配置時鐘頻率,配置對應的輸出管腳,配置波特率等等;
2.打開PC端的串口調試工具,配置好對應的波特率;
3.調用UART驅動,例如readwrite之流,發送數據;
4.在串口調試工具上查看;
小編今天要給大家帶來的是借用J-link調試工具進行消息的發送。今天的主人公是一個叫做J-link RTT的小東西,那么什么是所謂的RTT呢? J-Link Real-Time Transfer(RTT)是由SEGGER公司開發的一種調試和跟蹤技術,用于嵌入式系統的開發和調試。J-LinkRTT允許開發人員在不使用操作系統的情況下,通過J-Link調試器實時傳輸數據到主機,并從主機實時接收數據,從而實現實時的調試和跟蹤功能。J-Link RTT的主要特點包括:
低開銷:J-Link RTT實現了高效的數據傳輸機制,可以在不影響目標系統性能的情況下實現實時數據傳輸。
實時性:開發人員可以在目標系統上實時地輸出調試信息,或者從目標系統上實時地接收數據,而無需停止目標系統的運行。
靈活性:J-Link RTT支持多個通道,可以同時傳輸多個不同類型的數據,例如調試信息、日志、性能指標等。
無需目標系統操作系統支持:與類似于printf輸出的調試信息不同,J-Link RTT可以在沒有操作系統支持的嵌入式系統上使用。
J-Link RTT通常與J-Link調試器和SEGGER公司的嵌入式開發工具配合使用,為嵌入式系統的調試和跟蹤提供了強大的支持。它在嵌入式系統開發中被廣泛應用,特別是在沒有操作系統支持或者操作系統功能有限的嵌入式系統中,為開發人員提供了一種高效的調試和跟蹤解決方案。
那么MCU上要如何使用呢?方法很簡單,只需要將幾個SEGGER_RTT_*.c的文件導入工程即可。我們拿RT1060 EVK舉個例子,首先下載RT1060的SDK,打開hello world工程。
1. 新建Group添加如下文件,文件都在SDK解壓路徑components tt中:
2. 添加頭文件依賴:
3. 在hello_world.c中添加引用:
4. 創建up/downBuffer:
uint8_t rx_buffer[32], tx_buffer[32]; SEGGER_RTT_ConfigUpBuffer(0, "RTTUP", rx_buffer, sizeof(rx_buffer), SEGGER_RTT_MODE_NO_BLOCK_SKIP); SEGGER_RTT_ConfigDownBuffer(0, "RTTDOWN", tx_buffer, sizeof(tx_buffer), SEGGER_RTT_MODE_NO_BLOCK_SKIP); |
5. 使用RTT發送:
SEGGER_RTT_SetTerminal(0); SEGGER_RTT_printf(0, "hello world "); |
創建工作就已經完成了,接下來就是PC端的工作,打開J-Link RTT Viewer,選擇器件為rt1060,這里要注意選擇RTT control Block的地址,和代碼一致:
點擊OK,打開:
下載程序運行,打開一個Terminal 0,即可查看運行結果:
相較于傳統的UART方式,采用調試器內置的RTT功能進行數據通信,不僅免除了對寶貴串口資源的占用,還大大簡化了編程實現流程,實現效率和便捷性的雙重飛躍!可以讓開發者輕松享受調試過程中的流暢與高效,強烈推薦大家親自感受!
-
mcu
+關注
關注
146文章
17148瀏覽量
351186 -
嵌入式
+關注
關注
5082文章
19123瀏覽量
305150 -
移植
+關注
關注
1文章
379瀏覽量
28130 -
J-Link
+關注
關注
0文章
84瀏覽量
22143
原文標題:從J-link RTT的移植到精通,讓嵌入式調試飛起來!
文章出處:【微信號:NXP_SMART_HARDWARE,微信公眾號:恩智浦MCU加油站】歡迎添加關注!文章轉載請注明出處。
發布評論請先 登錄
相關推薦
評論