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

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

3天内不再提示

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

jf_pJlTbmA9 来源:STM32单片机 作者:STM32单片机 2023-09-28 17:30 次阅读

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 为例,可以在如下的路径中找到。

1666769955539036.png

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

1666769964550170.png

3、通过 opt.s 配置 option bytes

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

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

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

1666769978991580.png

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

1666769990265882.png

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

1666770001104499.png

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

1666770021261625.png

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

1666770028703345.png

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

1666770039746029.png

4、小结

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

来源:STM32单片机

免责声明:本文为转载文章,转载此文目的在于传递更多信息,版权归原作者所有。本文所用视频、图片、文字如涉及作品版权问题,请联系小编进行处理

审核编辑 黄宇

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

    关注

    68

    文章

    1211

    浏览量

    166665
收藏 人收藏

    评论

    相关推荐

    怎样将keil的程序导出

    1. 准备工作 开始导出程序之前,需要确保已经完成了以下准备工作: 安装Keil MDK-ARM软件。 创建一个新的项目,并添加所需的源文件和库文件。 配置项目
    的头像 发表于 09-02 10:23 1114次阅读

    如何把keil软件设置成中文

    软件。您将看到主界面,其中包含菜单栏、工具栏和项目窗口。 打开“选项”菜单: 菜单栏,找到并点击“选项”菜单。这将打开一个下拉菜单,其中包含各种设置选项。 选择“环境”选项:
    的头像 发表于 09-02 10:21 4215次阅读

    使用espconn_set_opt设置了TCP断开连接后立刻释放内存,好像不生效,怎么解决?

    使用espconn_set_opt设置了TCP断开连接后立刻释放内存,好像不生效。我用的是以下的设置方法: err=espconn_set_o
    发表于 07-10 07:21

    STVD如何设置预编译选项?

    请问大家一个IDE 的问题 我目前使用的是STVD 的编译器。 想请问一下, 预编译选项 哪里有的设置。 例如 中断向量 文件如果 定义了STM8
    发表于 05-13 07:30

    如何修改STM32f030F4option bytes

    (); FLASH_OB_Lock(); FLASH_Lock(); } 返回FLASH_ERROR_PROGRAM 错误! 库: KEIL:STM32F0XX_DFP 1.4
    发表于 05-11 08:09

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

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

    STVPstm8af6226的Option bytes与Datasheet不符是为什么?

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

    STM8L051的LSI设置,用IAR没法option byte设置LSI-EN怎么解决?

    option byte里面没有LSI-EN选项,是软件问题还是这个芯片有什么制约?我想用LSI作为系统时钟该怎么设置
    发表于 04-26 07:26

    STM32G0x0_OPT.FLM文件怎么MDK工程里使用?

    STM32G0x0_128.FLM文件可以工程里直接添加实现代码的烧录调试,但是STM32G0x0_OPT.FLM不知道如何使用?MDK工程要怎么修改?有例程吗?
    发表于 03-29 06:33

    如何使用OPT_FLM文件实现解除读保护功能?

    MDK工程里debug选项选择烧录的FLM文件就可以下载调试代码,那OPT_FLM文件该怎么工程里使用实现解除读保护功能呢?直接在debug里选择是不行的,求指点
    发表于 03-28 07:11

    使用STM32CubeMX生成的keil文件keil运行时报错的原因?

    使用STM32CubeMX过程,生成的keil文件。 file:///C:/Users/Zhanggp/AppData/Local/Temp/ksohtml11808/wps1.j
    发表于 03-26 07:10

    CN0359例程的程序源码,KEIL编译时startup_ADuCM360.s文件报错的原因?怎么解决?

    CN0359例程的程序源码,KEIL编译时,startup_ADuCM360.s文件报错。
    发表于 01-12 07:08

    keil如何生成bin文件

    Keil是一种集成开发环境(IDE),专为ARM架构的嵌入式系统开发而设计。Keil中生成bin文件是将代码编译并转换为可执行文件的过程。
    的头像 发表于 12-15 13:43 1.1w次阅读

    MEASURE输出文件的排版格式如何调整?

    Hspice可以通过.OPTION MEASFORM来指定排版格式,MEASFORM最大能到4,大于4后返回到MEASFORM=0。设置时选择自己喜欢的就行。我自己喜欢设置为:.
    的头像 发表于 11-30 12:39 957次阅读
    MEASURE输出<b class='flag-5'>文件</b>的排版格式如何调整?

    linux文件访问权限怎么设置

    、权限的类型、权限的表示方法以及如何使用命令来设置文件访问权限。 一、Linux 文件访问权限的背景知识 Linux ,每个
    的头像 发表于 11-23 10:20 1442次阅读