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

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

3天内不再提示

option bytes 的配置介绍

STM32单片机 来源:STM32单片机 作者:STM32单片机 2022-10-26 09:02 次阅读

1、引言

实际工程中如果需要对 MCU 的 option bytes 进行修改,可以有以下几种方式:

• 通过 STLINK-Utility 或是 CubeProgrammer 图形化工具进行配置

• 通过 ST-LINK_CLI.exe 命令行的方式进行配置

• 通过应用代码中软件修改寄存器的方式进行配置

以上的方式中前两种都需要脱离 KEIL 或是 IAR 的开发环境进行操作,在实际项目的开发阶段可以使用,但是到量产阶段由于多了一道工序,增加了成本与出错的风险;通过应用代码软件修改的方式在一定程度上也是增加了软件的复杂度。

如果客户使用 KEIL 作为软件开发环境,则存在一种更简单的方式,就是使用 opt.s 文件,采用该方法可以与应用工程融合在一起,一步完成 option bytes 的配置。

2、opt.s 文件介绍

Opt.s 文件存在于 KEIL 的开发包中,以 F3 系列 MCU 为例,可以在如下的路径中找到。

bf248f94-54c8-11ed-a3b6-dac502259ad0.png

打开该文件后,可以看到如下部分截图,类似汇编语言的方式对变量进行赋值,其实也就是对 option bytes 中的各个关键变量进行赋值操作。

bf3b9662-54c8-11ed-a3b6-dac502259ad0.png

2、通过 opt.s 配置 option bytes

通过 opt.s 修改 option bytes 只能在 KEIL 开发环境下进行,接下来在 STM32F334R8 为例说明。

Step 1:新建或是任意打开一个基于 STM32F334R8 的工程,这里直接使用 CubeMx 例程中STM32F334R8-Nucleo 下的 GPIO_IOToggle 例程。

Step 2:将 STM32F3xx_OPT.s 添加到功能目录中,如下:

bf47b6c2-54c8-11ed-a3b6-dac502259ad0.png

Step 3:双击打开 STM32F3xx_OPT.s 文件,如下图所示。KEIL 提供了两种编辑方式,如果对.s 文件的编程方式以及 option bytes 变量的每个 bit 都非常熟悉的话,可以直接在 text editor 下对.s 文件中进行修改;更加简单的方式是直接在 Configuration Wizard 下进行配置。建议采用后面一种配置方式,更加简单明了。

bf83d620-54c8-11ed-a3b6-dac502259ad0.png

Step 4:Configuration Wizard 下修改配置,比如将 RDP 由 level 0 更改为 level 1 并保存修改,此时可以通过 Text Editor 查看对应的 RDP 的值也变了。

bf9a2344-54c8-11ed-a3b6-dac502259ad0.png

Step 5:重新编译工程,可以看到 opt.s 文件被直接编译到应用工程中。

bfb368c2-54c8-11ed-a3b6-dac502259ad0.png

Step 6:将生成的烧录文件直接下载到目标板中。此时需要注意的是,在烧录前一定要将对应的 Flash options 的烧录算法添加到 Programming Algorithm 中,如下所示,完成后直接连接目标板进行烧录即可。

bfcb4a1e-54c8-11ed-a3b6-dac502259ad0.png

完成以上的操作后,可以对上述进行的 option bytes 的修改进行验证,可以直接打开CubeProgrammer 读取目标板的 option bytes,得到的结果如下图所示,可以看到,RDP 的结果与上述配置一致。

bfdae384-54c8-11ed-a3b6-dac502259ad0.png

4、小结

通过将 opt.s 文件添加到工程中实现 option bytes 的配置,好处是将配置融合到烧录文件中,不需要通过其他工具或是在应用代码中去操作 option bytes,简化量产过程中的烧录工序。但是目前该方法不是所有的 MCU 型号都适用,例如对 G4 双 Bank 系列就存在问题,需要等待官方提供适合双 Bank 的 option bytes 的烧录算法与 opt.s 文件。

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

    关注

    31

    文章

    5328

    浏览量

    120116
  • 软件
    +关注

    关注

    69

    文章

    4838

    浏览量

    87222
  • 代码
    +关注

    关注

    30

    文章

    4762

    浏览量

    68408

原文标题:工程师笔记|在 KEIL 中通过 opt.s 文件设置 Option Bytes

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

收藏 人收藏

    评论

    相关推荐

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

    “ 关键词:双Bank,Option Bytes 1、引言 客户使用 STM32G474 系列芯片,在烧录应用程序的同时要对 Option Bytes 中的 DBANK 进行修改,采用
    的头像 发表于 11-11 19:50 2071次阅读

    STVP中stm8af6226的Option bytes与Datasheet不符是为什么?

    有没有人用过stm8af6226,在烧录软件STVP中选择芯片只有STM8AF6226TXSSS这一款,但里面的Option bytes内容与stm8af6226的Datasheet不符,而是
    发表于 05-09 08:22

    在STM32F103XX系统的mcu里,FLASH_OBR寄存器中有个USER【User option bytes】字段,这是什么意思?

    在STM32F103XX系统的mcu里,FLASH_OBR寄存器中有个USER【User option bytes】字段,请问这个是什么意思?用于什么作用的?必须得配置还是可选的?能随便配置
    发表于 05-10 06:13

    st-link utility为什么option bytes总是失败?

    我用的是4.0版本,我新买的芯片一开始connect失败,然后我按照网上教程,但是设置好option bytes后总是显示失败,不过我再次点击connect后成功了,这是怎么回事,是版本问题吗?大家有这样的问题吗?
    发表于 11-21 20:26

    Capital功能选项Option的实际设置实例

    在Capital Harness System的Capital Project模板下有个选项设计条目,使用很多。本文主要介绍下Capital功能选项Option的实际设置实例,方便大家理解与操作
    发表于 01-12 17:10

    STM8S配置字节OPTION BYTE

    STM8S的配置字类似于AVR的Fuse熔丝位。用于配置端口的复用功能和读保护等操作。不同于AVR的熔丝位,STM8S的时钟配置并不在Option Byte中,不会出现写完STM8S后
    发表于 10-10 06:07

    MDK-ARM工程中各目标(Targets)之间选项(Option配置有什么区别 ?

    MDK-ARM工程中各目标(Targets)之间选项(Option配置有什么区别?
    的头像 发表于 03-14 10:32 6022次阅读
    MDK-ARM工程中各目标(Targets)之间选项(<b class='flag-5'>Option</b>)<b class='flag-5'>配置</b>有什么区别 ?

    HMC754 Gerber Files - Option 2

    HMC754 Gerber Files - Option 2
    发表于 02-19 10:20 0次下载
    HMC754 Gerber Files - <b class='flag-5'>Option</b> 2

    原理图 Cloud Option Board

    原理图 Cloud Option Board
    发表于 03-14 19:52 0次下载
    原理图 Cloud <b class='flag-5'>Option</b> Board

    CANape |Option Driver Assistance功能详解

    本文介绍CANape的快速验证功能Option Driver Assistance,助力于汽车辅助驾驶技术的研发与测试。
    的头像 发表于 08-04 14:32 1148次阅读
    CANape |<b class='flag-5'>Option</b> Driver Assistance功能详解

    原理图 Cloud Option Board

    原理图 Cloud Option Board
    发表于 07-05 20:18 0次下载
    原理图 Cloud <b class='flag-5'>Option</b> Board

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

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

    在 KEIL 中通过 opt.s 文件设置 Option Bytes

    在 KEIL 中通过 opt.s 文件设置 Option Bytes
    的头像 发表于 09-28 17:30 1417次阅读
    在 KEIL 中通过 opt.s 文件设置 <b class='flag-5'>Option</b> <b class='flag-5'>Bytes</b>

    Option的基础用法

    Option 是 Rust 语言中的一个枚举类型,它表示一个值可能存在,也可能不存在的情况。Option 可以理解为一个容器,它可能装有一个值,也可能为空。在 Rust 中,Option 可以用
    的头像 发表于 09-20 11:07 2155次阅读

    STM8S的配置字节Option Byte

    电子发烧友网站提供《STM8S的配置字节Option Byte.pdf》资料免费下载
    发表于 10-07 16:12 1次下载
    STM8S的<b class='flag-5'>配置</b>字节<b class='flag-5'>Option</b> Byte