欧美在线专区-欧美在线伊人-欧美在线一区二区三区欧美-欧美在线一区二区三区-pornodoxxx中国妞-pornodoldoo欧美另类

position>home>Basketball

基于STM32CubeProg、『Serial Wire Viewer』SWO打印輸出

[導讀]SWO串行線輸出是基于單引腳、異步串行通信,打印可在Cortex-M3/M4/M7上使用,輸出并由主調試器探測支持,基于它是打印利用Cortex內核中ITM模塊來實現此功能。


基于STM32CubeProg、『Serial Wire Viewer』SWO打印輸出

作者 | strongerHuang

微信公眾號?|?嵌入式專欄


本文原創首發于公眾號 『嵌入式專欄』,輸出為《printf系列教程》的基于一篇,后臺回復“printf系列教程”更多該系列更多內容。打印

1寫在前面

SWD:Serial Wire Debug,輸出串行線調試

SWO:Serial Wire Output,基于串行線輸出

SWV:Serial Wire Viewer,打印串行線查看器

ITM:Instrumentation Trace Macrocell,輸出指令跟蹤微單元?;?


SWO串行線輸出是打印單引腳、異步串行通信,輸出可在Cortex-M3/M4/M7上使用,并由主調試器探測支持。


它是利用Cortex內核中ITM模塊來實現此功能。


連接引腳:


SWO輸出,需要一根SWO(引腳)線,同時需要借助SWV(查看器)查看數據,我打算整理多種查看方法:

·基于Keil的『Debug(printf)Viewer』

·基于IAR的『Terminal IO』

·基于ST-LINK Utility的『Serial Wire Viewer』

·基于J-Link的『SWO Viewer』

·基于STM32CubeProg的『Serial Wire Viewer』


本文主要是第三種基于STM32CubeProg的『Serial Wire Viewer』,會結合STM32,ST-link工具講述相關配置。


想更加了解ITM,請參看《printf系列教程03》中第二章節<關于ITM>。



2SWO引腳配置

SWO引腳可以理解為UART的Tx引腳,如果不連接此引腳,則(SWV)終端不會接收打印信息。


對于STM32而言,只要是Cortex-M3/M4/M7內核的MCU都有SWO引腳


而Cortex-M0則沒有此項功能,包含STM32F0、STM32L0和STM32G0等。


在STM32CubeMX工具中,Debug選項進行如下配置即可。



3SWO輸出代碼

在STM32CubeProg的『Serial Wire Viewer』顯示打印信息?和 ST-LINK Utility類似,與Keil、IAR差異在于:顯示的位置不同,MCU中代碼其實一樣。


3.1 重定義fputc

和UART實現printf打印輸出區別就是:將重定義代碼中UART發送字符,改為ITM發送字符。

    int fputc(int ch, FILE *f){  ITM_SendChar(ch); return ch;}


    ITM_SendChar說明

    這個函數位于core_cm3.h(或cm4 cm7)中,直接調用即可。


    修改ITM端口

    比如:修改成使用ITM端口1,修改該函數對應值即可:


    提示:若軟件修改了ITM端口,需要使能對應ITM刺激(Stimulus)端口才能正常打印輸出。



    4SWV終端配置及輸出

    顯示終端就是STM32CubeProg這個上位機軟件。


    STM32CubeProg下載地址:

    https://www.st.com/en/development-tools/stm32cubeprog.html

    (公號不支持外鏈接,請復制鏈接到瀏覽器打開)


    推薦閱讀我的文章:STM32CubeProg介紹、下載、安裝和使用教程


    燒寫程序到MCU,通過ST-Link連接,打開STM32CubeProg軟件,從菜單進入SWV:


    配置時鐘和使能ITM端口:


    提示:ITM端口默認使用port0,也可修改軟件(見上面軟件),實現0~31任意端口。


    4.1 輸出效果


    提示:

    1.CPU時鐘必須相同;

    2.ITM端口號,軟件和查看器(SWV)配置須一致;



    5下載

    為方便大家理解,提供源碼工程下載,參考代碼:

    STM32F103(HAL)_SWO

    STM32F411(HAL)_SWO


    百度網盤:

    https://pan.baidu.com/s/1aYBuHtOgtLqLvj6SsMYlQA


    提取碼:nbd3


    提示:

    1.公眾號不支持外鏈接,請復制鏈接到瀏覽器打開。

    2.源碼僅供個人學習參考,不一定適用于實際項目。

    3.若鏈接失效,請關注公眾號,回復『printf系列教程』獲取最新鏈接。



    6

    說明

    1.該文檔僅供個人學習使用,版權所有,禁止商用。


    2.本文由我一個人編輯并整理,難免存在一些錯誤。


    3.本文收錄于公眾號『嵌入式專欄』,關注微信公眾號回復【printf系列教程】即可查看全系列教程。


    ------------ END------------

    推薦閱讀:
    USB PD快速充電通信原理
    C語言實現面向對象的原理
    無MMU搶占式操作系統的搶占工作原理
    關注 微信公眾號『strongerHuang』,后臺回復“1024”查看更多內容,回復“加群”按規則加入技術交流群。


    長按前往圖中包含的公眾號關注


    點擊“ 閱讀原文”查看更多分享,歡迎點分享、收藏、點贊、在看。

    免責聲明:本文內容由21ic獲得授權后發布,版權歸原作者所有,本平臺僅提供信息存儲服務。文章僅代表作者個人觀點,不代表本平臺立場,如有問題,請聯系我們,謝謝!

    Popular articles

    主站蜘蛛池模板: 女人扒开腿让男生猛桶动漫| 精品综合久久久久久98| 小时代1免费观看完整版| 嗯啊啊啊视频| 国产女人好紧好爽| 一级艳片加勒比女海盗1| 干妞网在线观看| xxxx日本在线播放免费不卡| jizz老师喷水| 好吊妞视频在线观看| 成全高清视频免费观看| 日韩三级精品| а√天堂中文最新版地址| 高清仑乱| 好好的日视频| 久久私人影院| 国产成人精品久久综合| 538在线观看| 大胸小子bd在线观看| 厨房掀起馊子裙子挺进去| 亚洲免费人成在线视频观看| 在线视频这里只有精品| 两个人看的www视频日本| 日本哺乳期网站xxxx| 久久99热66这里只有精品一| 调教在线视频| 毛片1| 女大学生沙龙室3| 在线va| 久久精品麻豆日日躁夜夜躁| 青青国产成人久久91| 日本高清不卡在线| 一级毛片成人免费看免费不卡| 午夜一区二区在线观看| 九九久久精品国产免费看小说| 国产卡一卡二卡三卡四| 水蜜桃免费视频| 国产经典一区二区三区蜜芽| 再深点灬舒服灬太大爽| 久久精品一区二区三区四区| 国产精品亚洲片在线花蝴蝶|