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

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

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

STM32G4 應用程序與 Option Bytes 同時燒錄問題

jf_pJlTbmA9 ? 來源:STM32單片機 ? 作者:STM32單片機 ? 2023-09-28 18:02 ? 次閱讀

1、引言

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

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

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

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

1668391056695991.png

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

1668391067381707.png

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

1668391075150345.png

但是仔細閱讀日志,可以發(fā)現(xiàn)整個操作,首先燒錄的是應用程序,然后再進行 Option Bytes 的修改,也就是說,在燒錄應用程序的時候,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)容如下:

1668391083283163.png

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

3、解決方案

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

? 修改 Option Bytes 中的 DBANK

? 燒錄應用程序

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

1668391111641657.png

1668391119778665.png

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

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

1668391137416239.png

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

4、小結(jié)

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

來源:STM32單片機

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

審核編輯 黃宇

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

    關注

    2264

    文章

    10854

    瀏覽量

    354291
  • 燒錄
    +關注

    關注

    8

    文章

    252

    瀏覽量

    35495
收藏 人收藏

    評論

    相關推薦

    stm32單片機燒錄程序會擦除原來的程序

    STM32單片機燒錄程序的過程中, 通常情況下會擦除原來的程序 ,并將新程序寫入單片機的閃存(Flash)中。這一過程是通過
    的頭像 發(fā)表于 09-02 09:42 ?1172次閱讀

    stm32程序燒錄的幾種方法?

    STM32是一款由STMicroelectronics公司推出的32位微控制器,廣泛應用于嵌入式系統(tǒng)開發(fā)。燒錄STM32程序是開發(fā)過程中的重要環(huán)節(jié)。本文將介紹幾種常見的
    的頭像 發(fā)表于 08-22 09:35 ?2838次閱讀

    STM32G4系列到底支不支持位帶操作

    印象中不止一次有人詢問STM32G4系列到底支不支持位帶操作。
    的頭像 發(fā)表于 07-29 09:45 ?1325次閱讀
    <b class='flag-5'>STM32G4</b>系列到底支不支持位帶操作

    stm32G4的tim2有霍爾模式,能不能用tim1的通道4連接tim2?

    stm32G4的tim2有霍爾模式,能不能用tim1的通道4連接tim2
    發(fā)表于 07-24 07:47

    STM32G4系列芯片定時器的延時輸出問題

    有人使用STM32G4系列芯片內(nèi)部的多個定時器做PWM輸出,輸出頻率一樣,占空比也一樣,均為50%??墒?,當他中途調(diào)整各個定時器以相同的工作參數(shù),即改變ARR的值和CCR值后,會發(fā)現(xiàn)TIM2和TIM5兩個定時器要比其它定時器延時等待一段長達20s左右的時間后才恢復正常PWM輸出,覺得頗為奇怪。
    的頭像 發(fā)表于 07-01 09:45 ?1319次閱讀
    <b class='flag-5'>STM32G4</b>系列芯片定時器的延時輸出問題

    STVP中stm8af6226的Option bytes與Datasheet不符是為什么?

    有沒有人用過stm8af6226,在燒錄軟件STVP中選擇芯片只有STM8AF6226TXSSS這一款,但里面的Option bytes內(nèi)容與stm8af6226的Datasheet不符,而是
    發(fā)表于 05-09 08:22

    STM32G4芯片怎么使用最新功能三角函數(shù)?

    求助各位大佬: STM32G4芯片怎么使用最新功能三角函數(shù)?
    發(fā)表于 04-15 08:17

    請問STM32G4的ADC1,ADC2,ADC3,ADC4可以同時工作在獨立模式嗎?

    咨詢下各位: STM32G4的ADC1,ADC2,ADC3,ADC4可以同時工作在獨立模式嗎?每個ADC的觸發(fā)條件為同一個條件?;蛘哒f其他STM32也行。這樣是否相當于我同事采樣和轉(zhuǎn)換
    發(fā)表于 04-10 06:01

    STM32G4系列的comp比較器的剎車事件和比較中斷怎么用?

    STM32G4系列的comp比較器的剎車事件和比較中斷怎么用
    發(fā)表于 04-03 07:33

    請問STM32G4的推挽PWM如何配置?

    STM32G4的推挽PWM如何配置?
    發(fā)表于 04-03 06:17

    STM32g4 IAP燒錄跳轉(zhuǎn)不成功怎么解決?

    本人用的stspin32g4,按照F4系列手寫了IAP燒錄程序,但是從BootLoader跳轉(zhuǎn)應用一直卡住死機,無法跳轉(zhuǎn);希望大神幫忙看一下
    發(fā)表于 03-28 08:19

    STM32WB55燒錄報錯的原因?

    燒錄工具 STM32CubeProg V2.9, 燒錄器 ST-link V2. 板上燒錄,F(xiàn)US 燒錄完成,顯示no error, 版本1
    發(fā)表于 03-26 08:30

    對于STM32G4系列的MCU,其GPIO的位操作是否還支持位帶操作?

    STM32G4的memory map。GPIO是掛在AHB2總線上的。 但是手冊里面沒有明確找到,其別名區(qū)的起始地址。
    發(fā)表于 03-21 07:34

    請問STM32G4系列的MCU可以支持以太網(wǎng)嗎?

    請問STM32G4系列的MCU可以支持以太網(wǎng)嗎?該系列同時支持以太網(wǎng)和USB Host或OTG接口的型號有嗎?
    發(fā)表于 03-15 06:14

    STM32G4 UART+TIMER+DMA應用示例

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