0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

工程師筆記 | STM32G0 復位后死機

jf_pJlTbmA9 ? 來源:STM32單片機 ? 作者:STM32單片機 ? 2023-10-17 15:23 ? 次閱讀

引言

有客戶反映,STM32G071RBT6 在使用 STM32CubeProgrammer 燒錄完程序后只能運行一次,復位后,程序無法運行,如果掉電后重新上電,程序恢復正常。

問題描述

根據(jù)客戶描述,該問題可通過以下步驟復現(xiàn):

2.1. 測試代碼的功能流程圖

準備測試代碼 App1 和 App2:

“STM32G0

“STM32G0

2.2. 問題復現(xiàn)步驟

操作步驟

(1) 在 STM32CubeProgrammer 中下載

應用程序 App1(如圖 3),并設置 RDP=1(如圖 4);然后斷開 STM32CubeProgrammer 的連接,板子斷電后重新上電;

“STM32G0

“STM32G0

(2) 根據(jù) log 提示(如圖 5),按下用戶按鍵,板子會在 RDP 降級的過程中,產生全片擦除的動作,等待 10s,確保芯片擦除完成后從板子再斷電并重新上電;

“STM32G0

(3) 使用 STM32CubeProgrammer 重新連接板子,在下載界面選中“Run afterprogramming”后,下載應用程序 App2(如圖 6),下載完成后,可以看到板子執(zhí)行閃燈的效果,并從 App2 的 log 信息可知,此時的 empty check 位被置起(如圖 7)。

“STM32G0

“STM32G0

(4) 在不斷電的情況下,如果直接按下外部復位按鈕,程序將出現(xiàn)無法執(zhí)行的現(xiàn)象。

問題解決

通過問題的復現(xiàn),我們注意到,程序無法正常運行時,實際進入了內置的 ISP 程序,即內置的 bootloader 程序。為什么會進入 bootloader 呢?在 G0 的參考手冊中,我們注意到 empty check 的描述如下:

“STM32G0

這里的描述有兩點是很重要的。

A :出廠的芯片,因為是沒有程序的空片,empty check 位是被置位的,但實際電路中因 boot 管腳定義的程序從 Main Flash 啟動的場景時,程序會由于 empty check 位而強制從內置的 bootloader 啟動。

B :empty check 只會在加載 OptionByte 時更新,所以在空片上下載完程序后,應當通過 power on reset 或者手動清除該位,程序才可以正常運行。

我們來驗證一下,在復現(xiàn)問題的第(4)步中,如果先按下用戶按鈕,應用程序 App2會通過軟件清除 empty check 位,再通過外部復位按鈕,則程序正常運行, 根據(jù) log 信息可以看到 empty check 位被清除(如圖 9),且程序運行恢復正常。

“STM32G0

小結

本文描述的問題雖然隱藏的比較深,但規(guī)律還是很明顯的,只要重新上電即可恢復,說明很可能和 power on reset 有關。在參考手冊中搜索 power on reset 關鍵字,可以很快的找到一些線索。所以分析問題時,要多關注這樣的有規(guī)律的問題信息。

來源:STM32單片機
免責聲明:本文為轉載文章,轉載此文目的在于傳遞更多信息,版權歸原作者所有。本文所用視頻、圖片、文字如涉及作品版權問題,請聯(lián)系小編進行處理


審核編輯 黃宇
聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權轉載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • STM32
    +關注

    關注

    2270

    文章

    10901

    瀏覽量

    356224
  • 死機
    +關注

    關注

    0

    文章

    17

    瀏覽量

    8610
  • 復位
    +關注

    關注

    0

    文章

    172

    瀏覽量

    24221
收藏 人收藏

    評論

    相關推薦

    關于STM32G0將會在今年爆發(fā)嗎?

    STM32G0將會在今年爆發(fā)嗎?
    的頭像 發(fā)表于 03-04 11:21 ?4653次閱讀

    STM32G0復位死機

    有客戶反映,STM32G071RBT6 在使用 STM32CubeProgrammer 燒錄完程序只能運行一次,復位,程序無法運行,如果
    的頭像 發(fā)表于 03-17 10:56 ?7207次閱讀

    AN5096_介紹STM32G0系列硬件開發(fā)

    AN5096_介紹STM32G0系列硬件開發(fā)
    發(fā)表于 11-21 08:11 ?4次下載
    AN5096_介紹<b class='flag-5'>STM32G0</b>系列硬件開發(fā)

    STM32G0學習資料

    STM32G0學習資料
    發(fā)表于 11-21 08:11 ?16次下載
    <b class='flag-5'>STM32G0</b>學習資料

    AN5145_從STM32F0系列遷移到STM32G0系列的應用

    AN5145_從STM32F0系列遷移到STM32G0系列的應用
    發(fā)表于 11-21 17:06 ?17次下載
    AN5145_從<b class='flag-5'>STM32F0</b>系列遷移到<b class='flag-5'>STM32G0</b>系列的應用

    AN5145_從STM32F0系列到 STM32G0 系列的應用移手冊

    AN5145_從STM32F0系列到 STM32G0 系列的應用移手冊
    發(fā)表于 11-21 17:06 ?13次下載
    AN5145_從<b class='flag-5'>STM32F0</b>系列到 <b class='flag-5'>STM32G0</b> 系列的應用移手冊

    PM0223_STM32L0STM32G0單片機編程手冊

    PM0223_STM32L0STM32G0單片機編程手冊
    發(fā)表于 11-24 08:29 ?13次下載
    PM0223_<b class='flag-5'>STM32L0</b>和<b class='flag-5'>STM32G0</b>單片機編程手冊

    STM32G0開發(fā)筆記:FreeRTOS和FreeModbus庫使用

    使用Platformio平臺的libopencm3開發(fā)框架來開發(fā)STM32G0,以下為FreeRTOS和FreeModbus庫使用。
    的頭像 發(fā)表于 01-16 14:44 ?5718次閱讀
    <b class='flag-5'>STM32G0</b>開發(fā)<b class='flag-5'>筆記</b>:FreeRTOS和FreeModbus庫使用

    STM32G0開發(fā)筆記:FreeRTOS和CLI組件使用

    使用Platformio平臺的libopencm3開發(fā)框架來開發(fā)STM32G0,以下為FreeRTOS和CLI組件使用。
    的頭像 發(fā)表于 01-16 14:47 ?3619次閱讀
    <b class='flag-5'>STM32G0</b>開發(fā)<b class='flag-5'>筆記</b>:FreeRTOS和CLI組件使用

    STM32G0開發(fā)筆記:使用FreeRTOS系統(tǒng)

    使用Platformio平臺的libopencm3開發(fā)框架來開發(fā)STM32G0,下面為使用FreeRTOS系統(tǒng)。
    的頭像 發(fā)表于 01-16 15:07 ?2422次閱讀
    <b class='flag-5'>STM32G0</b>開發(fā)<b class='flag-5'>筆記</b>:使用FreeRTOS系統(tǒng)

    STM32G0開發(fā)筆記:SPI接口的基本使用

    使用Platformio平臺的libopencm3開發(fā)框架來開發(fā)STM32G0,下面介紹SPI接口的基本使用。
    的頭像 發(fā)表于 01-17 10:38 ?3143次閱讀
    <b class='flag-5'>STM32G0</b>開發(fā)<b class='flag-5'>筆記</b>:SPI接口的基本使用

    STM32G0開發(fā)筆記:串口中斷的使用

    使用Platformio平臺的libopencm3開發(fā)框架來開發(fā)STM32G0,以下為串口中斷的使用。
    的頭像 發(fā)表于 01-17 10:46 ?2376次閱讀

    STM32G0開發(fā)筆記:LED燈示例

    使用Platformio平臺的libopencm3開發(fā)框架來開發(fā)STM32G0,下面為LED燈示例。
    的頭像 發(fā)表于 01-17 10:52 ?1424次閱讀
    <b class='flag-5'>STM32G0</b>開發(fā)<b class='flag-5'>筆記</b>:LED燈示例

    使用platformio平臺和Arduino框架開發(fā)STM32G0

    使用platformio平臺和Arduino框架開發(fā)STM32G0,開發(fā)環(huán)境使用VSCode+PlatformIO插件;
    的頭像 發(fā)表于 01-17 11:05 ?3764次閱讀
    使用platformio平臺和Arduino框架開發(fā)<b class='flag-5'>STM32G0</b>

    STM32G0系列安全手冊

    電子發(fā)燒友網(wǎng)站提供《STM32G0系列安全手冊.pdf》資料免費下載
    發(fā)表于 07-31 16:25 ?0次下載
    <b class='flag-5'>STM32G0</b>系列安全手冊