完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
硬件平台: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才对吧。 |
|
|
|
只有小组成员才能发言,加入小组>>
调试STM32H750的FMC总线读写PSRAM遇到的问题求解?
1614 浏览 1 评论
X-NUCLEO-IHM08M1板文档中输出电流为15Arms,15Arms是怎么得出来的呢?
1541 浏览 1 评论
970 浏览 2 评论
STM32F030F4 HSI时钟温度测试过不去是怎么回事?
682 浏览 2 评论
ST25R3916能否对ISO15693的标签芯片进行分区域写密码?
1592 浏览 2 评论
1863浏览 9评论
STM32仿真器是选择ST-LINK还是选择J-LINK?各有什么优势啊?
644浏览 4评论
STM32F0_TIM2输出pwm2后OLED变暗或者系统重启是怎么回事?
515浏览 3评论
531浏览 3评论
stm32cubemx生成mdk-arm v4项目文件无法打开是什么原因导致的?
504浏览 3评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-11-21 22:57 , Processed in 0.829176 second(s), Total 77, Slave 60 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号