打印
[应用相关]

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

[复制链接]
511|13
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
IO, TE, TI
1. 引言
实际工程中如果需要对 MCU option bytes 进行修改,可以有以下几种方式:
通过 STLINK-Utility 或是 CubeProgrammer 图形化工具进行配置
通过 ST-LINK_CLI.exe 命令行的方式进行配置
通过应用代码中软件修改寄存器的方式进行配置
以上的方式中前两种都需要脱离
KEIL 或是 IAR 的开发环境进行操作,在实际项目的开发阶段
可以使用,但是到量产阶段由于多了一道工序,增加了成本与出错的风险;通过应用代码软件修
改的方式在一定程度上也是增加了软件的复杂度。
如果客户使用
KEIL 作为软件开发环境,则存在一种更简单的方式, 就是使用 opt.s 文件,采
用该方法可以与应用工程融合在一起,一步完成
option bytes 的配置。  

使用特权

评论回复
沙发
问天少年|  楼主 | 2022-5-5 13:28 | 只看该作者
2. opt.s 文件介绍
Opt.s 文件存在于 KEIL 的开发包中,以 F3 系列 MCU 为例,可以在如下的路径中找到。  

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

使用特权

评论回复
板凳
问天少年|  楼主 | 2022-5-5 14:39 | 只看该作者
3. 通过 opt.s 配置 option bytes
通过 opt.s 修改 option bytes 只能在 KEIL 开发环境下进行, 接下来在 STM32F334R8 的为例
说明。
Step 1:新建或是任意打开一个基于 STM32F334R8 的工程,这里直接使用 CubeMx 例程中
STM32F334R8-Nucleo 下的 GPIO_IOToggle 例程。
Step 2:将 STM32F3xx_OPT.s 添加到功能目录中,如下:  



使用特权

评论回复
地板
问天少年|  楼主 | 2022-5-5 14:40 | 只看该作者
Step 3:双击打开 STM32F3xx_OPT.s 文件, 如下图所示。 KEIL 提供了两种编辑方式, 如果
对.s 文件的编程方式以及 option bytes 变量的每个 bit 都非常熟悉的话,可以直接在 text editor 下
对.s 文件中进行修改;更加简单的方式是直接在 Configuration Wizard 下进行配置。建议采用后面
一种配置方式,更加简单明了。

使用特权

评论回复
5
问天少年|  楼主 | 2022-5-5 14:42 | 只看该作者
Step 4: Configuration Wizard 下修改配置,比如将 RDP 由 level 0 更改为 level 1 并保存修
改,此时可以通过 Text Editor 查看对应的 RDP 的值也变了。  



使用特权

评论回复
6
问天少年|  楼主 | 2022-5-5 14:43 | 只看该作者
Step 5:重新编译工程,可以看到 opt.s 文件被直接编译到应用工程中。  



使用特权

评论回复
7
问天少年|  楼主 | 2022-5-5 14:46 | 只看该作者
Step 6: 将生成的烧录文件直接下载到目标板中。此时需要注意的是,在烧录前一定要将对
应的 Flash options 的烧录算法添加到 Programming Algorithm 中,如下所示,完成后直接连接目
标板进行烧录即可。  


使用特权

评论回复
8
问天少年|  楼主 | 2022-5-5 14:47 | 只看该作者
完成以上的操作后,可以对上述进行的 option bytes 的修改进行验证,这里直接打开
CubeProgrammer 读取目标板的 option bytes,得到的结果如下图所示,可以看到, RDP 的结果
与上述配置一致。  


使用特权

评论回复
9
问天少年|  楼主 | 2022-5-5 14:48 | 只看该作者
4. 小结
通过将 opt.s 文件添加到工程中实现 option bytes 的配置,好处是将配置融合到烧录文件中,
不需要通过其他工具或是在应用代码中去操作
option bytes,简化量产过程中的烧录工序。 但是目
前该方法不是所有的
MCU 型号都适用, 例如对 G4 Bank 系列就存在问题,需要等待官方提供
适合双
Bank option bytes 的烧录算法与 opt.s 文件。  

使用特权

评论回复
10
Jacquetry| | 2022-10-5 21:42 | 只看该作者
好难,没看懂

使用特权

评论回复
11
Uriah| | 2022-10-7 10:14 | 只看该作者

大部分能够读取或者识别Flash上的数据就能够获得Firmware文件

使用特权

评论回复
12
Bblythe| | 2022-10-7 13:13 | 只看该作者

如果在编程时加密锁定位被使能/锁定,就无法用普通编程器直接读取单片机内的程序

使用特权

评论回复
13
Pulitzer| | 2022-10-7 16:12 | 只看该作者

大部分单片机都带有加密锁定位或者加密字节

使用特权

评论回复
14
Clyde011| | 2023-6-1 07:15 | 只看该作者

主定时器为TIM1,通道2配置为PWM输出

使用特权

评论回复
15
万图| | 2023-6-1 09:11 | 只看该作者

主从定时的方式占用CPU资源少

使用特权

评论回复
16
Uriah| | 2023-6-1 10:14 | 只看该作者

主从定时器门控的方式

使用特权

评论回复
17
帛灿灿| | 2023-6-1 12:10 | 只看该作者

中断计数的方式实现简

使用特权

评论回复
18
Bblythe| | 2023-6-1 13:13 | 只看该作者

当PWM频率较高时,频繁的中断将影响程序运行的效率

使用特权

评论回复
19
周半梅| | 2023-6-1 15:09 | 只看该作者

都可以产生指定个数的PWM脉冲

使用特权

评论回复
20
Pulitzer| | 2023-6-1 16:12 | 只看该作者

输出了5个频率为10KHz的PWM脉冲

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

73

主题

532

帖子

1

粉丝