前言
客户使用 STM32G474 系列芯片,在烧录应用程序的同时要对 Option Bytes 中的 DBANK进行修改,采用 STlink Utility 或是 CubeProgrammer 工具进行操作,并希望整个过程只用一次烧录动作就完成,发现烧录的应用程序无法运行。
问题产生及原因分析
STM32G474 系列芯片具有双 Bank 功能,且默认情况下 Option Bytes 中的 DBANK =1,即双 Bank 使能。但是客户实际的应用使用的是单 Bank,所以需要将 DBANK 设置为 0,所以客户在使用 Utility 或是 CubeProgrammer 工具烧录应用程序时,同时设置 Option Bytes 中的DBANK 为 0。但是当烧录结束后,发现应用程序无法正常运行,需要再次烧录才能运行。
解决方案
通过以上的分析,要实现客户的要求,必须首先对 Option Bytes 进行修改,将 Flash 配置为单 Bank 模式后,才能进行应用程序的烧录,但是在 Utility 或是 CubeProgrammer 中无法修改其本身的操作时序,无法通过一次操作的方式完成,必须分成两步来完成,即:
- 修改 Option Bytes 中的 DBANK
- 烧录应用程序
小结
这里分析了客户使用烧录工具 ST Link Utility 和 STM32CubeProgrammer 同时烧录 OptionBytes 中的 DBANK 设置和应用程序后程序无法正常运行的问题,给出了采用 ST-LINK_CLI.exe 工具一次性操作完成 Option Bytes 与应用程序烧录的解决方案。