作者|黃微信官方賬號|嵌入式專欄本文最初發(fā)表在官方帳戶“ Embedded Column”上。這是“ printf系列教程”的文章。
后臺回復(fù)“ printf系列教程”有關(guān)本系列的更多內(nèi)容。 1寫在正面SWD:串行線調(diào)試,串行線調(diào)試SWO:串行線輸出,串行線輸出SWV:串行線查看器,串行線查看器ITM:儀器跟蹤宏單元,指令跟蹤微單元。
SWO串行線輸出是單引腳異步串行通信,可以在Cortex-M3 / M4 / M7上使用,并且受主調(diào)試器支持。它使用Cortex內(nèi)核中的ITM模塊來實現(xiàn)此功能。
連接引腳:SWO輸出,需要一條SWO(引腳)線,并且需要使用SWV(查看器)來查看數(shù)據(jù),我計劃組織多種查看方法:基于Keil的“ Debug(打印)”查看者”基于IAR“終端IO”,基于ST-LINK實用程序“ Serial Wire Viewer”基于J-Link“ SWO Viewer”基于STM32CubeProg“ Serial Wire Viewer”本文主要基于第三種類型的“ Serial Wire Viewer”。基于STM32CubeProg,將結(jié)合STM32和ST-link工具描述相關(guān)配置。
要了解有關(guān)ITM的更多信息,請參閱“ printf系列教程03”的第二章。關(guān)于ITM>。
2SWO引腳配置SWO引腳可以理解為UART的Tx引腳。如果未連接此引腳,則(SWV)端子將不會接收打印信息。
對于STM32,具有Cortex-M3 / M4 / M7內(nèi)核的任何MCU均具有SWO引腳。 Cortex-M0不具有此功能,包括STM32F0,STM32L0和STM32G0。
在STM32CubeMX工具中,可以按以下方式配置“調(diào)試”選項。 3SWO輸出代碼在“串行線查看器”(Serial Wire Viewer)中顯示打印信息。
STM32CubeProg的與ST-LINK Utility相似,與Keil和IAR的區(qū)別在于顯示位置不同,并且MCU中的代碼實際上相同。 3.1重新定義fputc和UART以實現(xiàn)printf打印輸出的區(qū)別是:將重新定義代碼中的UART發(fā)送字符更改為ITM發(fā)送字符。
int fputc(int ch,F(xiàn)ILE * f){ITM_SendChar(ch); return ch;} ITM_SendChar表示此函數(shù)位于core_cm3.h(或cm4 cm7)中,可以直接調(diào)用。修改ITM端口。
例如:修改它以使用ITM端口1,修改此功能的相應(yīng)值:提示:如果軟件修改了ITM端口,則需要啟用相應(yīng)的ITM激勵(刺激)端口以正常打印。 4SWV終端配置和輸出顯示終端是STM32CubeProg的上位機軟件。
STM32CubeProg下載地址:https://www.st.com/en/development-tools/stm32cubeprog.html(公共號碼不支持外部鏈接,請復(fù)制該鏈接以在瀏覽器中打開它)建議閱讀我的文章:STM32CubeProg的介紹,下載,安裝和使用指南,將程序刻錄到MCU,通過ST-Link連接,打開STM32CubeProg軟件,從菜單中輸入SWV:配置時鐘并啟用ITM端口:提示:ITM port默認(rèn)情況下使用port0,并且軟件也可以修改(請參見上面的軟件),實現(xiàn)0到31之間的任何端口。4.1輸出效果提示:1. CPU時鐘必須相同; 2. ITM端口號,軟件和查看器(SWV)配置必須相同。
5下載為方便大家理解,提供了源代碼項目下載,參考代碼:STM32F103(HAL)_SWOSTM32F411(HAL)_SWO百度網(wǎng)盤:https://pan.baidu.com/s/1aYBuHtOgtLqLvj6SsMYlQA提取代碼:nbd3提示:1.官方帳戶不支持外部鏈接,請將該鏈接復(fù)制到瀏覽器中以將其打開。 2.源代碼僅供個人學(xué)習(xí)參考,可能不適用于實際項目。
3.如果鏈接失敗,請注意官方帳戶并回復(fù)“ printf系列教程”。獲取最新鏈接。
6說明1.本文檔僅供個人學(xué)習(xí)使用,受版權(quán)保護,禁止商業(yè)使用。 2.本文是我自己編輯和整理的。
不可避免地會有一些錯誤。 3.本文包含在官方帳戶“嵌入式列”中,請按照微信官方帳戶進行回復(fù)[printf系列教程],以查看完整的系列教程。
------------結(jié)束------------推薦閱讀:USB PD快速充電通信原理C語言實現(xiàn)面向?qū)ο蟮脑頍oMMU搶占式操作系統(tǒng)搶占式工作原理關(guān)注微信公眾號“ strongerHuang”,回復(fù)“ 1024”。在后臺查看更多內(nèi)容,請在“按照規(guī)定加入技術(shù)交流小組。
長按可轉(zhuǎn)到包含在其中的官方帳戶
歡迎來到我司Viking代理產(chǎn)品網(wǎng)站!