STM32F10xxx闪存编程指南

需积分: 5 3 下载量 175 浏览量 更新于2024-07-28 收藏 317KB PDF 举报
"STM32 闪存编程" STM32系列微控制器具有内置的闪存存储器,可用于存储程序代码和其他数据。本手册详细介绍了如何对STM32F101xx、STM32F102xx和STM32F103xx型号的闪存进行编程,这些型号在文中统称为STM32F10xxx。闪存编程有两种主要方式:在线编程(ICP)和在程序中编程(IAP)。 1. **在线编程(ICP)**: ICP是通过JTAG、SWD协议或系统加载程序(Bootloader)来更新闪存内容的方法。这种方法允许快速有效地下载用户应用程序,避免了外部编程设备和连接器的需要。 2. **在程序中编程(IAP)**: IAP则允许用户在程序运行时通过微控制器的通信接口(如I/O端口、USB、CAN、UART、I2C、SPI等)下载程序或数据到闪存中。为了执行IAP,必须先使用ICP将一部分程序烧写到闪存中。 3. **闪存接口**: 闪存接口设计在AHB协议上,采用预取缓存技术加速访问,并包含用于编程和擦除操作的逻辑电路。该接口还支持访问和写入保护,以及对选项字节的控制。 4. **读/写操作**: - **读操作**:包括取指令、D-Code接口和闪存访问控制器。取指令是读取闪存中的数据,D-Code接口处理读取请求,而闪存访问控制器管理闪存的读取过程。 - **编程和擦除**:由闪存编程和擦除控制器(FPEC)负责。FPEC包含键值验证,用于安全编程;解除闪存锁以进行修改;主闪存编程功能用于写入新的数据;擦除功能可以清除整个扇区或整个闪存;选项字节编程允许设置特定的配置参数。 5. **保护机制**: - **读保护**:防止未经授权的读取闪存内容。 - **写保护**:阻止未授权的修改闪存中的数据。 - **选项字节块写保护**:确保选项字节区域的安全,防止意外修改。 6. **选项字节**: 选项字节是闪存的一部分,用来存储配置信息,如启动地址、调试选项、工作电压范围等。它们可以通过编程器或IAP进行编程,并且可以设置特定的保护级别。 STM32F10xxx的闪存编程涉及到多个层次的操作和保护措施,确保了程序的安全性和可更新性。对于开发者来说,理解并熟练掌握这些编程和保护机制是开发基于STM32应用的关键。