闪存存储器由主存储块、信息块、闪存存储器接口寄存器组成: 1、主存储器: 用来存放代码和数据常数(如 const 类型的数据)。起始地址是 0X08000000, B0,B1都接GND的时候就是从0x08000000开始运行代码的。" f: q5 I/ s4 [8 @ 2、信息块:' w5 Y' ]* M) X e, O 系统存储器,用于存储 ST 自带的启动程序,串口下载代码,当B0接V3.3,B1接GND时,运行的就是这部分代码。& p3 U3 V0 c9 ~1 j7 y& u 选择字节,则一般用于配置写保护、读保护等功能。, J6 ]3 k7 s: A 对于小容量、中容量和大容量的产品而言,可以通过 USART1接口启用自举程序。 对于互联型产品而言,可以通过以下某个接口启用自举程序: USART1 、 USART2( 重映像的) 、 CAN2( 重映像的 ) 或 USB OTG 全速接口的设备模式 ( 通过设备固件更新 DFU 协议 ) 。3 p! m- S( l! A. A o' {) P6 | 3、闪存存储器接口寄存器:8 |$ J4 K. F+ W( ^+ n 该部分用于控制闪存读写等,是整个闪存模块的控制机构。! q7 N: P$ u: I) K# D1 h8 r o 启动模式和区域: : R4 W' Z& z+ q8 s/ T: M3 p X 从主闪存存储器启动:主闪存存储器被映射到启动空间(0x0000 0000),但仍然能够在它原有的地址(0x0800 0000)访问它,即闪存存储器的内容可以在两个地址区域访问,0x0000000或0x0800 0000。: \ u0 Y# L+ Q; L a+ @ 从系统存储器启动:系统存储器被映射到启动空间(0x0000 0000),但仍然能够在它原有的地址(互联型产品原有地址为0x1FFF B000,其它产品原有地址为0x1FFF F000)访问它。* R! ?) T, J/ {' i2 Q) L 从内置SRAM启动:只能在0x2000 0000开始的地址区访问SRAM。1 X( f; x* m5 h- l2 a 0 D5 O4 _8 v s ─ 主存储块容量:; ]+ y# M6 {' ^$ A 小容量产品主存储块最大为4K×64位,每个存储块划分为32个1K字节的页(见表2)。, p+ a4 A% }9 D" K- M 中容量产品主存储块最大为16K×64位,每个存储块划分为128个1K字节的页(见表3)。2 b% G( F' _$ r( Z4 S. Q 大容量产品主存储块最大为64K×64位,每个存储块划分为256个2K字节的页(见表4)。 互联型产品主存储块最大为32K×64位,每个存储块划分为128个2K字节的页(见表5)。6 a& p! @$ h( c i3 v& M5 u6 d ─ 信息块容量:5 Z) Y) l: @3 U# Y0 O- k 互联型产品有 2360 × 64 位 ( 见表 5) 。3 y# D; w% p/ H, P9 |0 N 其它产品有 258 × 64 位 ( 见表 2 30/754 、表3 、表 4) 。3 s; v' @! W" z3 T) ]1 [ . Z' @% g# H0 |( m4 A" ]4 w ─闪存存储器接口的特性为:, i y* W# _4 a3 n ● 带预取缓冲器的读接口 ( 每字为 2 × 64 位 ) ● 选择字节加载器$ @, u- F: }7 N( H ● 闪存编程 / 擦除操作9 _6 K/ Z$ c0 w$ X0 I ● 访问 / 写保护 7 n1 r4 H! }) m0 Q ─编程和擦除闪存:( f* {6 K1 o6 \3 v 闪存编程一次可以写入16位(半字)。0 c$ ^" F7 }% U+ ]( j4 K* K( n 闪存擦除操作可以按页面擦除或完全擦除(全擦除)。全擦除不影响信息块。3 M0 q# K+ l# k 为了确保不发生过度编程, 闪存编程和擦除控制器块是由一个固定的时钟控制的。0 V3 B9 i& O, V$ f 写操作(编程或擦除)结束时可以触发中断。仅当闪存控制器接口时钟开启时,此中断可以用来从WFI模式退出。! d9 N/ i( w5 l ]# } + I7 V, E. o G! X+ r 附表:, S" S! a% `6 j7 p: i* M7 f 7 m/ T$ c( e. x* N 7 U, j% t- B8 e% j2 B " x' T5 g5 Q" a9 } |
【经验分享】STM32F1和STM32F4 区别
【经验分享】STM32F1系列之常用外设说明
【经验分享】STM32介绍
【经验分享】STM32F1x系列——Flash 模拟 EEPROM
【经验分享】STM32F1在MDK下新建标准库函数工程
【经验分享】stm32f1的存储器与复位
【经验分享】STM32F10X-架构
【经验分享】stm32F1 us延时函数
【经验分享】STM32F1之定时器
【经验分享】【stm32】stm32f1代码中core_cm3、system_stm32f10x、stm32f10x_conf、stm32f10x等文件的作用