STM32F1内部FLASH组成和访问

闪存存储器由主存储块、信息块、闪存存储器接口寄存器组成:

1、主存储器:

  • 用来存放代码和数据常数(如 const 类型的数据)。起始地址是 0X08000000, B0,B1都接GND的时候就是从0x08000000开始运行代码的。
2、信息块:
  • 系统存储器,用于存储 ST 自带的启动程序,串口下载代码,当B0接V3.3,B1接GND时,运行的就是这部分代码。
  • 选择字节,则一般用于配置写保护、读保护等功能。
  • 对于小容量、中容量和大容量的产品而言,可以通过USART1接口启用自举程序。
    对于互联型产品而言,可以通过以下某个接口启用自举程序:USART1USART2(重映像的)CAN2(重映像的)USB OTG全速接口的设备模式(通过设备固件更新DFU协议)

3、闪存存储器接口寄存器:

  • 该部分用于控制闪存读写等,是整个闪存模块的控制机构。

 

启动模式和区域:

STM32F1内部FLASH组成和访问

  • 从主闪存存储器启动:主闪存存储器被映射到启动空间(0x0000 0000),但仍然能够在它原有的地址(0x0800 0000)访问它,即闪存存储器的内容可以在两个地址区域访问,0x0000000或0x0800 0000
  • 从系统存储器启动:系统存储器被映射到启动空间(0x0000 0000),但仍然能够在它原有的地址(互联型产品原有地址为0x1FFF B000,其它产品原有地址为0x1FFF F000)访问它。
  • 从内置SRAM启动:只能在0x2000 0000开始的地址区访问SRAM
 
主存储块容量:
  • 小容量产品主存储块最大为4K×64位,每个存储块划分为321K字节的页(见表2)
  • 中容量产品主存储块最大为16K×64位,每个存储块划分为1281K字节的页(见表3)
  • 大容量产品主存储块最大为64K×64位,每个存储块划分为2562K字节的页(见表4)
  • 互联型产品主存储块最大为32K×64位,每个存储块划分为1282K字节的页(见表5)
信息块容量:
互联型产品有2360×64(见表5)
其它产品有258×64(见表2 30/754 、表3、表4)
 
 
─闪存存储器接口的特性为:
● 带预取缓冲器的读接口(每字为2×64)
● 选择字节加载器
● 闪存编程/擦除操作
● 访问/写保护
 
─编程和擦除闪存:
  • 闪存编程一次可以写入16(半字)
  • 闪存擦除操作可以按页面擦除或完全擦除(全擦除)。全擦除不影响信息块。
  • 为了确保不发生过度编程, 闪存编程和擦除控制器块是由一个固定的时钟控制的。
  • 写操作(编程或擦除)结束时可以触发中断。仅当闪存控制器接口时钟开启时,此中断可以用来从WFI模式退出。

 

附表:

STM32F1内部FLASH组成和访问

 
STM32F1内部FLASH组成和访问
 
STM32F1内部FLASH组成和访问
 
STM32F1内部FLASH组成和访问