前言
客戶使用 STM32G474 系列芯片,在燒錄應用程序的同時要對 Option Bytes 中的 DBANK進行修改,采用 STlink Utility 或是 CubeProgrammer 工具進行操作,并希望整個過程只用一次燒錄動作就完成,發(fā)現(xiàn)燒錄的應用程序無法運行。
問題產(chǎn)生及原因分析
STM32G474 系列芯片具有雙 Bank 功能,且默認情況下 Option Bytes 中的 DBANK =1,即雙 Bank 使能。但是客戶實際的應用使用的是單 Bank,所以需要將 DBANK 設置為 0,所以客戶在使用 Utility 或是 CubeProgrammer 工具燒錄應用程序時,同時設置 Option Bytes 中的DBANK 為 0。但是當燒錄結束后,發(fā)現(xiàn)應用程序無法正常運行,需要再次燒錄才能運行。
解決方案
通過以上的分析,要實現(xiàn)客戶的要求,必須首先對 Option Bytes 進行修改,將 Flash 配置為單 Bank 模式后,才能進行應用程序的燒錄,但是在 Utility 或是 CubeProgrammer 中無法修改其本身的操作時序,無法通過一次操作的方式完成,必須分成兩步來完成,即:
- 修改 Option Bytes 中的 DBANK
- 燒錄應用程序
小結
這里分析了客戶使用燒錄工具 ST Link Utility 和 STM32CubeProgrammer 同時燒錄 OptionBytes 中的 DBANK 設置和應用程序后程序無法正常運行的問題,給出了采用 ST-LINK_CLI.exe 工具一次性操作完成 Option Bytes 與應用程序燒錄的解決方案。