硬件平台: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 datasheet.pdf中3.1-3.9节的详细介绍:)
上一篇:在Mac OS X中使用VIM开发STM32(2)
下一篇:在Mac OS X中使用VIM开发STM32(1)
推荐帖子
- 求海思车载DVR方案
- 各位大神,现需要一套海思3520车载DVR方案,4/6/8路录像,带4G传输,有渠道的请联系我,可以合作。18823337249求海思车载DVR方案顶一下支持一下求可以与我联系,,, 如方便请加我微信,谢谢了
- zoezou 汽车电子
- ARM知识分享-i.MX6Q GPIO复用修改方法
- 平台:OKMX6Q-S2系统:Linux内核版本:Linux-3.0.35i.MX6QGPIO复用修改方法,验证平台为飞凌嵌入式OKMX6Q-S2开发板,基于ARMCorte-A9架构,i.MX6Q四核处理器,其它平台可参考使用。本次修改将原SD卡功能占用的部分引脚释放,复用为GPIO。具体的GPIO号需要参考i.MX6CPU手册(IMX6DQRM.pdf)的第四章,Chapter4ExternalSignalsandPinMultiplexing。i
- forlinx2013 嵌入式系统
- 关于SD卡的读写速度
- 不知道大家有没有做过SD的,它的最大读写速度怎么样呢,我在用读一个10G的SD卡时需要的时间特别长!关于SD卡的读写速度看你用什么读了.单片机?ARM?FPGA,读卡器??跟你读写的时序速度有关吧?最好做成文件系统,象FAT32这样的,如果一个字节字节的读,速度可想而知,而且你也没必要把10G的数据全部读出来,再说你也没那么大内存,当你需要什么数据的时候才去读取分,这样也做是不是好些??10G的SD卡读写需要的时间比如:用STM32来说吧!它的速度能到多少呢?
- daicheng 嵌入式系统
- MSP430之解错篇
- 【记住】接口别忘设置!1、设置IAR软件Tab键缩进字符个数方法:Tools-Options-Editor-TabSize,按习惯改后面数字.2、Error:UndefinedexternalLcdInitreferredinmain(E:\MSP430\UDP\Debug\Obj\main.r43)原因:工程中有多个.c文件,但不在工程中.解决:把.c文件加到工程里。3、Error:EntryReadingDatainmoduleD
- fish001 微控制器 MCU
- 求串联型稳压电路的工作原理、有图
- 图就是这个、求大神帮忙分析下、这图的工作原理!!求串联型稳压电路的工作原理、有图这种电路虽然简单,但要说原理,也不说一句话能说完的。给个地址,,好好看看http://wenku.baidu.com/view/08ac34d149649b6648d7472e.html楼主电路是错的,Q3的CE反了,另外滤波电容的容量太小。哈哈,是啊,滤波电容100pF,太小了。是不是楼主忘了修改参数标注?
- 醒在寂静的夜 电源技术
- EEWORLD大学堂----熟练掌握高压 MOSFET/IGBT 栅极驱动设计
- 作为一名DIY电子爱好者,好的资料与资源就是最好的良师,感谢。
- hi5 电源技术
设计资源 培训 开发板 精华推荐
- 基于GD32E231的贪吃蛇小游戏
- 50PINRGB转反客科技40PINRGB
- LTC2195CUKG、16 位、125Msps 低功耗双通道 ADC 的典型应用
- 使用 Diodes Incorporated 的 PI3EQX7742ST 的参考设计
- ADR395B 5 Vout 微功率、低噪声精密电压基准的典型应用
- TS39103CP533 RO 1A、3.3V超低压差多功能稳压器典型应用电路
- CN0305
- ZXSC400 LED 驱动升压转换器的典型应用
- LT1952EGN-1 36V 至 72V 输入至 12V 在 20A 无(光耦合器)同步总线转换器的典型应用电路
- AM6TW-2418SH35Z 18V 6瓦单路输出DC-DC转换器的典型应用