第51章 设置FLASH的读写保护及解除—零死角玩转STM32-F429系列

 

第51章     设置FLASH的读写保护及解除

全套200集视频教程和1000PDF教程请到秉火论坛下载:www.firebbs.cn

野火视频教程优酷观看网址:http://i.youku.com/firege

 

 

 

本章参考资料:《STM32F4xx 中文参考手册》、《STM32F4xx规格书》、库说明文档《stm32f4xx_dsp_stdperiph_lib_um.chm》以及《Proprietary code read-out protection on microcontrollers》。

51.1 选项字节与读写保护

在实际发布的产品中,在STM32芯片的内部FLASH存储了控制程序,如果不作任何保护措施的话,可以使用下载器直接把内部FLASH的内容读取回来,得到binhex文件格式的代码拷贝,别有用心的厂商即可利用该代码文件山寨产品。为此,STM32芯片提供了多种方式保护内部FLASH的程序不被非法读取,但在默认情况下该保护功能是不开启的,若要开启该功能,需要改写内部FLASH选项字节(Option Bytes)中的配置。

51.1.1 选项字节的内容

选项字节是一段特殊的FLASH空间,STM32芯片会根据它的内容进行读写保护、复位电压等配置,选项字节的构成见表 511

511 选项字节的构成

地址

[63:16]

[15:0]

0x1FFF C000

保留

ROP 和用户选项字节 (RDP & USER)

0x1FFF C008

保留

扇区 0 11 的写保护 nWRP

0x1FFE C000

保留

保留

0x1FFE C008

保留

扇区 12 23 的写保护 nWRP

选项字节具体的数据位配置说明见表 512

512 选项字节具体的数据位配置说明

选项字节(字,地址 0x1FFF C000

RDP读保护选项字节。
读保护用于保护 Flash 中存储的软件代码。

15:8

0xAA:级别 0,无保护
其它值:级别 1,存储器读保护(调试功能受限)
0xCC
:级别 2,芯片保护(禁止调试和从 RAM 启动)

USER用户选项字节
此字节用于配置以下功能:
选择看门狗事件:硬件或软件
进入停止模式时产生复位事件
进入待机模式时产生复位事件

7

nRST_STDBY
0
:进入待机模式时产生复位
1
:不产生复位

6

nRST_STOP
0
:进入停止模式时产生复位
1
:不产生复位

5

WDG_SW
0
:硬件看门狗
1
:软件看门狗

4

0x1:未使用

3:2

BOR_LEV BOR 复位级别
这些位包含释放复位信号所需达到的供电电压阈值。
通过对这些位执行写操作,可将新的 BOR 级别值编程到 Flash
00
BOR 级别 3 (VBOR3),复位阈值电压为 2.70 V 3.60 V
01
BOR 级别 2 (VBOR2),复位阈值电压为 2.40 V 2.70 V
10
BOR 级别 1 (VBOR1),复位阈值电压为 2.10 V 2.40 V
11
BOR 关闭 (VBOR0),复位阈值电压为 1.8 V 2.10 V

1:0

0x1:未使用

选项字节(字,地址 0x1FFF C008

15

SPMOD:选择nWPRi位的模式
0
nWPRi位用于写保护(默认)
1
nWPRi位用于代码读出保护(Proprietary code readout protection PCROP)

14

DB1M:设置内部FLASH1MB的产品的双Bank模式
0
:单个Bank的模式
1
:使用两个Bank的模式

13:12

0xF:未使用

nWRP Flash 写保护选项字节。
扇区 0 11 可采用写保护。

11:0

nWRPi (i值为0-11,对应0-11扇区的保护设置)
0
:开启所选扇区的写保护
1
:关闭所选扇区的写保护

选项字节(字,地址 0x1FFE C000

15:0

0xFF:未使用

选项字节(字,地址 0x1FFE C008

15:12

0xF:未使用

nWRP Flash 写保护选项字节。
扇区 12 23 可采用写保护。

11:0

nWRPi
0
:开启扇区 i 的写保护。
1
:关闭扇区 i 的写保护。

我们主要讲解选项字节配置中的RDP

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值