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

完善資料讓更多小伙伴認(rèn)識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

工程師筆記|STM32G4 應(yīng)用程序與 Option Bytes 同時燒錄問題

STM32單片機 ? 來源:未知 ? 2022-11-11 19:50 ? 次閱讀

關(guān)鍵詞:雙Bank,Option Bytes

1、引言

客戶使用 STM32G474 系列芯片,在燒錄應(yīng)用程序的同時要對 Option Bytes 中的 DBANK 進行修改,采用 STlink Utility 或是 CubeProgrammer 工具進行操作,并希望整個過程只用一次燒 錄動作就完成,發(fā)現(xiàn)燒錄的應(yīng)用程序無法運行。

2、問題產(chǎn)生及原因分析

STM32G474 系列芯片具有雙 Bank 功能,且默認(rèn)情況下 Option Bytes 中的 DBANK =1,即雙 Bank 使能。但客戶實際的應(yīng)用是單 Bank,所以需要將 DBANK 設(shè)置為 0,這樣客戶在使用 Utility 或是 CubeProgrammer 工具燒錄應(yīng)用程序時,同時設(shè)置 Option Bytes 中的DBANK 為 0。但是當(dāng)燒錄結(jié)束后,發(fā)現(xiàn)應(yīng)用程序無法正常運行,需要再次燒錄才能運行。

整個燒錄的過程,在 Utility 中操作如下圖所示,通過 Target ->Automatic Mode->Option bytes configuration 對 DBANK 進行修改,在 File 中選擇應(yīng)用程序文件,然后直接燒錄。

cb2cead0-61b5-11ed-8abf-dac502259ad0.png

在 CubeProgrammer 中操作如下圖所示,通過 Erasing & Programming->Automatic Mode->Option bytes commands,寫入修改 DBANK 的命令行,在 File 中選擇應(yīng)用程序文件,然后直接燒錄。

cb5dec34-61b5-11ed-8abf-dac502259ad0.png

整個操作流程是正確的,以 CubeProgrammer 為例,整個操作的日志如下,顯示所有操作正常完成。

cb7d5696-61b5-11ed-8abf-dac502259ad0.png

但是仔細(xì)閱讀日志,可以發(fā)現(xiàn)整個操作,首先燒錄的是應(yīng)用程序,然后再進行 Option Bytes 的修改,也就是說,在燒錄應(yīng)用程序的時候,MCU 依舊是工作在雙 bank 模式下,待程序燒錄完成,將雙 Bank 修改為單 Bank,注意 DBANK 的修改將會改變 Flash 的取指方式,如下:

? Single bank mode DBANK=0: read access of 128 bits

? Dual bank mode DBANK=1: read access of 64 bits

可以通過單步操作的方式來查看 Flash 中內(nèi)容的區(qū)別。在雙 Bank 模式下燒錄程序后,讀出Flash 內(nèi)容如下:

cbbef18c-61b5-11ed-8abf-dac502259ad0.png

對比以上的內(nèi)容,可以發(fā)現(xiàn)由于取指方式的改變,讀取的 Flash 中內(nèi)容發(fā)生了變化,后者出現(xiàn)了大片的空白空間,這也就是此前客戶操作方式在完成燒錄后程序無法運行的原因。

3、解決方案

通過以上的分析,要實現(xiàn)客戶的要求,必須首先對 Option Bytes 進行修改,將 Flash 配置為單 Bank 模式后,才能進行應(yīng)用程序的燒錄,但是在 Utility 或是 CubeProgrammer 中無法修改其本身的操作時序,無法通過一次操作的方式完成,必須分成兩步來完成,即:

? 修改 Option Bytes 中的 DBANK ? 燒錄應(yīng)用程序

那么客戶最希望的只用一個步驟完成所有的操作是不是沒法實現(xiàn)了?別急,ST 還提供了另一個工具,ST_LINK CLI, 它的操作完全通過命令行的方式來完成。其路徑位于 ST_LINK Utility在安裝目錄下,如下:

cbf384a6-61b5-11ed-8abf-dac502259ad0.png

cc0ea1e6-61b5-11ed-8abf-dac502259ad0.png

可以通過 cmd 窗口中直接調(diào)用該工具,舉個例程如下:

D:ST-LINK Utility>st-link_cli.exe -c SWD -OB DBANK=0 -Rst -ME -P d: est.hex -V while_programming

cc3cac94-61b5-11ed-8abf-dac502259ad0.png

以上可以看到 Option Bytes 首先完成修改,然后讓芯片進行 reset,保證新的 Option Bytes重新加載并生效,最后完成應(yīng)用程序的燒錄。

4、小結(jié)

這里分析了客戶使用燒錄工具 ST Link Utility 和 STM32CubeProgrammer 同時燒錄 Option Bytes 中的 DBANK 設(shè)置和應(yīng)用程序后程序無法正常運行的問題,給出了采用 ST-LINK_CLI.exe 工具一次性操作完成 Option Bytes 與應(yīng)用程序燒錄的解決方案。

THE END


原文標(biāo)題:工程師筆記|STM32G4 應(yīng)用程序與 Option Bytes 同時燒錄問題

文章出處:【微信公眾號:STM32單片機】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。


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

    關(guān)注

    6030

    文章

    44489

    瀏覽量

    631996
  • STM32
    +關(guān)注

    關(guān)注

    2264

    文章

    10854

    瀏覽量

    354299

原文標(biāo)題:工程師筆記|STM32G4 應(yīng)用程序與 Option Bytes 同時燒錄問題

文章出處:【微信號:STM32_STM8_MCU,微信公眾號:STM32單片機】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。

收藏 人收藏

    評論

    相關(guān)推薦

    STM32G4 UART+TIMER+DMA應(yīng)用示例

    這里使用STM32G4系列Nucleo開發(fā)板演示如下需求的實現(xiàn)過程。
    的頭像 發(fā)表于 11-27 10:42 ?1997次閱讀
    <b class='flag-5'>STM32G4</b> UART+TIMER+DMA應(yīng)用示例

    STM32G4軟件復(fù)位后程序無法運行怎么解決?

    STM32G4軟件復(fù)位后程序無法運行怎么解決?
    發(fā)表于 02-14 07:48

    STM32G4中的HRTIM是否可用?

    大家好,關(guān)于應(yīng)用筆記AN4539 ,STM32G4的所有 MCU 都應(yīng)支持 HRTIM 外設(shè),參考手冊也描述了所有 STM32G4 的 HRTIM 功能,但在某些頁面和數(shù)據(jù)表上沒有關(guān)于 HRTIM
    發(fā)表于 02-08 06:25

    基于STM32G4的電機控制項目開發(fā)

    程序在CCM SRAM中才能完美發(fā)揮出STM32G4的性能MC SDK V5.4.3中STM32G4默認(rèn)并未使用CCM SRAM
    發(fā)表于 09-08 06:54

    如何使用STM32G4系列微控制器存儲器和外圍設(shè)備

    本參考手冊面向應(yīng)用程序開發(fā)人員。它提供了關(guān)于如何使用STM32G4系列微控制器存儲器和外圍設(shè)備。 STM32G4系列是一系列具有不同內(nèi)存大小和封裝的微控制器以及外圍設(shè)備。 有關(guān)訂購信息、機械
    發(fā)表于 09-08 06:59

    STM32G4 系列壽命估算

    STM32G4 系列壽命估算
    發(fā)表于 11-21 08:11 ?2次下載
    <b class='flag-5'>STM32G4</b> 系列壽命估算

    AN5306_OPAMP在STM32G4系列中的應(yīng)用

    AN5306_OPAMP在STM32G4系列中的應(yīng)用
    發(fā)表于 11-21 08:11 ?4次下載
    AN5306_OPAMP在<b class='flag-5'>STM32G4</b>系列中的應(yīng)用

    AN4232_STM32F3和 STM32G4的模擬比較器入門指南

    AN4232_STM32F3和 STM32G4的模擬比較器入門指南
    發(fā)表于 11-21 17:06 ?10次下載
    AN4232_<b class='flag-5'>STM32</b>F3和 <b class='flag-5'>STM32G4</b>的模擬比較器入門指南

    AN5310_使用STM32F3系列與STM32G4系列設(shè)備的模擬特性指南

    AN5310_使用STM32F3系列與STM32G4系列設(shè)備的模擬特性指南
    發(fā)表于 11-21 17:06 ?2次下載
    AN5310_使用<b class='flag-5'>STM32</b>F3系列與<b class='flag-5'>STM32G4</b>系列設(shè)備的模擬特性指南

    STM32G4系列安全手冊

    STM32G4系列安全手冊
    發(fā)表于 11-22 08:21 ?3次下載
    <b class='flag-5'>STM32G4</b>系列安全手冊

    STM32G4電機驅(qū)動實例

    電子發(fā)燒友網(wǎng)站提供《STM32G4電機驅(qū)動實例.pdf》資料免費下載
    發(fā)表于 07-31 17:00 ?9次下載
    <b class='flag-5'>STM32G4</b>電機驅(qū)動實例

    STM32G4 應(yīng)用程序Option Bytes 同時燒錄問題

    STM32G4 應(yīng)用程序Option Bytes 同時燒錄問題
    的頭像 發(fā)表于 09-28 18:02 ?1012次閱讀
    <b class='flag-5'>STM32G4</b> <b class='flag-5'>應(yīng)用程序</b>與 <b class='flag-5'>Option</b> <b class='flag-5'>Bytes</b> <b class='flag-5'>同時</b><b class='flag-5'>燒錄</b>問題

    工程師筆記 | STM32G0 復(fù)位后死機

    工程師筆記 | STM32G0 復(fù)位后死機
    的頭像 發(fā)表于 10-17 15:23 ?1403次閱讀
    <b class='flag-5'>工程師</b><b class='flag-5'>筆記</b> | <b class='flag-5'>STM32G</b>0 復(fù)位后死機

    STM32G4中ADC觸發(fā)分頻的實現(xiàn)方式

    電子發(fā)燒友網(wǎng)站提供《STM32G4中ADC觸發(fā)分頻的實現(xiàn)方式.pdf》資料免費下載
    發(fā)表于 09-19 16:38 ?6次下載
    <b class='flag-5'>STM32G4</b>中ADC觸發(fā)分頻的實現(xiàn)方式

    STM32G4市場和特性篇

    電子發(fā)燒友網(wǎng)站提供《STM32G4市場和特性篇.pdf》資料免費下載
    發(fā)表于 09-19 14:44 ?1次下載
    <b class='flag-5'>STM32G4</b>市場和特性篇