日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

通过printf从目标板到调试器的输出

發布時間:2024/7/23 编程问答 41 豆豆
生活随笔 收集整理的這篇文章主要介紹了 通过printf从目标板到调试器的输出 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

最近在SEGGER的博客上看到Johannes Lask寫的一篇關于在調試時使用printf函數從目標MCU輸出信息到調試器的文章,自我感覺很有啟發,特此翻譯此文并推薦給各位同仁。當然限于個人水平,有不當之處懇請指正。原文網址:https://blog.segger.com/getting-printf-output-from-target-to-debugger/

?Erich Styger最近發布了一篇《關于如何使用ARM Cortex-M目標上的單線輸出(SWO)添加控制臺功能》的偉大教程。

這激發了我寫一篇在嵌入式目標(包括SWO和RTT)上的調試輸出(“printf”)實現的更普遍的文章。

從目標調試輸出

有不同的方法來從目標應用程序獲取調試輸出。

自從早期嵌入式系統以來,已經有了硬件依賴的解決方案,如使用UART或USB CDC。但是應用程序可能已經使用了UART,CDC需要目標硬件上的USB堆棧和USB連接器。

第一個軟件解決方案是semihosting。使用semihosting,CPU停止打印輸出,并由調試器重新啟動“幕后”操作。打印一個消息可能需要幾毫秒到幾百毫秒的時間,因為這是一個昂貴的操作。調試器需要意識到目標已經停止執行,讀取寄存器和內存,寫入內存,然后重新啟動CPU。這意味著目標CPU在這段時間內不運行。因此,semihosting可以簡單地不用于需要實時行為的應用,例如通信棧。另外,semihosting實現是依賴于調試器的,而使用semihosting的應用程序可能在沒有連接調試器的情況下運行。

然后還有ARM的SWO跟蹤端口和SEGGER的實時傳輸(RTT)。

單線輸出

SWO是由ARM為Cortex-M3,M4和M7設備設計的單引腳接口。引腳可以使用標準調試連接器連接到調試探頭,并與SWD接口(而不是JTAG)一起使用。目標MCU可以在CPU引腳上傳輸數據包,類似于UART TX引腳,時鐘速率來自CPU時鐘。在調試器上設置SWO需要知道CPU時鐘速度。如果應用程序的某些部分在啟動前必須在初始化之前進行輸出,或者在應用程序運行時時鐘速度發生變化,那么這一點尤為重要。SWO不會如semihosting發送輸出那樣停止CPU。通過SWO的輸出速度取決于組態的SWO速度。數據分組,即調試輸出分組,以特殊格式編碼。這允許發送多達32個數據包類型(刺激),但也會導致一些協議開銷,這將以10 MHz SWO速度將事情減慢到?1.5 us / char。這意味著輸出80個字符大約需要120個微秒。要在RTOS或中斷程序中使用來自多個任務的SWO,在SWO輸出期間應禁用中斷,這可能會影響系統的實時行為。

盡管SWO最常用于打印調試消息。它也可用于記錄中斷進入/退出和功能進入/退出,定期對PC值或內存中的變量進行采樣,或者用于事件通知。

Erich全面介紹了如何在調試消息中使用SWO,如何在目標上進行設置,以及如何在主機上獲取輸出。

實時傳輸

RTT是SEGGER的調試終端解決方案。它將SWO的優點與其他方法的特點相結合。RTT是一種僅用于軟件的解決方案,而不是標準調試連接以外的目標設備上不需要額外的硬件。它可以與任何J-Link一起使用,即使使用諸如J-Link OB,OpenSDA或轉換的ST-LINK等小型板載機型。

RTT允許非常高的傳輸速度,而不會影響目標的實時行為。沒有協議開銷,打印消息可以在一微秒或更短的時間內完成,基本上只需要做一個單個memcpy()的時間。由于RTT的速度非常快,所以輸出可以通過鎖定中斷來保證線程安全,而這種中斷對系統的實時行為影響最小。當目標應用程序正在運行時,輸出消息由J-Link讀取并傳輸到主機。

與UART類似,RTT是雙向的。您可以從主機向目標應用程序發送輸入。雙向通信允許您控制目標系統,而無需任何其他輸入設備。使用RTT可以實現全功能終端。

RTT實現源代碼可以自由地在任何系統中使用,提供功能和自由。

在主機上使用RTT是靈活并且容易的。J-Link軟件包括可以與任何調試工具并行使用的RTT Viewer,一個GUI。您還可以使用Telnet客戶端連接到調試會話(端口19031)并與目標進行通信。一些調試器甚至直接集成RTT。Embedded Studio和獨立調試器Ozone可以在其終端窗口中通過RTT顯示目標輸出,并且不需要任何其他工具。

概要

printf調用與不同實現的速度比較

在從嵌入式目標執行SWO調試輸出之前,只能使用低效或依賴硬件的方法。

使用SWO ARM設計了一個快速的解決方案。它重量輕且快速,但具有一些縮寫,因為它僅在某些Cortex-M器件上可用,需要額外的引腳連接到MCU,并且是單向的。

RTT結合了SWO的所有優點,并增加了更多功能。它比SWO更快,不僅限于Cortex-M,允許通過標準調試連接進行雙向通信,并且在任何需要系統的實時情況下都是最不具有干擾性的。

當您可以使用RTT時,沒有任何理由使用SWO。

歡迎關注:

總結

以上是生活随笔為你收集整理的通过printf从目标板到调试器的输出的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 毛片a片免费观看 | 爱情岛论坛亚洲品质自拍视频 | 亚洲一区成人在线 | 91精品播放 | 日本三级在线 | 乱码一区二区三区 | 午夜影院一区二区三区 | 91香蕉一区二区三区在线观看 | 一级免费黄色大片 | аⅴ资源中文在线天堂 | 亚洲精华液一区二区 | 免费看成人av | av看片| 一级片播放| 久久精品9 | 青青草原免费观看 | 亚洲午夜精品一区二区三区他趣 | 视屏一区 | 亚洲不卡av一区二区 | 国产精品国产三级国产专播精品人 | 成人香蕉网 | 91男女视频 | 国产小视频91 | 91蜜桃婷婷狠狠久久综合9色 | 最新中文字幕在线观看视频 | 第一福利丝瓜av导航 | 欧美一区,二区 | 国产精品九九 | 超碰在线进入 | 福利国产视频 | 成人精品亚洲 | 国产三级短视频 | 国内自拍一区 | 欧色av | 动漫玉足吸乳羞免费网站玉足 | 又色又爽又黄无遮挡的免费视频 | 午夜婷婷在线观看 | 欧美亚洲激情视频 | 和美女啪啪 | 村上凉子av | 免费一区二区三区 | 丁香伊人网| 精品中文字幕在线 | 欧美国产91 | 69xav| 欧美精品成人一区二区在线观看 | 久久久久久久久久久91 | 国产精品久久精品三级 | 国产精选一区二区三区 | 久久特黄| 国产精品aaa | 开心激情亚洲 | 国产精品无码久久久久 | 动漫美女被x | 男女视频一区 | 国产一区二区视频在线播放 | 免费中文字幕 | 五月婷婷,六月丁香 | 天天舔天天摸 | 亚洲丝袜视频 | 人妻无码一区二区三区久久 | 国产精品黄色在线观看 | 中文一区二区在线 | 亚洲欧美日韩色 | 欧美 丝袜 自拍 制服 另类 | 色婷婷基地 | 日本a视频 | 成人精品影视 | 亚洲va天堂va欧美ⅴa在线 | 欧美三级a做爰在线观看 | 中文字幕在线字幕中文 | 久久久国产精品无码 | 成人免费毛片观看 | 91av色| 北条麻妃一区二区三区免费 | 99在线精品视频免费观看软件 | 色女综合| 欧美久久天堂 | 99热这里只有精品在线观看 | 欧美亚洲日本 | 婷婷免费视频 | 免费看日产一区二区三区 | 欧美色欧美| 欧美性生交xxxxx久久久 | 五月天国产视频 | 婷婷亚洲综合 | 人成网站在线观看 | 西川结衣在线观看 | 国产精品无码一区二区三区在线看 | 国产伦理一区 | 边添小泬边狠狠躁视频 | 性xxxx另类xxⅹ | 亚洲午夜精品一区二区三区他趣 | 三级男人添奶爽爽爽视频 | 精品欧美乱码久久久久久 | h片在线观看视频 | 亚洲午夜在线播放 | 国产精品久久久久久久妇 | 人妻无码一区二区三区久久 |