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