- 浏览: 496738 次
- 性别:
- 来自: 北京
文章分类
最新评论
-
xouou_53320:
不明觉厉啊
蛇形走线有什么作用 -
Jathon_hs:
anlx27 写道Jathon_hs 写道不错, lz很有钻研 ...
关于暴风影音的广告问题& .dll文件 -
yaoyuande01:
因为我电脑里装的一直是很早版本的暴风。所以一直没有广告……呵呵 ...
关于暴风影音的广告问题& .dll文件 -
anlx27:
zhoutaomtv 写道LS的钻研精神值得称赞,虽然我已经很 ...
关于暴风影音的广告问题& .dll文件 -
zhoutaomtv:
LS的钻研精神值得称赞,虽然我已经很久不用暴风了,一直使用KM ...
关于暴风影音的广告问题& .dll文件
问题:
1 什么是存储器映射?是怎么一个运作过程?
2 stm32总体架构
3 CM3内核结构
觉得下面这篇文章写得很精彩,转来收藏,和大家分享~
以下转自:http://blog.sina.com.cn/s/blog_6a31d1060100ua9v.html
1 STM32系统结构
要想深刻理解STM32的存储器,需要首先知道STM32的系统结构。
如Figure 1,是STM32系统结构框图。
根据STM32 Reference manual (RM0008)中的描述,如图:
可以得知STM32系统结构的组成,每一个模块更为详细的内容,请参考相关文档。
RM0008文档中可以看出,STM32采用的是Cortex-M3内核,因此,有必要了解Cortex-M3的存储器结构。
图中还可以看出,Cortex-M3是通过各个总线和Flash、SROM相连接的。
2 STM32内核(Cortex-M3)的结构
以下是Cortex-M3模块框图:
该Cortex-M3内核通过I-Code、D-Code、System总线与STM32内部的Flash、SROM相连接的,该种连接情况直接关系到STM32存储器的结构组织;也就是说,Cortex-M3的存储器结构决定了STM32的存储器结构。
这里可能说的比较笼统,可以这样理解:Cortex-M3是一个内核,自身定义了一个存储器结构,ST公司按照Cortex-M3的这个存储器定义,设计出了自己的存储器结构;但是ST公司的STM32的存储器结构必须按照Cortex-M3这个定义的存储器结构来进行设计。
举个例子:
我买了一个做饭的调料盒子,有三块区域(假设存储器分为3块),上面分别标有盐(Flash)、糖(SROM)、味精(Peripheral);此时,该调料盒子并没有任何意义(对应Cortex-M3内核);我按照标签放入特定品牌、特定分量的盐(Flash)、糖(SROM)、味精(Peripheral),产生一个有实际意义的调料盒(各类Cortex-M3内核的芯片,如STM32)。
期间,调料位置不能放错,但可以不放。由上面的例子可以看出,空的调料盒子决定了有意义的调料盒子存放调料的结构。因此,只要了解空盒子的存储结构,就可以很清楚的明白当有调料时的用法了。
3 STM32内核(Cortex-M3)的存储器映射
存储器映射是指把芯片中或芯片外的FLASH,RAM,外设,BOOTBLOCK等进行统一编址。即用地址来表示对象。这个地址绝大多数是由厂家规定好的,用户只能用而不能改。用户只能在挂外部RAM或FLASH的情况下可进行自定义。
如图,是Cortex-M3存储器映射结构图。
Cortex-M3是32位的内核,因此其PC指针可以指向2^32=4G的地址空间,也就是0x0000_0000——0xFFFF_FFFF这一大块空间。
好,根据图中描述,Cortex-M3内核将0x0000_0000——0xFFFF_FFFF这块4G大小的空间分成8大块:代码、SRAM、外设、外部RAM、外部设备、专用外设总线-内部、专用外设总线-外部、特定厂商等。导致了,使用该内核的设计者必须按照这个进行各自芯片的存储器结构设计。
这就可以去了解STM32的存储器结构,以及为什么这样设计STM32存储器的结构了。
4 STM32存储器结构
首先,我们对比一下Cortex-M3存储器结构和STM32存储器结构:
图中可以很清晰的看到,STM32的存储器结构和Cortex-M3的很相似,不同的是,STM32加入了很多实际的东西,如:Flash、SRAM等。只有加入了这些东西,才能成为一个拥有实际意义的、可以工作的处理芯片——STM32。
STM32的存储器地址空间被划分为大小相等的8块区域,每块区域大小为512MB。
对STM32存储器知识的掌握,实际上就是对Flash和SRAM这两个区域知识的掌握。因此,下面将重点描述Flash和SRAM的知识。
5 STM32的SRAM
以下是STM32参考手册RM0008中的一段原话:
不同类型的STM32单片机的SRAM大小是不一样的,但是他们的起始地址都是0x2000 0000,终止地址都是0x2000 0000+其固定的容量大小。
SRAM的理解比较简单,其作用是用来存取各种动态的输入输出数据、中间计算结果以及与外部存储器交换的数据和暂存数据。设备断电后,SRAM中存储的数据就会丢失。
6 STM32的Flash
STM32的Flash,严格说,应该是Flash模块。
该Flash模块包括:Flash主存储区(Main memory)、Flash信息区(Information block),以及Flash存储接口寄存器区(Flash memory interface)。
三个组成部分分别在0x0000 0000——0xFFFF FFFF不同的区域,如图(小密度的STM32)所示:
图中完全可以看出Flash模块中的三个组成部分在整个存储器中的位置。
具体的内部区域的意义及功能请参见编程手册PM0042,里面很详细。
7 STM32存储器结构总结
图中淡蓝色就是你需要知道的。
Peripherals:外设的存储器映射,对该区域操作,就是对相应的外设进行操作;
SRAM:运行时临时存放代码的地方;
Flash:存放代码的地方;
System Memory:STM32出厂时自带的你只能使用,不能写或擦除;
Option Bytes:可以按照用户的需要进行配置(如配置看门狗为硬件实现还是软件实现);
今后,你的编写代码、程序运行、寄存器设置、ICP、IAP都依靠这些东西。
以上描述的是STM32存储器的结构相关,其具体存储器的应用在我的下一篇笔记《STM32存储器知识的相关应用(IAP和Bit Banding)》中详细描述。
至此,关于《STM32存储器》知识已经结束.
完成STM32存储器知识过程中,一共参考了以下官方文档:
《RM0008 Reference manual》
《Cortex-M3技术参考手册》
《PM0042 Programming manual:STM32F10xxx Flash programming》
《AN2557 Application note:STM32F10x in-application programming using the USART》
等等;
另外也参考了很多无私网友的奉献,在此感谢。
关于我的STM32存储器知识共有三篇文章,分别是:
《stm32的存储器》
《STM32存储器知识的相关应用(IAP、Bit Banding)》
《STM32实现IAP(上位机和IAP程序设计)》
如果有需要另外两篇篇笔记,可以联系我:kongst@163.com
如果有不足、需要改进的地方,请联系我:kongst@163.com
谢谢!
发表评论
-
STM32L15x 系列 和STM32F10x 系列不同 之 时钟系统
2012-07-17 19:46 2580STM32L15x 系列 和STM32F10x 系列在 ... -
ALIENTEK MINISTM32 实验12 待机唤醒实验 实际测量
2012-07-12 13:47 1772ALIENTEK MINISTM32 实验12 待机 ... -
stm32L系列简介问答
2012-07-10 17:44 9289STM32L特性 [问] 请问STM32L与STM32的 ... -
stm32 keilMDK 一些编程习惯
2012-07-05 13:35 2216作为初学者,在keilMDK使用过时,编译通过但经常 ... -
PORTD ^= (1<<5)逻辑操作在单片机中作用
2012-07-04 09:37 3107PORTD ^=(1<<5); 等效于 PORTD ... -
Keil MDK中的Code, RO-data , RW-data, ZI-data分别代表什么意思?(转)
2012-07-03 16:36 66908一 基础知识 字节 8位半字 16位字 32位 ... -
stm32按键不同时长选择不同函数入口
2012-07-02 11:07 2585主要功能描述: stm32 中通过按键按下不同 ... -
按键(键盘)消抖
2012-06-20 18:18 6495按键电路:下图是神舟三号stm32开发板中的按键原理图。由图可 ... -
stm32 将LED1的状态反转
2012-06-14 18:16 2395//将LED1的状态反转 GPIO_Wri ... -
stm32 检测到按键按下 灯亮 否则灯不亮
2012-06-11 11:54 4673/****************************** ... -
stm32时钟配置
2012-06-11 10:54 2758stm32的时钟比51种类多,在这归纳总结 一 stm ... -
stm32 编译Error: L6218E: Undefined symbol Led_Turn_on_1 (referred from module.o)
2012-06-08 15:00 5838FPLOCK_V1.axf: Error: L6218E: U ... -
stm32 GPIO配置以及什么时候用 GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IPU;
2012-06-07 17:51 15497问题一:配置GPIO的步骤 现在做一个最简单的GPIO ... -
什么时候需要用到RCC_APB2Periph_AFIO--复用IO时钟的使用
2012-06-07 16:18 25777转自地址:http://hi.baidu.com/xiaoyu ... -
stm32 void HardFaultException(void)
2012-06-06 11:08 2499今天调试的时候突然发现程序总是抛出这个异常 void ... -
stm32 keil MDK在线调试报错 Error: Flash download failed-"Cortex-M3"
2012-06-05 10:35 32450一 目的 装好keil MDK 想用 在 ... -
STM32 SPI 主模式下配置(神州三号开发板spi.c解析上)
2012-06-01 18:41 8374#include "spi.h" #in ... -
stm32 组号定义GPIO
2012-06-01 15:12 1615遇见这样一行代码 #define PIN_LEARN ... -
搞清 stm32 SPI总线 基础和编程(转)
2012-05-31 18:59 17774现在flash那部分还没看明白 但感觉这挺好的,所以转来~ ... -
神州三号开发板stm32 f103ze jlink连接失败拜求高手指点
2012-05-29 14:52 3083操作系统: win xp sp3 仿 真 器: jl ...
相关推荐
stm32入门教程,待续中,使用最好的开发软件IAR为教学软件,非常不错,待续中……
- **STM32F2存储器映射实现**: - 根据具体型号,STM32F2提供了不同的内存配置选项,满足不同应用的需求。 - 通过合理的内存布局,可以显著提升应用程序的性能。 #### 五、片上SRAM - **系统SRAM**: - 属于1.2...
存储器映射是指将CPU可访问的内存区域分配给特定硬件资源的过程,如处理器寄存器、外设接口以及数据和代码存储空间。在这个文档“ARM的存储器映射与存储器重映射.doc”中,我们将深入探讨这一主题,特别是针对LPC...
在研究STM32F10x参考手册时,存储器和总线架构是一个重要的内容部分,它详细描述了处理器内部的存储组织结构、总线接口、以及它们如何协同工作以执行高效的程序代码。 系统构架部分主要介绍了STM32F10x的核心组件...
STM32 储存器映射整理 有问题的修改后上传告诉我 还不太全 慢慢弄完 一起把他完善起来 我也刚入门时间不长 有问题的q我,一起讨论一起进步,我觉得这样整理出来比较清楚,一目了然,帮助理解
Cortex™-M4F存储器映射包括两个位段区域。这些区域将存储器别名区域中的每个字映射到存储器位段区域中的相应位。在别名区域写入字时,相当于对位段区域的目标位执行读-修改-写操作。 自举配置 BOOT0为专用引脚...
为了更深入地理解STM32的存储器映射,我们可以通过以下几点进行详细说明: 1. **代码区(Code Segment)**: - **地址范围**:0x00000000 ~ 0x1FFFFFFF,共512KB的地址空间。 - **功能**:该区域主要用于存放程序...
### STM32内部结构及其时钟系统解析 ...通过对Cortex-M3内核结构、存储器映射以及STM32存储器和时钟系统的详细了解,我们可以更好地理解和利用STM32的强大功能,为嵌入式系统的开发打下坚实的基础。
接下来,关于存储空间和存储器映射,STM32F2的存储器包括片上SRAM和片上闪存。片上SRAM(静态随机存取存储器)提供高速、易用的内存,是运行代码的理想选择。根据具体型号的不同,STM32F2系列微控制器拥有不同大小的...
QSPI(Quad Serial Peripheral Interface)是STM32扩展外部存储器的一种高速接口,用于连接Flash等外部存储设备。在STM32上使用TouchGFX并进行QSPI内存映射,是为了优化程序的运行速度和内存管理。 首先,我们要...
STM32的存储器映射使得外设寄存器可以直接与特定地址空间对应,这为DMA操作提供了便利。 DMA控制器在STM32中通常有多个通道,每个通道可以独立设置,用于处理不同类型的数据传输任务。例如,通道可能被配置为从ADC...
手册中不仅介绍了微控制器的系统架构、存储器组织结构、存储器映射、嵌入式Flash接口、CRC计算单元、电源控制器等核心组件,还提供了相关寄存器的详细描述。 系统架构部分介绍了STM32F4微控制器的整体结构,包括多...
STM32F40xxx系列、STM32F41xxx系列、STM32F42xxx系列和STM32F43xxx系列微控制器,各自的型号如STM32F405xx、STM32F415xx、STM32F427xx和STM32F437xx等都具备不同的特性,但共同构成了STM32F4系列。 本参考手册旨在...
本应用笔记对如何使用STM32F2xx 和STM32F4xx 系列直接存储器访问控制器(DMA)进行了说明。STM32F2xx/F4xx DMA 控制器所具有的系统架构、多层总线矩阵和存储系统等,使其能够为应用提供很高的数据带宽,让用户可以...
根据提供的文件内容,我们可以提取出有关STM32F407微控制器的详细知识点,这些知识点涵盖了微控制器的内存组织结构、嵌入式Flash接口、CRC计算单元以及电源控制器等方面。以下是知识点的详细说明: 1. STM32F407...
8. STM32F20x和STM32F21x系列微控制器的内存组织和存储器映射 内存组织介绍了嵌入式SRAM和Flash内存的结构。存储器映射则描述了内部存储器的地址映射情况。 STM32F2系列参考手册详细解释了如何使用库函数来操作微...
存储器映射是STM32设计的关键特性之一。它将硬件外设的地址空间与程序代码和数据存储区相结合,使得可以直接通过内存地址来访问和控制外设。例如,STM32的GPIO端口就是通过特定的内存地址进行读写操作来控制的。 ...
4. 存储映射:在STM32H7中,可以开启内存映射功能,将W25qxx的部分或全部地址空间映射到MCU的地址空间,实现直接访问。这需要在系统初始化时配置内存映射表,并确保地址冲突不会发生。 对于STM32H7B0VBT6这个特定的...
STM32F4xx系列中文参考手册主要介绍了基于ARM内核的32位高级微控制器STM32F40xxx、STM32F41xxx、STM32F42xxx、STM32F43xxx的详细信息。这些微控制器是意法半导体生产的高性能、功能丰富的产品系列,它们具有不同的...
STM32F429微控制器是ST公司生产的一款高性能的ARM Cortex-M4核心微控制器,它支持通过外部存储器接口(FMC)外扩SDRAM,以满足更大的内存需求。在使用STM32F429外扩SDRAM运行程序时,需要掌握一些关键的技术点和方法...