內容概述
本文檔主要介紹AT芯片在Keil和IAR兩種工程環境下的printf功能使用方法。其共包含如下表統計的6種方法,各方法的具體用法在具體內容中描述。表1. AT芯片的printf函數使用方法匯總
具體內容
IAR環境下經Terminal I/O虛擬終端輸出
簡介
IAR提供的鏈接到其Terminal的驅動內就包含有常用的scanf和printf等標準輸入輸出驅動函數,所以工程文件可直接經IAR自帶的Terminal I/O窗口實現信息交互。
例程路徑
001_Printf_Test_IAR_Terminal\project\iar_v8.2
環境及硬件設計
1)環境本方法需在IAR環境下使用,例程支持的編譯環境為IAR_V8,硬件電路板為AT-START-F403A_V1.2。2)硬件連接Link/AT-Link&...connection表2. 硬件連接關系表--(無JTDO)
軟件設計
1) 頭文件代碼工程文件內添加“stdio.h”。2) 重定向設定Printf解除重定向(屏蔽與實際串口的重定向)。
代碼經編譯后下載到MCU內,然后進入Debug調試環境中,經View->Terminal I/O(下圖1)調出虛擬終端,然后全速運行代碼即可看到程序主循環內的“Hello World”等內容被打印到了終端交互窗口Output欄(下圖1)內,且在該窗口的Input欄內輸入的數據也同樣會被打印到Output窗口內。圖1. 虛擬終端窗口路徑圖2. 虛擬終端交互窗口
IAR環境下重定向為串口輸出
簡介
將printf函數重定向到芯片內的一組實際串口,經串口TX腳輸出,最后由串口助手工具進行信息交互。
例程路徑
002_Printf_Test_IAR_USART2\project\iar_v8.2
環境及硬件設計
1) 環境
本方法需在IAR環境下使用,例程支持的編譯環境為IAR_V8,硬件電路板為AT-START-F403A_V1.2。
2) 硬件連接
J-Link/AT-Link&...connection
J-Link/AT-Link&...connection
表3. 硬件連接關系表--(無JTDO)
USART2 connection
表4. 硬件連接關系表--(USART)
軟件設計
1) 頭文件
代碼工程文件內添加“stdio.h”;
2) 重定向設定
串口初始化并將Printf重定向到實際的串口,重定向函數如下
仿真與下載
代碼經編譯后下載到MCU內,然后全速運行代碼即可看到程序主循環內的“Hello World”等內容被打印到了終端交互窗口(下圖3)內。
圖3. 串口助手交互窗口
經Keil平臺的Debug(printy) Viewer虛擬終端輸出
簡介
Keil平臺自帶有Debug(printf) Viewer接口,在ARM內核集成有常用的scanf和printf等標準輸入輸出驅動函數的前提下,該接口可用于標準的Printf交互。
例程路徑
003_Printf_Test_Keil_JTDO\project\mdk_v5
環境及硬件設計
1) 環境
本方法需在Keil環境下使用,例程支持的編譯環境為Keil_V5,硬件電路板為AT-START-F403A_V1.2
2) 硬件連接
J-Link/AT-Link&...connection
表5. 硬件連接關系表--(含JTDO)
軟件設計
1) 頭文件
代碼工程文件內添加“stdio.h”;2) 跟蹤引腳分配3) Printf映射
仿真與下載
勾選如下圖4中的Enable,并設定Core值,Core值需與系統時鐘相等。
設定串口時鐘,通常通過勾選如下圖4中的Autodetect max SWO C1來實現。當出現打印亂碼時,此時可嘗試不勾選Autodetect max SWO C1,并手動修改Prescale Core Clk保證打印信息正常。
隨后即可編譯代碼下載到MCU內,然后進入Debug調試環境中,經View->Serial Windows->Debug (printf) Viewer(下圖5)調出虛擬終端窗口,然后運行代碼即可看到Hello World被實際打印到了終端交互窗口(下圖6)內。
圖4. Trace相關設定
圖5. Keil虛擬終端窗口路徑
圖6. Keil虛擬終端交互窗口
Keil環境下重定向為串口輸出(使用MicroLIB)
簡介
Keil環境有自帶一個MicroLIB庫,其內包含一些支持Printf函數的代碼,在將Printf重定向到串口輸出時,勾選使用MicroLIB后可由串口助手工具進行信息交互。
例程路徑
004_Printf_Test_Keil_USART2_MicroLIB\project\mdk_v5
環境及硬件設計
1) 環境
本方法需在Keil環境下使用,例程支持的編譯環境為Keil_V5,硬件電路板為AT-START-F403A_V1.2
2) 硬件連接
J-Link/AT-Link&...connection
表6. 硬件連接關系表--(無JTDO)
USART2 connection
表7. 硬件連接關系表--(USART)
軟件設計
1) 頭文件
代碼工程文件內添加“stdio.h”;
2) Printf重定向
3) MicroLIB設定
圖7. MicroLIB設定
仿真與下載
代碼經編譯后下載到MCU內,然后全速運行代碼即可看到程序主循環內的“Hello World”等內容被打印到了終端交互窗口(下圖8)內。
圖8. 串口助手交互窗口
Keil環境下重定向為串口輸出(不使用MicroLIB)
簡介
Keil環境有自帶一個MicroLIB庫,其內包含一些支持Printf函數的代碼。在將Printf重定向到串口輸出時,如果不勾選使用MicroLIB,自行在工程文件內添加支持Printf函數的代碼段,也同樣可由串口助手工具進行信息交互。
例程路徑
005_Printf_Test_Keil_USART2__Without_MicroLIB\project\mdk_v5
環境及硬件設計
1) 環境本方法需在Keil環境下使用,例程支持的編譯環境為Keil_V5,硬件電路板為AT-START-F403A_V1.22) 硬件連接J-Link/AT-Link&...connection表8. 硬件連接關系表--(無JTDO)USART2 connection表9. 硬件連接關系表--(USART)
軟件設計
1) 頭文件代碼工程文件內添加“stdio.h”;2) Printf 重定向3) MicroLIB設定圖9. MicroLIB設定
4) Printf函數支持代碼添加
仿真與下載代碼經編譯后下載到MCU內,然后全速運行代碼即可看到程序主循環內的“Hello World”等內容被打印到了終端交互窗口(下圖10)內。圖10. 串口助手交互窗口
經JLinkRTT窗口輸出
簡介
JLink自帶有調試輸出功能,在添加JLink RTT庫代碼后,可根據指定的指令實現代碼調試輸出到對應的窗口。
例程路徑
006_Printf_Test_Jlink_RTT\project\mdk_v5
環境及硬件設計
1) 環境
本方法在IAR及Keil環境下均可使用,例程支持的編譯環境為IAR_V8、Keil_V5,硬件電路板為AT-START-F403A_V1.2。
2) 硬件連接
J-Link connection
表10. 硬件連接關系表--(無JTDO)
軟件設計
1) 頭文件
代碼工程文件內添加“stdio.h”;
2) 添加JLink RTT庫代碼
分別將JLink RTT庫代碼中的SEGGER_RTT.c和SEGGER_RTT_printf.c添加到工程文件內;
根據編譯環境選擇添加SEGGER_RTT_Syscalls_IAR.c或SEGGER_RTT_Syscalls_KEIL.c到工程文件內;
3) 輸出到PC
此時,代碼內調用如下SEGGER_RTT_WriteString或SEGGER_RTT_printf命令即可輸出到PC端
仿真與下載
1) 通過JLinkRTTClient窗口輸出
代碼經編譯后下載到MCU內,然后進入Debug調試環境中,打開JLink安裝路徑下名稱為JLinkRTTClient的應用程序。此時單步執行代碼時即可看到打印信息被依次輸出到JLinkRTTClient窗口,如下圖11和圖12。
圖11. 代碼工程Debug
圖12. JLinkRTTClient窗口輸出信息
2) 通過JLinkRTTViewer窗口輸出
代碼經編譯后下載到MCU內,然后打開JLinkRTTViewer窗口,如下圖13。
圖13. 打開JLinkRTTViewer窗口
點擊OK,并在彈出的窗口再點擊OK,然后在彈出的窗口輸入并選擇如下信息(此處以ZE系列為例),并點擊OK。如下圖14
圖14. device選擇窗口
拿前述代碼進入Debug調試環境中,此時單步執行代碼時即可看到打印信息被依次輸出到JLinkRTTViewer窗口。如下圖15
圖15. JLinkRTTViewer窗口輸出信息
注意事項
前述具體內容2.3和2.6的測試時,只能用J-Link,AT-Link暫不支持;
前述具體內容2.1和具體內容2.2的測試時,如果使用AT-Link的話,工程內Options→CMSIS DAP→Reset選項必須選擇為Hardware或者System,不然無法連接及下載代碼;
前述具體內容2.2的測試時,工程內Options→General Options→Library Configuration→Library選項必須選擇為Full,不然無法正常輸出。因為只有選擇為Full時,支持Printf函數的代碼才會被包含進來。
前述具體內容2.6.5.1測試時,因輸出窗口應用程序暫時無法指定芯片型號,為保證代碼與窗口型號匹配且輸出正常,目前工程內Device須選擇ST的型號。且工程代碼內必須要勾選“Options”內的“Use MicroLIB”,不然代碼編譯可能會出現異常。
關于雅特力雅特力科技于2016年成立,是一家致力于推動全球市場32位微控制器(MCU)創新趨勢的芯片設計公司,專注于ARM Cortex-M4/M0+的32位微控制器研發與創新,全系列采用55nm先進工藝及ARM Cortex-M4高效能或M0+低功耗內核,締造M4業界最高主頻288MHz運算效能,并支持工業級別芯片工作溫度范圍(-40°~105°)。雅特力目前已累積相當多元的終端產品成功案例:如微型打印機、掃地機、光流無人機、熱成像儀、激光雷達、工業縫紉機、伺服驅控、電競周邊市場、斷路器、ADAS、T-BOX、數字電源、電動工具等終端設備應用,廣泛地覆蓋5G、物聯網、消費、商務及工控等領域。
-
mcu
+關注
關注
146文章
16988瀏覽量
350302
發布評論請先 登錄
相關推薦
評論