01前言
STM32 MCU 新產品的早期用戶有時候會遇見工具鏈還在完善中的情形,例如,一部分STM32 工具已經支持該產品,而另外一部分 STM32 工具還在更新中。具體到 Keil 用戶,用戶有可能可以使用 STM32CubeProgrammer 進行下載,但是 Keil 編譯器中支持該產品系列的軟件 Pack 還需要一些時間才會被更新。從而,用戶能夠使用 Keil 編譯器進行編譯甚至調試,但沒法直接在 Keil 環境中對新產品進行下載。對此,用戶可以選擇等待,也可以自行擴展 Keil 的 FLM 來支持該產品。但考慮到用戶產品開發的時間限制以及新的STM32 正式 Pack 很快就會發布,更簡單快速的一種解決方案是在 Keil 中直接使用STM32CubeProgammer 在進行調試前下載。
02步驟
這里以一個 NUCLEO-H723ZG 的 CRC_Example 為例。它是 STM32Cube 包中的一個完善的工程,可以正常使用配套的 Pack 進行編譯下載調試。我們只是使用這個工程說明如何直接使用 STM32CubeProgrammer 進行 Flash 下載,沒有其他特別的含義。首先,在 Keil 工程界面里,選擇[Flash]->[Configure Flash Tools]菜單。
圖1.配置菜單
或者在工程瀏覽器的工程名字上點擊右鍵,選擇[Options]然后選擇[Utilities]
圖2.工程選項
你可以看到如下菜單,說明該工程默認使用 Pack 中的 FLM 進行下載。
圖3.配置工具選項
我們將其切換成[Use External Tool for Flash Programming]。
在[Command]中選擇 STM32_Programmer_CLI.exe,它會自動填上所在的全路徑,例如:
C:ProgramFilesSTMicroelectronicsSTM32CubeSTM32CubeProgrammerinSTM32_Programmer_CLI.exe
在[Agruments]中輸入使用 ST-Link 以及文件名參數,如下:
-c port=swd -w #L
STM32_Programmer_CLI 的更多用法,例如,在調試前修改某個特定選項字節,可以參考STM32CubeProgrammer 用戶手冊 UM2237。
這里值得一提的是 Keil #L 參數的使用。為了該命令行的通用性,我們應該使用編譯器工具提供的一些參數間接指向所需要燒錄的路徑及文件,而不是硬編碼。這樣,工程選項的改動,不影響該命令行;而且該命令行也可以在多個工程中復制使用。#L 以及其他類似參數的含義可以在 Keil 聯機幫助中搜索 “ Key Sequence for Tool Parameters ”。設置界面如下:
圖4.配置燒寫指令
其中[Run Independent]的含義是,是否讓 Keil 不需要等待該命令行執行完畢。我們希望按順序執行,所以該選項沒有勾上。用戶可以切換此選項觀察效果。
03效果
這時候如果直接選擇[Debug]
圖5. 調試
則會發現 Flash 下載并沒有發生。確實,這是其中不夠完美的地方。但是如果選擇[Download]
圖6.下載
則會發現 Keil 調用 STM32CubeProgrammer 命令行進行當前工程的下載,如下所示:
圖7.命令日志
然后,用戶可以使用[Debug]啟動調試,一切正常。所以,簡單的方法就是,用戶在調試前,按下 F8。這樣比使用 Pack 的 FLM 并沒有麻煩多少。
04小結
本文提供了在 Keil 中使用STM32CubeProgrammer 來進行調試前下載固件的方法,適合 STM32 MCU 新產品的早期用戶在使用 Keil 時進行參考。
-
mcu
+關注
關注
146文章
17738瀏覽量
358592 -
STM32
+關注
關注
2285文章
10987瀏覽量
361472 -
調試
+關注
關注
7文章
603瀏覽量
34427 -
keil
+關注
關注
69文章
1218瀏覽量
168646 -
編譯器
+關注
關注
1文章
1653瀏覽量
49756
原文標題:實戰經驗 | 在 Keil中使用STM32CubeProgrammer
文章出處:【微信號:STM32_STM8_MCU,微信公眾號:STM32單片機】歡迎添加關注!文章轉載請注明出處。
發布評論請先 登錄
STM32CubeProgrammer能自動更新打開的固件嗎?
STM32CubeProgrammer閃退怎么解決?
為什么會不能使用STM32CUBEprogrammer獨立程序呢?有誰知道嗎
STM32CubeProgrammer的用法是什么呢?
STM32CubeProgrammer是否提供SWO支持?
是否可以在STM32CubeProgrammer中使用Segger探針?
STM32小技巧(2) STM32CubeProgrammer解除讀保護的方法

STM32CubeProgrammer和STM32CubeMonitor的新功能
STM32H503開發(2)----STM32CubeProgrammer燒錄

STM32WB55RG開發(2)----STM32CubeProgrammer燒錄

評論