历史上的今天
返回首页

历史上的今天

今天是:2024年11月28日(星期四)

正在发生

2020年11月28日 | STM32片上Flash内存映射、页面大小、寄存器映射

2020-11-28 来源:eefocus

摘要:

    本文以STM32F103RBT6为例介绍了片上Flash(Embedded Flash)若干问题,包括Flash大小(内存映射)、块大小、页面大小、寄存器。这些知识,有利于写Flash驱动。


一、怎么看Flash大小


1.1 通过型号

    型号会印在MCU表面,可以通过观察获得,我的是STM32F103RBT6(以下分析基于这个型号),对照下图的STM32产品命名,可知STM32F103RBT6的Flash是128KB。


()

图1 Ordering information scheme


1.2 通过数据手册(内存映射)

    也可以通过数据手册得到Flash大小,首先根据型号从官网下得对应的数据手册Datasheet(点这里,输入MCU型号进行检索。STM32F103RB相关的手册都在这:http://www.st.com/internet/mcu/product/164487.jsp),打开找到Memory map这张图,如图2红框所示(图2红框放大即为图3),Flash在内存的映射地址0x0800 0000 ~ 0x0801 FFFF,即大小为128KB。通过该方法也可以了解到片上Flash的内存映射。

图2 Memory map


图3 Memory map中的SRAM和Flash


二、块大小

    对于系统而言,Flash分为片上Flash(Embedded Flash)和外置Flash。通常说,Flash先分块再分页,擦除是按块进行,这样的说法应该只是对外置Flash而言,对于片上Flash即可以按页擦除也可以整块擦除,英文原文如下[2]:


  1. The Flash memory erase operation can be performed at page level or on the whole Flash area (mass-erase). The mass-erase does not affect the information blocks.


三、页面大小

    按1.2的方法下得该MCU的参考手册,STM32F103RBT6对应的参考手册为RM0008 Reference manual,定位到Embedded Flash memory章节(也可以通过搜索0x0800 0000来定位)。STM32有4种Flash module organization,分别是:low-density devices(32KB,1KB/page)、medium-density devices(128KB,1KB/page)、high-density devices(512KB,2KB/page)、connectivity line devices(256KB,2KB/page)、XL-density(devices(1M,2KB/page)。从上面分析可知,STM32F103RBT6的Flash是128KB,可见是medium-density devices,如下图所示:

图4 Flash module organization (medium-density devices)


四、Flash相关寄存器

Flash寄存器在内存的映射如下[1]:

图5 Memory map中的Flash Interface

Flash各寄存器具体地址如下[2]:

图6 Flash memory interface registers of medium-density devices

具体到各寄存器功能,位含义,得参考[3],Flash寄存器映射如下:

图7 Flash register map

五、Information block

Flash中Information block在内存映射如下[1]:

图8 Memory map中的System memory

具体的Flash的Information block地址如下:

图9 Information block of medium-density devices


    System memory包含一段引导程序(当系统从片上Flash启动会用到),Flash出厂后就不能修改,不晓得我理解得对不对,贴出原文如下[3]:


  1. System memory is used to boot the device in System memory boot mode. The area is reserved for use by STMicroelectronics and contains the boot loader which is used to reprogram the Flash memory using the USART1 serial interface. It is programmed by ST when the device is manufactured, and protected against spurious write/erase operations. For further details please refer to AN2606.



    The option bytes are managed by an embedded Flash Program/Erase Controller (FPEC),详情见[3]。


参考资料:

[1] DS5319: Medium-density performance line ARM-based 32-bit MCU with 64 or 128 KB Flash, USB, CAN, 7 timers, 2 ADCs, 9 communication interfaces(数据手册) DS5319.pdf   

[2] RM0008: STM32F101xx, STM32F102xx, STM32F103xx, STM32F105xx and STM32F107xx advanced ARM-based 32-bit MCUs(参考手册)  注:文件尺寸太大,上传不了:-(

[3] PM0075:STM32F10xxx Flash memory microcontrollers(Flash编程手册) PM0075.pdf 


推荐阅读

史海拾趣

EF Johnson Technologies Inc公司的发展小趣事

在电子通信技术的浪潮中,EF Johnson Technologies Inc公司凭借其卓越的研发团队,成功开发出一款新型无线通信设备,该设备在信号稳定性和传输距离上均取得了重大突破。这一技术突破不仅让EF Johnson在市场上获得了显著的竞争优势,也推动了整个行业的技术进步。随着产品的广泛应用,EF Johnson逐渐确立了其在无线通信领域的领先地位。

Crocus Technology公司的发展小趣事

随着技术的不断成熟和市场需求的变化,Crocus Technology开始拓展其产品线。2015年,公司成功推出了首款磁开关产品,这标志着公司在磁传感器领域迈出了重要的一步。随后,公司又陆续推出了位置传感和2D传感器产品,进一步巩固了其在磁传感器市场的地位。

ACP Optoelectronic Technology Co Ltd公司的发展小趣事

ACP Optoelectronic Technology Co Ltd,在创立初期便专注于光电技术的研发。某年,公司研发团队成功开发出一种新型光电传感器,其性能远超当时市场上的同类产品。这一技术突破迅速吸引了行业内的关注,公司因此获得了大量订单,业绩迅速攀升。随着技术的不断完善和市场的不断拓展,ACP Optoelectronic Technology Co Ltd逐渐在光电领域崭露头角。

ept Connectors公司的发展小趣事

随着全球环保意识的不断提高,EPT Connectors公司也开始关注环保和可持续发展问题。公司积极采取各种措施减少生产过程中的污染和浪费,并推出了一系列环保型连接器产品。同时,EPT还积极参与各种环保活动和社会公益事业,以实际行动践行企业的社会责任。这些举措不仅提升了EPT的品牌形象和社会声誉,也为其未来的发展注入了新的动力。

优先(苏州)半导体公司的发展小趣事

东微半导是一家在苏州扎根14余年的半导体公司,致力于自主研发和生产功率半导体核心器件。在充电桩产业快速发展的背景下,东微半导率先量产国内首款自主研发充电桩用功率半导体核心器件,打破了国外厂商的垄断地位。公司经过多年的自主研发,获得了创新结构的高压超级结技术的专利,使MOSFET场效晶体管的电能转换效率提升,具有动态损耗小、发热量低的优点。经客户端实测,整体性能达到了国际一流水平,现已出口至韩国、日本和德国等国际市场。

Cornerstone Sensors公司的发展小趣事

随着技术的成熟和产品的完善,Cornerstone Sensors开始积极拓展市场。公司参加了多个国际电子展会和技术研讨会,与全球各地的潜在客户和合作伙伴建立了联系。凭借卓越的产品性能和专业的技术支持,Cornerstone Sensors赢得了众多客户的信任,并成功打入了国际市场。同时,公司还积极寻求与上下游企业的合作,共同推动传感器技术的发展和应用。

问答坊 | AI 解惑

关于深圳DSP培训

本人具备一定的单片机开发经验现想学习使用C2000系列DSP,应用于UPS设计,请问深圳现在有相应的DSP培训班吗?…

查看全部问答>

有关电源的资料 很全的

本帖最后由 paulhyde 于 2014-9-15 09:39 编辑 这里面是我最近搜到的不少电源的资料 感觉有用的来看看吧  …

查看全部问答>

基于单片机的电动自行车调速系统

如题,这是我毕设的题目哪位大侠给点资料 或者建议啊…

查看全部问答>

请教GPIO设置问题

我现在用的是IXP420芯片,想对GPIO2进行读写操作,来控制LED灯。我向相应的寄存器设置了输出为1,并输出使能,但无法对LED灯进行操作。不知道遗漏了什么,GPIO模式要选择么,我在数据手册上没有找到,如何设置?…

查看全部问答>

怎么通过编程的方式获得Windows CE的QFE的安装情况。

相关的MSDN上已经说了,CEQFECheck.exe操作的是windows目录下的WinCEPB500.ini文件,也看了,但是觉得不足以提供足够的信息。 如何才能判断某个QFE是否安装?或者是列出已经安装的QFE?…

查看全部问答>

頂一下我的編程網吧

頂一下我的編程網吧 www.kingofcoders.com…

查看全部问答>

程序问题求教!

430f2272的程序,不加中断程序运行正常。加一段中断程序后,程序执行很慢,就在下面的初始化程序里出不来了,像是进入了低功耗模式 WDTCTL = WDTPW + WDTHOLD; //stop watchdog timer { volatile int i; for (i=1;i<0xFFFF;i++){} ...…

查看全部问答>

做小车的设计报告<测试方案及测试条件>是什么意思啊

本帖最后由 paulhyde 于 2014-9-15 04:00 编辑 求助。。。。。。。。。。。。。。。。。。。。。。。  …

查看全部问答>

这里有人画过4层板的吗?趁着这国庆期间··我想练习下画4层板啊

漫漫长假不知道干嘛好··哪位大侠有画4层板的电路图呢··给我共享一份吧··小女子在次谢过啦··…

查看全部问答>

LED应用- 白光LED驱动器,带渐进调光功能 & 对TPS61500进行模拟明暗调节

本帖最后由 dontium 于 2015-1-23 13:10 编辑 白光LED驱动器,带渐进调光功能     使用模拟输入信号对 TPS61500 进行模拟明暗调节      TI实用资料,欢迎下载~~~更多请点击:ti.. …

查看全部问答>