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