0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

工程师笔记|STM32G4 应用程序与 Option Bytes 同时烧录问题

STM32单片机 来源:未知 2022-11-11 19:50 次阅读

关键词:双Bank,Option Bytes

1、引言

客户使用 STM32G474 系列芯片,在烧录应用程序的同时要对 Option Bytes 中的 DBANK 进行修改,采用 STlink Utility 或是 CubeProgrammer 工具进行操作,并希望整个过程只用一次烧 录动作就完成,发现烧录的应用程序无法运行。

2、问题产生及原因分析

STM32G474 系列芯片具有双 Bank 功能,且默认情况下 Option Bytes 中的 DBANK =1,即双 Bank 使能。但客户实际的应用是单 Bank,所以需要将 DBANK 设置为 0,这样客户在使用 Utility 或是 CubeProgrammer 工具烧录应用程序时,同时设置 Option Bytes 中的DBANK 为 0。但是当烧录结束后,发现应用程序无法正常运行,需要再次烧录才能运行。

整个烧录的过程,在 Utility 中操作如下图所示,通过 Target ->Automatic Mode->Option bytes configuration 对 DBANK 进行修改,在 File 中选择应用程序文件,然后直接烧录。

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

在 CubeProgrammer 中操作如下图所示,通过 Erasing & Programming->Automatic Mode->Option bytes commands,写入修改 DBANK 的命令行,在 File 中选择应用程序文件,然后直接烧录。

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

整个操作流程是正确的,以 CubeProgrammer 为例,整个操作的日志如下,显示所有操作正常完成。

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

但是仔细阅读日志,可以发现整个操作,首先烧录的是应用程序,然后再进行 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 中内容的区别。在双 Bank 模式下烧录程序后,读出Flash 内容如下:

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

对比以上的内容,可以发现由于取指方式的改变,读取的 Flash 中内容发生了变化,后者出现了大片的空白空间,这也就是此前客户操作方式在完成烧录后程序无法运行的原因。

3、解决方案

通过以上的分析,要实现客户的要求,必须首先对 Option Bytes 进行修改,将 Flash 配置为单 Bank 模式后,才能进行应用程序的烧录,但是在 Utility 或是 CubeProgrammer 中无法修改其本身的操作时序,无法通过一次操作的方式完成,必须分成两步来完成,即:

• 修改 Option Bytes 中的 DBANK • 烧录应用程序

那么客户最希望的只用一个步骤完成所有的操作是不是没法实现了?别急,ST 还提供了另一个工具,ST_LINK CLI, 它的操作完全通过命令行的方式来完成。其路径位于 ST_LINK Utility在安装目录下,如下:

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

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

可以通过 cmd 窗口中直接调用该工具,举个例程如下:

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重新加载并生效,最后完成应用程序的烧录。

4、小结

这里分析了客户使用烧录工具 ST Link Utility 和 STM32CubeProgrammer 同时烧录 Option Bytes 中的 DBANK 设置和应用程序后程序无法正常运行的问题,给出了采用 ST-LINK_CLI.exe 工具一次性操作完成 Option Bytes 与应用程序烧录的解决方案。

THE END


原文标题:工程师笔记|STM32G4 应用程序与 Option Bytes 同时烧录问题

文章出处:【微信公众号:STM32单片机】欢迎添加关注!文章转载请注明出处。


声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 单片机
    +关注

    关注

    6034

    文章

    44528

    浏览量

    633606
  • STM32
    +关注

    关注

    2266

    文章

    10880

    浏览量

    355082

原文标题:工程师笔记|STM32G4 应用程序与 Option Bytes 同时烧录问题

文章出处:【微信号:STM32_STM8_MCU,微信公众号:STM32单片机】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    STM32G4 UART+TIMER+DMA应用示例

    这里使用STM32G4系列Nucleo开发板演示如下需求的实现过程。
    的头像 发表于 11-27 10:42 2128次阅读
    <b class='flag-5'>STM32G4</b> UART+TIMER+DMA应用示例

    STM32G4软件复位后程序无法运行怎么解决?

    STM32G4软件复位后程序无法运行怎么解决?
    发表于 02-14 07:48

    STM32G4中的HRTIM是否可用?

    大家好,关于应用笔记AN4539 ,STM32G4的所有 MCU 都应支持 HRTIM 外设,参考手册也描述了所有 STM32G4 的 HRTIM 功能,但在某些页面和数据表上没有关于 HRTIM
    发表于 02-08 06:25

    基于STM32G4的电机控制项目开发

    程序在CCM SRAM中才能完美发挥出STM32G4的性能MC SDK V5.4.3中STM32G4默认并未使用CCM SRAM
    发表于 09-08 06:54

    如何使用STM32G4系列微控制器存储器和外围设备

    本参考手册面向应用程序开发人员。它提供了关于如何使用STM32G4系列微控制器存储器和外围设备。 STM32G4系列是一系列具有不同内存大小和封装的微控制器以及外围设备。 有关订购信息、机械
    发表于 09-08 06:59

    STM32G4 系列寿命估算

    STM32G4 系列寿命估算
    发表于 11-21 08:11 2次下载
    <b class='flag-5'>STM32G4</b> 系列寿命估算

    AN5306_OPAMP在STM32G4系列中的应用

    AN5306_OPAMP在STM32G4系列中的应用
    发表于 11-21 08:11 4次下载
    AN5306_OPAMP在<b class='flag-5'>STM32G4</b>系列中的应用

    AN4232_STM32F3和 STM32G4的模拟比较器入门指南

    AN4232_STM32F3和 STM32G4的模拟比较器入门指南
    发表于 11-21 17:06 10次下载
    AN4232_<b class='flag-5'>STM32</b>F3和 <b class='flag-5'>STM32G4</b>的模拟比较器入门指南

    AN5310_使用STM32F3系列与STM32G4系列设备的模拟特性指南

    AN5310_使用STM32F3系列与STM32G4系列设备的模拟特性指南
    发表于 11-21 17:06 2次下载
    AN5310_使用<b class='flag-5'>STM32</b>F3系列与<b class='flag-5'>STM32G4</b>系列设备的模拟特性指南

    STM32G4系列安全手册

    STM32G4系列安全手册
    发表于 11-22 08:21 3次下载
    <b class='flag-5'>STM32G4</b>系列安全手册

    STM32G4电机驱动实例

    电子发烧友网站提供《STM32G4电机驱动实例.pdf》资料免费下载
    发表于 07-31 17:00 9次下载
    <b class='flag-5'>STM32G4</b>电机驱动实例

    基于STM32G4的电机控制项目开发

    电子发烧友网站提供《基于STM32G4的电机控制项目开发.pdf》资料免费下载
    发表于 08-01 16:35 19次下载
    基于<b class='flag-5'>STM32G4</b>的电机控制项目开发

    STM32G4 应用程序Option Bytes 同时烧录问题

    STM32G4 应用程序Option Bytes 同时烧录问题
    的头像 发表于 09-28 18:02 1036次阅读
    <b class='flag-5'>STM32G4</b> <b class='flag-5'>应用程序</b>与 <b class='flag-5'>Option</b> <b class='flag-5'>Bytes</b> <b class='flag-5'>同时</b><b class='flag-5'>烧录</b>问题

    工程师笔记 | STM32G0 复位后死机

    工程师笔记 | STM32G0 复位后死机
    的头像 发表于 10-17 15:23 1444次阅读
    <b class='flag-5'>工程师</b><b class='flag-5'>笔记</b> | <b class='flag-5'>STM32G</b>0 复位后死机

    STM32G4市场和特性篇

    电子发烧友网站提供《STM32G4市场和特性篇.pdf》资料免费下载
    发表于 09-19 14:44 1次下载
    <b class='flag-5'>STM32G4</b>市场和特性篇