存储器映射
1. 嵌入式系统中的存储器映射是怎么回事,为什么要映射
我是这样理解的:
存储器空间是和硬件相关联的,可以对某些地址上写数据来控制硬件,为了方便使用(总不可能都用地址来直接控制,那样就工作量就太大了),将这些地址赋予了一些变量名,通过变量名来控制硬件(也就是寄存器的概念)。
2. dsp中有句话”存储器映射寄存器”是什么意思
dsp中有句话“存储器映射寄存器”,英语是
memory
mapped
register
不过这个东西并非dsp独有,单片机和其他32位嵌入式控制器都有此概念。
需要注意的是英语的表述,其实汉语的翻译是有些问题的。memory
mapped
是用来形容register的。因此,正确的翻译应该是-存储器映射的寄存器。一字之差,就有很大区别。因为”存储器映射寄存器“让人感觉是一种操作,象一个动词。其实应该是一个名词,就是一个寄存器,只是这个寄存器的地址被存储器映射了。
首先是寄存器的概念,寄存器不是存储器(内存),存储器是指通用的ram,寄存器则是有专门用途的
映射存储寄存器
ram。寄存器不能随便写数据。同时位置(硬件上)与通用的ram(存储器)不在一起。
存储器映射,就是把存储器的地址给寄存器用,你要找这个寄存器,就用这个存储器地址,然后单片机会帮你”映射“到你想找的寄存器。
物理上这个寄存器不属于内存(memory),但在逻辑地址上它属于内存。这样做的好处应该是能够用要使用访问内存的指令访问寄存器,使操作方式多样化,同时整个存储系统的地址也相对统一。
3. 什么是寄存器映射
什么是存储器映射?
存储器本身不具有地址信息,它的地址是由芯片厂商或用户分配,给物理存储器分配逻辑地址的过程就称为存储器映射,通过这些逻辑地址就可以访问到相应的存储器的物理存储单元。如果给存储器再分配一个地址就叫存储器重映射。
内存分配:
如STM32,对于片上外设,它们以四个字节为一个单元,共32bit,每一个单元对应不同的功能,当我们控制这些单元时就可以驱动外设工作。我们可以找到每个单元的起始地址,然后通过C语言指针的操作方式来访问这些单元,如果每次都是通过这种地址的方式来访问,不仅不好记忆还容易出错,这时我们可以根据每个单元功能的不同,以功能为名给这个内存单元取一个别名,这个别名就是我们经常说的寄存器,这个给已经分配好地址的有特定功能的内存单元取别名的过程就叫寄存器映射。
STM32F103Z把4GB的内存空间分为8各部分,每一个部分都是是512MB。每个部分都有自己的功能。
比如我们单片机里的Flash存储器在分组block0里面,单片机里的SRAM存储器在分组Block1里面(64KB)。
外设寄存器结构体定义仅仅是一个定义,要想实现给这个结构体赋值就达到操作寄存器的效果,我们还需要找到该寄存器的地址,就把寄存器地址跟结构体的地址对应起来。
如何访问STM32寄存器内容?
寄存器就是一些有特定功能的内存单元,所以我们访问stm32寄存器就是操作stm32的内存单元。我们可以用C语言的指针来stm32的内存单元。
总线:
上面是stm32里面的3根总线,总线基地址是总线的初地址,相对外设基地址的偏移是当前总线距离上一根总线的距离地址大小也就是上跟总线所占的地址的大小。
4. 什么 存储器映像
这个是查到的一段对存储器映射文件的原文:
When a program's file image (that is ,an .exe or a DLL file)on the hard disk is used as the physical storage for a region of address space, it is called a memory-mapped file.When an .exe or a DLL is loaded, the system automatically reserves a region of address space and maps the file's image to this region.
当程序没有被运行或者加载的时候,它是以文件的形式存放在硬盘上的。当它被加载的时候,系统会自动从内存中划分出一段区域,用来将这个磁盘上的文件映射到内存相应的位置上。此时这块内存中的数据就是磁盘文件的一个拷贝。这段内存空间是和刚才的磁盘文件相关联的,因此对这段内存进行数据修改,也相当于在磁盘文件上做了修改。这一技术已经在WIN32下被广泛使用,比如你可以用磁盘映射文件技术进行相应的磁盘文件操作。
我认为,文件是具体存放在磁盘上的数据或者代码。
文件映像,是指和被加载的磁盘文件相对应的一块内存区域。
5. LPC2210有几种存储器映射模式
1、boot block 模式;2、用户片内FLASH模式;3、用户片内RAM模式;4、用户外部存储模式。
6. 如何实现存储器的重新映射控制
要看具体的数字。C4是表示硬盘在自我修复,它提供一个修复的次数。修好修不好都会增加次数。光看这个有没有是没意义的,要看多大,有没有警告等。用hdtune来看,别用鲁大师,太含糊。
7. 单片机程序存储器中的地址映射
单片机和ARM处理器不一样,不支持MMU,有些ARM也不支持,所以不可以映射。
而且映射一般是指RAM映射,不清楚为什么是程序存储器映射。希望能再详细说明下。
8. 什么是存储器映射
通过赋予每个任务不同的虚拟–物理地址转换映射,支持不同任务之间的保护。地址转换函数在每一个任务中定义,在一个任务中的虚拟地址空间映射到物理内存的一个部分,而另一个任务的虚拟地址空间映射到物理存储器中的另外区域。...
9. 单片机内存映射是什么意思为什么会出现映射这么一个概念它有什么作用和功能
AVR、PIC单片机都会遇到这个东东,与51不同,AVR等单片机的寄存器在使用过程中实地址是数据存储器地址,也就是映射到数据存储器地址当中,他们没有专门的地址。
10. 计算机组成原理,存储器直接地址映射问题求解
先说后者512K×16的,在理解这个问题的时候,你可以把存储器想象成一个有512K个房间,每个房间有16人间的大楼,这样512K即表示CPU能访问521K个地址,而每个地址所指向的存储单元(房间)是16位,即16bits,或者说512K×16表示的是存储器的容量是521K个字(不是字节);理解了这个之后,再看512KB,就是指存储器有512K个存储单元,每个存储单元为8位,即一个字节(这里的B应理解为Byte,而不是Bit)