幽默的小編先問大家一個(gè)問題:想讓我們的MCU打印出一段消息,需要怎么辦才能讓這段消息顯示在PC端呢?相信大家最常用的方式是通過MCU的串口將消息打印到PC端的串口調(diào)試終端上。那再換一個(gè)問題,打印分幾步?
簡簡單單4步,我們就可以發(fā)送私信了!
1.初始化MCU這邊的串口,配置時(shí)鐘頻率,配置對(duì)應(yīng)的輸出管腳,配置波特率等等;
2.打開PC端的串口調(diào)試工具,配置好對(duì)應(yīng)的波特率;
3.調(diào)用UART驅(qū)動(dòng),例如readwrite之流,發(fā)送數(shù)據(jù);
4.在串口調(diào)試工具上查看;
小編今天要給大家?guī)淼氖墙栌肑-link調(diào)試工具進(jìn)行消息的發(fā)送。今天的主人公是一個(gè)叫做J-link RTT的小東西,那么什么是所謂的RTT呢? J-Link Real-Time Transfer(RTT)是由SEGGER公司開發(fā)的一種調(diào)試和跟蹤技術(shù),用于嵌入式系統(tǒng)的開發(fā)和調(diào)試。J-LinkRTT允許開發(fā)人員在不使用操作系統(tǒng)的情況下,通過J-Link調(diào)試器實(shí)時(shí)傳輸數(shù)據(jù)到主機(jī),并從主機(jī)實(shí)時(shí)接收數(shù)據(jù),從而實(shí)現(xiàn)實(shí)時(shí)的調(diào)試和跟蹤功能。J-Link RTT的主要特點(diǎn)包括:
低開銷:J-Link RTT實(shí)現(xiàn)了高效的數(shù)據(jù)傳輸機(jī)制,可以在不影響目標(biāo)系統(tǒng)性能的情況下實(shí)現(xiàn)實(shí)時(shí)數(shù)據(jù)傳輸。
實(shí)時(shí)性:開發(fā)人員可以在目標(biāo)系統(tǒng)上實(shí)時(shí)地輸出調(diào)試信息,或者從目標(biāo)系統(tǒng)上實(shí)時(shí)地接收數(shù)據(jù),而無需停止目標(biāo)系統(tǒng)的運(yùn)行。
靈活性:J-Link RTT支持多個(gè)通道,可以同時(shí)傳輸多個(gè)不同類型的數(shù)據(jù),例如調(diào)試信息、日志、性能指標(biāo)等。
無需目標(biāo)系統(tǒng)操作系統(tǒng)支持:與類似于printf輸出的調(diào)試信息不同,J-Link RTT可以在沒有操作系統(tǒng)支持的嵌入式系統(tǒng)上使用。
J-Link RTT通常與J-Link調(diào)試器和SEGGER公司的嵌入式開發(fā)工具配合使用,為嵌入式系統(tǒng)的調(diào)試和跟蹤提供了強(qiáng)大的支持。它在嵌入式系統(tǒng)開發(fā)中被廣泛應(yīng)用,特別是在沒有操作系統(tǒng)支持或者操作系統(tǒng)功能有限的嵌入式系統(tǒng)中,為開發(fā)人員提供了一種高效的調(diào)試和跟蹤解決方案。
那么MCU上要如何使用呢?方法很簡單,只需要將幾個(gè)SEGGER_RTT_*.c的文件導(dǎo)入工程即可。我們拿RT1060 EVK舉個(gè)例子,首先下載RT1060的SDK,打開hello world工程。
1. 新建Group添加如下文件,文件都在SDK解壓路徑components tt中:
2. 添加頭文件依賴:
3. 在hello_world.c中添加引用:
4. 創(chuàng)建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發(fā)送:
SEGGER_RTT_SetTerminal(0); SEGGER_RTT_printf(0, "hello world "); |
創(chuàng)建工作就已經(jīng)完成了,接下來就是PC端的工作,打開J-Link RTT Viewer,選擇器件為rt1060,這里要注意選擇RTT control Block的地址,和代碼一致:
點(diǎn)擊OK,打開:
下載程序運(yùn)行,打開一個(gè)Terminal 0,即可查看運(yùn)行結(jié)果:
相較于傳統(tǒng)的UART方式,采用調(diào)試器內(nèi)置的RTT功能進(jìn)行數(shù)據(jù)通信,不僅免除了對(duì)寶貴串口資源的占用,還大大簡化了編程實(shí)現(xiàn)流程,實(shí)現(xiàn)效率和便捷性的雙重飛躍!可以讓開發(fā)者輕松享受調(diào)試過程中的流暢與高效,強(qiáng)烈推薦大家親自感受!
-
mcu
+關(guān)注
關(guān)注
146文章
17751瀏覽量
358764 -
嵌入式
+關(guān)注
關(guān)注
5127文章
19457瀏覽量
313538 -
移植
+關(guān)注
關(guān)注
1文章
392瀏覽量
28530 -
J-Link
+關(guān)注
關(guān)注
0文章
87瀏覽量
22522
原文標(biāo)題:從J-link RTT的移植到精通,讓嵌入式調(diào)試飛起來!
文章出處:【微信號(hào):NXP_SMART_HARDWARE,微信公眾號(hào):恩智浦MCU加油站】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。
發(fā)布評(píng)論請(qǐng)先 登錄
調(diào)試Kinetis——使用OpenSDA平臺(tái)做J-Link調(diào)試器
如何使用MCU-Link調(diào)試工具來刷寫和調(diào)試套件嗎?
解析J-Link、J-Trace、Open JTAG原理以及其區(qū)別

J-Link和J-Trace用戶指南免費(fèi)下載

J-Link script的組成
教你輕松J-Link不能連接目標(biāo)MCU的問題

如何處理J-Link不能連接目標(biāo)MCU的問題?

基于J-Link Remote Server軟件的遠(yuǎn)程調(diào)試方法
J-Link添加Geehy芯片
J-Link script的組成與使用方法
正點(diǎn)原子STM32開發(fā)板ST Link調(diào)試教程
SEGGER J-Link調(diào)試仿真器支持新型可編程SOC(片上系統(tǒng))系列
Jlink-V9固件刷新工具-J-link固件刷新
SEGGER為J-Link和Flasher提供Device Provisioner工具
如何通過J-Link實(shí)現(xiàn)STM32H5控制調(diào)試端口

評(píng)論