STM32F407 flash内存
来源:互联网 发布:java迷宫小游戏设计 编辑:程序博客网 时间:2024/06/13 09:30
硬件平台:STM32F4 DISCOVERY开发板 型号:MB997A或MB997C
主芯片型号:STM32F405xx, STM32F407xx, STM32F415xx, 或 STM32F417xx
主要参考文档:
(1)PM0081 STM32F40xxx and STM32F41xxx Flash programming manual.pdf
(2)STM32F407 datasheet.pdf
做为嵌入式方面的开发人员,拿到一个芯片后,我们首先看它的参数指标,有多少多少容量的RAM,多少多少容量的Flash。当然,前提是芯片自带这两个模块。
今天我们只研究Flash的结构:)
(一)声明
STM32F405xx, STM32F407xx, STM32F415xx, 和 STM32F417xx的Flash模块都是一样的,所以,我们在文章后面统一以STM32F4代表它们。
(二)概览
首先来一张概览图吧
2.1 Main memory
Main memory部分各个Sector相加最后正合适等于1024Kbyte,这也是与文档开头说的Capacity up to 1 Mbyte相符的。在这个区域里主要是存储我们用户编写的程序,这里你可能看到了,该片存储区地址是从0x08000000开始的,这也就是为什么我们在使用ST-Link2烧写程序的时候,要规定起始地址是0x08000000的原因了。
2.2 System memory
System memory区域是系统保留区,用来在“System memory boot”模式下启动芯片。存储的是一段特殊的程序,叫做bootloader,通过运行此段区域里的程序,可以对Main memory进行重新烧写。举个栗子,如果我们选择以System memory boot模式启动,同时插上了带有系统固件的U盘,那么经过配置后,bootloader就可以读出U盘里的固件,烧写到Main memory区域里去,怎么样,方便吧!也就是说,给芯片重新烧写固件,可以通过USB OTG FS的方式!神奇的功能:)
2.3 OTP area
这段区域更是神奇,OTP是One-time programmable的缩写,从字面上可以看出来,此段区域是一次性编程区。但是,机智的人类也有犯错误的时候,万一写错了怎么办!ST公司考虑到这一点,在从0x1FFF7A00地址开始的16个字节是带有“锁”功能的字节,当你确定OTPx区域写进去的数据确实没有错误了,你就可以对LOCKBx地址写入0x00,从此OTPx区域就没法更改了。
2.4 Option bytes
官方文档应该写错了吧,0x1FFFC000-0x1FFFC00F怎么会是16Kbytes呢?应该是16bytes才对吧。
- STM32F407 flash内存
- STM32F407 - 嵌入式Flash接口
- 【stm32f407】flash编程
- STM32F407 Flash操作笔记
- stm32f207/stm32f407擦除内部flash讲解
- 【stm32f407】基于SRAM的内存管理
- 从内存播放Flash。
- 从内存播放Flash
- 从内存播放Flash。
- 关于FLASH内存清理
- Flash内存优化技巧
- flash 防止内存泄漏
- Flash内存优化
- Flash内存泄露
- Flash内存优化心得
- flash 内存优化
- Flash内存管理心得
- Flash AS3内存优化
- php5.6之php-fpm优化
- 强化练习1:通过编程实现,分别统计0~n有多少个0~9 提示:n通过参数传入
- tensorflow 批量读取csv文件用于做深度学习算法相关
- 我的异常处理笔记2--maven项目找不到符号
- 面向对象
- STM32F407 flash内存
- 排序算法
- 简易版通讯录
- POJ 3692 Kindergarten(二分图最大团)
- hdu 4135(容斥原理)
- 强化练习2:编程实现统计某年某月份的天数
- LCA模版,用倍增的思想
- 51nod 1459 迷宫游戏
- Java超简明入门学习笔记(三)