STM32 内存空间中的选项字节

STM32的选项字节(Option Bytes)是一组存储在芯片内部独立Flash区域中的特殊配置数据,用于控制芯片的关键硬件特性和安全功能。

一、 选项字节的定义与位置

选项字节是STM32片内Flash信息块的一部分,与用于存储用户程序的主存储块(Main Flash)和存放官方Bootloader的系统存储器(System Memory)分开。它是一个可编程的非易失性存储区域,用户可以根据应用需求进行修改。

其地址因芯片系列和型号而异。例如,在STM32F103中,其基地址定义为 0x1FFFF800。选项字节的内容在每次系统复位时,会被加载到对应的寄存器(如 FLASH_OBRFLASH_WRPR)中生效。

二、 选项字节的核心功能

选项字节主要配置以下几类功能:

  1. 读保护(RDP - Read Protection)

    • 功能:保护主Flash中的程序代码不被通过调试接口(如JTAG/SWD)或从RAM启动的程序非法读取,是防止固件被抄袭的关键手段。
    • 级别
      • 级别0:无保护,默认状态(RDP = 0xAA)。
      • 级别1:使能读保护。启用后,通过调试器无法读取Flash内容;若从级别1降级到级别0,芯片会自动擦除整个主Flash。
      • 级别2 :最高保护级别(RDP = 0xCC)。一旦设置将永久禁用调试接口(JTAG熔断),且无法再降级,程序更新通常需依靠预留的IAP(在应用中编程)接口。
  2. 写保护(WRP - Write Protection)

    • 功能:对主Flash的特定扇区(页)设置写保护,防止内容被意外或恶意擦写。通常用于保护Bootloader或关键数据。
    • 操作:可以按扇区(或成对扇区)进行保护设置。保护状态为"0"表示保护,"1"表示不保护。
  3. 用户配置(USER)

    • 功能 :配置一些硬件行为,主要包括:
      • 看门狗:选择看门狗(IWDG)是上电后硬件使能还是软件使能。
      • 复位配置:配置芯片进入Stop或Standby低功耗模式后是否产生复位。
      • 欠压复位(BOR):配置芯片的欠压复位阈值电平(部分系列)。
  4. 启动配置(BOOT)

    • 功能:与外部BOOT引脚配合,决定芯片的启动源(主Flash、系统存储器、SRAM)。在某些系列(如STM32G系列)中,可以通过选项字节完全配置启动模式,忽略外部引脚状态,从而节省一个IO口。

三、 如何操作选项字节

操作选项字节主要有两种方式:

  1. 使用编程工具 :这是最常用的方法。可以使用ST官方工具如 STM32CubeProgrammerST-LINK Utility 或第三方工具如 J-Flash,通过调试器(ST-LINK, J-Link)连接芯片后进行图形化配置和编程。

  2. 在应用程序中编程:用户可以在自己的代码中调用HAL库或标准外设库函数来修改选项字节。这常用于产品量产时自动启用保护,或实现IAP升级中的配置切换。

    • 基本流程包括:解锁Flash和选项字节、配置参数、编程、最后执行加载或系统复位使新配置生效。

四、 重要注意事项

  1. 复位生效 :修改选项字节后,通常需要执行一次系统复位重新上电,新的配置才会生效。
  2. 操作顺序与影响:在STM32F1等系列中,修改选项字节(如设置读保护)可能会导致其他部分(如写保护设置、用户数据)被恢复为默认值。因此,在需要同时配置多项时,应注意操作的先后顺序,并在操作后重新校验所有配置。
  3. 级别2的永久性RDP级别2(0xCC)的设置是不可逆的,会永久关闭调试接口。设置前务必确认产品后续无需再通过调试器更新程序。
  4. 系列差异:不同STM32系列(如F1, F4, G0, H7)的选项字节地址、位定义和功能可能有所不同,具体操作时应以对应型号的参考手册为准。
相关推荐
v先v关v住v获v取3 小时前
椰子采摘机械臂设计cad9张+三维图+设计说明书
科技·单片机·51单片机
qq_448011164 小时前
嵌入式中IO、GPIO、专用IO
单片机·嵌入式硬件
xingzhemengyou15 小时前
STM32 Boot0 与 Boot1 [当 Flash 被误操作锁死或 SWD/JTAG 无法连接时,很有用]
stm32·单片机·嵌入式硬件
一路往蓝-Anbo6 小时前
【第05期】数据的微观世界 (五) —— 浮点数 vs 定点数:MCU的数学课
linux·stm32·单片机·嵌入式硬件·物联网
polarislove02146 小时前
9.2 自制延迟函数-嵌入式铁头山羊STM32笔记
笔记·stm32·嵌入式硬件
Cincoze-Johnny6 小时前
Windows系统-应用问题全面剖析Ⅳ:德承工控机DV-1000在Windows操作系统下[桌面图标消失]的解决方法
单片机·嵌入式硬件
一路往蓝-Anbo7 小时前
【第14期】裸机中断优先级:抢占与嵌套的逻辑
c语言·开发语言·stm32·单片机·物联网
贪玩成性7 小时前
LED5050驱动程序,高效率
单片机·mcu
d111111111d8 小时前
STM32 电源管理模式全解析:低功耗场景该如何选型?
笔记·stm32·单片机·嵌入式硬件·学习