STM32片上Flash内存映射、页面大小、寄存器映射

发布者:书香门第最新更新时间:2020-11-28 来源: eefocus关键字:STM32  片上Flash  内存映射  页面大小  寄存器映射 手机看文章 扫描二维码
随时随地手机看文章

摘要:

    本文以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 


关键字:STM32  片上Flash  内存映射  页面大小  寄存器映射 引用地址:STM32片上Flash内存映射、页面大小、寄存器映射

上一篇:STM32和ROS的串口通信
下一篇:分析TCP/IP协议栈代码之UDP(STM32平台)

推荐阅读最新更新时间:2024-11-10 16:31

STM32定时器周期计算
STM32定时器周期计算 公式是: ((1+TIM_Prescaler )/时钟)*(1+TIM_Period ) F103配置生成1ms的时钟((1+35 )/36M)*(1+999 ) = 1MS TIM_TimeBaseInitTypeDef TIM_TimeBaseStructure; NVIC_InitTypeDef NVIC_InitStructure; TIM_DeInit(TIM5); TIM_TimeBaseStructInit(&TIM_TimeBaseStructure); RCC_APB1PeriphClockCmd(RCC_APB1Periph_TIM5, ENABL
[单片机]
怎样调试STM32硬件错误HardFault
在用 Keil 对STM32的程序进行仿真时程序有时会跑飞,停止仿真程序会停在HardFault_Handler 函数里的死循环while(1)中。 这说明 STM32 出现了硬件错误。 硬件错误中断 STM32出现硬件错误可能有以下原因: 数组越界操作; 内存溢出,访问越界; 堆栈溢出,程序跑飞; 中断处理错误; 遇到这种情况,可以通过以下2种方式来定位到出错代码段。 方法1: 在硬件中断函数HardFault_Handler里的while(1)处打调试断点,程序执行到断点处时点击STOP停止仿真。 示例 在Keil菜单栏点击View——Registers Window,在寄存器查看窗口查找R14(LR)的值。 如果R14(
[单片机]
怎样调试<font color='red'>STM32</font>硬件错误HardFault
初学STM32及GPIO入门之流水灯
一.准备工作---建立一个keil工程 STEP1. 打开keil,选择project-new uvision project,建立一个LED工程 STEP2. 在工程文件保存的路径下新建以下文件夹,在官网上或其他渠道下载STM32的3.5版库,将inc 和scr文件夹放入fwlib中。将startup_stm32f10x_hd.s放入asm文件夹中。将库文件放入cmsis中。 STEP3. 在keil中分别新建 【startcode】【user】【fwlib】【cmsis】四个组,再按照下图所示将C文件加入组中。这里要注意的是组里面添加的都是汇编文件和C文件,头文件不需要添加。 STEP4. 为了更好的理清各项文
[单片机]
初学<font color='red'>STM32</font>及GPIO入门之流水灯
STM32单片机-汇编指令2
目录: 11、STMFD和LDMFD指令 1)STMFD SP! ,{R0-R7,LR} 2)LDMFD SP! ,{R0-R7,LR} 99、伪指令 1)PROC伪指令 2)EXPORT伪指令 3)IMPORT伪指令 4)DCD与DCDU伪指令 5)ALIGN伪指令 6)AREA伪指令 7)SPACE和DCD伪指令的区别 8)ENTRY伪指令 ----------------------------------------- 说明: STM32单片机-汇编指令使用1 STM32单片机-汇编指令使用2 ------------------------------
[单片机]
<font color='red'>STM32</font>单片机-汇编指令2
stm32 SCB->AIRCR 寄存器和中断优先级寄存器使用理解
参考: Cortex M3权威指南(中文).pdf STM32F4xx中文参考手册.pdf STM32F4开发指南-寄存器版本_V1.1.pdf https://blog.csdn.net/rng_uzi_/article/details/90762767 记住:抢占和响应的值越小级别越高。 首先stm32的中断有240个,中断优先级分两级抢占和响应。两种级别,规则如下,需要记住 高抢占可以打断低抢占 高响应不能打断低响应(同一抢占级,处理内部的优先级) 中断7:抢占:2响应:0 中断3:抢占:2响应:1 同抢占级别,同时发生中断,响应级别的高先执行,(不是打断) 中断6:抢占:3
[单片机]
<font color='red'>stm32</font> SCB->AIRCR <font color='red'>寄存器</font>和中断优先级<font color='red'>寄存器</font>使用理解
DSP进行浮点快速傅立叶变换剖析
前言 本文目的是演示如何使用STM32F30x 内部的DSP 进行浮点快速傅立叶变换(FFT),为联系实际应用,使用ADC 对波形发生器进行ADC 采样,然后对ADC 采样结果进行FFT, 与 Matlab 仿真结果进行比较察看最终结果的准确性。会使用到ARMDSP 库文件,以及STM32F30x 的浮点运算单元以及DSP指令等。 模拟ADC采样数据实现FFT 使用Matlab生成AM调制波形 波形公式为:AM_50= sin(2πfc)*(1+50%*sin(2πfm)), 其中fc 为载波频率,fm 为调制波频率,调制比50%。为了使用ADC 采样,将波形进行偏移处理,叠加1.5V 电压,最终波形展开公式如下: AM_50
[单片机]
DSP进行浮点快速傅立叶变换剖析
意法半导体新演示板帮助先进工业和消费电子厂商加快双电机设计
高集成度电机控制器STSPIN32G4依托STM32生态系统加快产品开发周期 2024年5月31日,中国- 意法半导体的EVSPIN32G4-DUAL演示板只用一个高集成度电机驱动器STSPIN32G4就能控制两台电机运转,加快产品开发周期,简化PCB电路板设计,降低物料成本。 EVSPIN32G4-DUAL电路板可以缩短机器人、多轴工厂自动化系统、园林设备、电动工具等先进工业设备和消费产品的研发周期,缩短产品上市时间 。STSPIN32G4电机控制器内置的Arm®Cortex®-M4微控制器(MCU)能够同时控制两个电机,实时执行矢量控制(FOC)等复杂算法。此外,MCU外设还支持有传感器或无传感器的FOC算法,
[工业控制]
意法半导体新演示板帮助先进工业和消费电子厂商加快双电机设计
STM32定时器的输入滤波机制
STM32的定时器输入通道都有一个滤波单元,分别位于每个输入通路上(下图中的黄色框)和外部触发输入通路上(下图中的兰色框),它们的作用是滤除输入信号上的高频干扰。 具体操作原理如下: 在TIMx_CR1中的CKD 可以由用户设置对输入信号的采样频率基准,有三种选择: 1)采样频率基准fDTS=定时器输入频率fCK_INT 2)采样频率基准fDTS=定时器输入频率fCK_INT/2 3)采样频率基准fDTS=定时器输入频率fCK_INT/4 然后使用上述频率作为基准对输入信号进行采样,当连续采样到N次个有效电平时,认为一次有效的输入电平。 实际的采样频率和采样次数可以由用户程序根据需要选择;外部触发输入通道的滤波参数
[模拟电子]
<font color='red'>STM32</font>定时器的输入滤波机制
小广播
设计资源 培训 开发板 精华推荐

最新单片机文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

换一换 更多 相关热搜器件
随便看看

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved