工程師在開發產品的過程中使用調試仿真工具下載程序,用于調試程序是否按預期的業務邏輯實現了產品功能,但在開發過程中可能會遇到一些特殊情況需要對MCU恢復出廠設置。
工程師在開發產品中調試產品功能時出現以下行為時需對MCU恢復出廠設置:
MCU程序運行立刻進入低功耗停機模式或待機模式(注:未配置正確的喚醒源或喚醒引腳喚醒時間不夠)。
MCU工程軟件程序設置了選項字節對Flash區的固件讀保護。
MCU端基于SWD協議的程序下載接口PA13和PA14被復用成其它外設功能,程序運行時下載口被復用的外設功能占用。
用戶應用層軟件誤操作擦除了芯片選項字節導致芯片自鎖,導致SWD無法繼續下載程序。
本示例應用舉例以MM32G0001為例,因為用戶程序誤操作等情況導致芯片自鎖,使得調試器無法調試、讀取或下載程序,那么MCU開發過程中遇到以上這些行為現象時,可以通過MM32- Link MINI和MM32-Link Utility上位機軟件對MCU進行恢復出廠設置,解決SWD程序下載口被外設功能復用等占用問題。
1?
需準備的工具
MM32-Link MINI調試器
MM32-Link升級工具(MM32-Link MINI調試器固件升級工具)
MM32-Link Utility(MM32-Link MINI調試器上位機軟件)
如下圖1所示可通過靈動官網www.mindmotion.com.cn下載MCU恢復出廠設置所需工具軟件,單擊靈動官網導航條中的支持欄,然后單擊開發工具欄中的調試與下載工具,如下圖2所示,在彈出的網頁中,單擊MM32-Link MINI仿真器。
圖1
圖2
如下圖3所示,在彈出的網頁中分別單擊下載MM32-Link升級工具和MM32-Link Utility上位機軟件,該軟件與MM32-Link MINI配套使用。
圖3
MM32-Link升級工具和MM32-Link Utility上位機軟件下載完成后,在電腦端分別雙擊運行MM32-Link升級工具和MM32-Link Utility軟件,按照軟件安裝向導的提示安裝好MM32-Link升級工具和MM32-Link Utility軟件。
2?
對MM32-Link MINI進行固件升級
如下圖4所示,MM32-Link MINI調試仿真器與電腦USB接口連接,然后雙擊MM32_Link Upgrade快捷方式圖標運行MM32-Link Upgrade軟件,如下圖5所示。
圖4
如下圖5所示,通過MM32_Link Upgrade V1.01為MM32-Link MINI更新固件,在Choose Version欄中的Version下拉選項選擇固件版本為20230608,然后單擊Upgrade按鈕更新MM32-Link MINI固件,稍等片刻在Upgrade Logs欄會打印輸出MM32-Link固件更新成功信息。
圖5
3?
SWD口PA13和PA14復用為GPIO功能
如下圖6所示,本演示示例以MDK Keil IDE環境打開LibSamples_MM32G0001庫函數例程中的GPIO_SWD_Remap例程,該例程把基于SWD協議的程序下載口PA13和PA14復用成GPIO功能,使用該例程為本示例后文用于演示恢復出廠設置做準備。
圖6
如下圖7和圖8所示,分別為MM32-Link MINI接線圖以及通過20pin排線與MM32G0001核心板連接實物圖,其中MM32-Link MINI調試仿真器的DIO和CLK接口分別連接MM32G0001核心板的SWD接口PA13和SWCLK接口PA14,MM32-LINK MINI調試仿真器的TVCC和GND分別連接MM32G0001核心板的VDD和GND,并把核心板MCU端的VDD連接到MM32-Link MINI的VREF參考腳(注:如果MM32-Link MINI內部短接了VREF腳無需外接VDD),使得MM32-Link MINI識別MM32G0001核心板端的供電電壓,以便于匹配SWD時序電平。
圖7
圖8
在MDK Keil IDE環境中按快捷鍵F7編譯LibSamples_MM32G0001_v0.9.1庫函數例程中的GPIO_SWD_Remap為GPIO功能的例程。如下圖9 Build Output窗口所示提示編譯成功。按快捷鍵F8把編譯的程序通過MM32-Link MINI下載到MM32G0001核心板。如下圖10 Build Output窗口打印Logo提示程序下載成功。
圖9
圖10
MM32G0001需要重新上電,GPIO_SWD_Remap的程序才會執行。然后按快捷鍵F8重新燒錄程序,如下圖11所示,提示SWD通信失敗,原因是MM32G0001的SWD程序燒錄接口PA13和PA14已經被復用為GPIO功能并正在運行GPIO翻轉功能的程序,因此提示SWD通信失敗。遇到這種情況可以通過MM32-Link MINI結合MM32-Link Utility上位機軟件對MM32G0001恢復出廠設置,恢復SWD下載程序功能。
圖11
4?
對MM32G0001恢復出廠設置
保持MM32-Link MINI與電腦端和MM32G0001核心板的連接,雙擊MM32-Link Utility快捷方式圖標啟動MM32-Link Utility軟件,該軟件會自動與MM32-Link MINI建立連接。啟動后的界面如下圖12所示。
圖12
如下圖13所示,在MM32-Link Utility V1.08上位機軟件的菜單欄單擊Setting->MM32-Link Config
圖13
如下圖14所示,在彈出的MM32-Link Config界面可以配置MM32-Link MINI調試器仿真器的TVCC引腳對外輸出3.3V或5V電壓給目標芯片MCU供電,本示例配置TVCC對外輸出5V供電給MM32G0001核心板LDO輸入轉3.3V輸出給MM32G0001供電,同時也可配置是否開啟蜂鳴器聲音提示和下載程序的Speed。
圖14
如下圖15所示,單擊MM32-Link Utility V1.08軟件菜單欄的Project->New Project或按快捷鍵Ctrl+N鍵新建MM32-Link Utility恢復出廠設置工程。
圖15
如下圖16所示,在彈出的New Project窗口中Base選項卡Project欄中Name欄自定義填寫待恢復出廠設置的MCU的型號或系列名稱,本示例以MM32G0001為例作為填寫,在Chip Choose欄Series系列下拉選項卡中選擇MM32G0001系列,Part No下拉選項選擇MCU的具體型號,本示例選擇MM32G0001A6T,在File欄單擊“…”按鈕,選擇MM32G001庫函數例程中的任意一個例程,這里以選擇GPIO_LED_Toggle例程為例(如果只是恢復出廠設置File欄也可不做加載選擇,本示例為了演示新建工程的操作步驟作為選擇項)。
圖16
如下圖17所示,進入GPIO_LED_Toggle例程Objects目標文件夾加載GPIO_LED_Toggle.hex文件,然后單擊打開即可。
圖17
如下圖18所示,在New Project界面的Descript欄中用戶可以自定義新建恢復出廠設置的工程描述本示例自定義Factory Reset描述,即恢復出廠設置,然后單擊OK。
圖18
如下圖19所示為新建好的MM32G0001恢復出廠設置的工程,即Factory Reset工程。
圖19
如下圖20所示,單擊MM32-Link Utility V1.08軟件菜單欄Operate->Erase Chip使得MM32G0001恢復出廠設置。
圖20
如下圖21所示,MM32-Link Utility V1.08 上位機軟件Logo欄打印信息提示為Chip erase--->Successfully,此時MM32G0001已成功恢復到出廠設置。
圖21
如下圖22所示在MM32-Link Utility V1.08軟件菜單欄單擊Operate->Disconnect斷開MM32-LINK MINI與MM32-Link Utility軟件的連接,然后重新給MCU上電恢復出廠設置即刻生效。
圖22
5?
恢復了出廠設置驗證
如下圖23所示,使用MDK Keil IDE打開LibSamples_MM32G0001庫函數例程中的GPIO_LED_Toggle翻轉例程,按快捷鍵F7編譯工程。
圖23
在MDK Keil IDE環境下按快捷鍵F8下載MM32G0001庫函數例程中的GPIO_LED_Toggle翻轉例程到MM32G0001核心板,以驗證MM32G0001是否通過MM32-LINK MINI使用MM32-Link Utility上位機軟件恢復了出廠設置。如下圖24所示,在MDK Keil IDE的Build Output打印的Logo信息提示下載的程序的工程名稱為GPIO_LED_Toggle,Programming Done.Verify OK. 說明MM32G0001通過MM32-LINK MINI使用MM32-Link Utility上位機軟件恢復了出廠設置,并可以在MDK Keil IDE環境中重新下載新的例程。
圖24
審核編輯:劉清
-
mcu
+關注
關注
146文章
17317瀏覽量
352642 -
仿真器
+關注
關注
14文章
1019瀏覽量
83935 -
上位機
+關注
關注
27文章
945瀏覽量
55003 -
調試器
+關注
關注
1文章
306瀏覽量
23831 -
Flash存儲
+關注
關注
0文章
38瀏覽量
8334 -
SWD
+關注
關注
1文章
57瀏覽量
11911 -
MM32
+關注
關注
1文章
106瀏覽量
807
原文標題:靈動微課堂 (第273講)|使用MM32-Link MINI對MM32G0001恢復出廠設置
文章出處:【微信號:MindMotion-MMCU,微信公眾號:靈動MM32MCU】歡迎添加關注!文章轉載請注明出處。
發布評論請先 登錄
相關推薦
評論