arm的存储器
① arm中存储器的实际地址是如何确定的是CPU直接分配好的吗
存储器是可以映射成为不同的地址的。
一般来说,ARM处理器由于是32位的,所以可以访问的地址空间为4G。在这些地址空间内,实际的每个物理存储器,可以被映射在任意的地址上。你可以查看所使用的CPU手册来确定,每个存储器是怎么被映射的。下面举个例子说明一下。
ATMEL公司的AT91SAM7S256,ARM7TDMI内核,内部集成256KB Flash和64K SRAM。其中Flash被默认映射在0地址处,也就是说你访问0x0地址访问的就是Flash。但是,Flash还有一个地址:0x100000,你访问这个地址和访问0x0实际上是一个地方。就好比是你家开了两个门一样,入口不同,但是进的地方是一样的。而SRAM则被映射在0x200000地址处。
系统启动后,在MCR寄存器内写入1,这时CPU会调整存储器的映射关系,会把SRAM映射在0x0地址处,也就是说你现在访问0x0实际上访问的是SRAM的0x200000地址。
其他的许多支持外部存储器的(比如带NAND Flash控制和SDRAM控制器的)CPU,都可以把外部存储器映射到4G的地址空间内。它们的说明书绝对会有相对的说明,有一个图,叫地址空间映射表,你一看就明白了。
② arm芯片自身带内存吗
现在嵌入式的发展已经很好了,arm里面有内存!arm的存储结构有:RAM区俗称内存,ROM区俗称程序存储器,还有有的arm还集成了EPROM非易失性存取器!这里边ROM区最大,然后是RAM区。
举个通俗的例子吧,arm就好像一台计算机,ROM就是存储用户的程序的,一般烧写的代码都是存储到这里边的,类似于一台计算机的硬盘,RAM是arm用于计算和存储临时性文件,arm一失电就丢失了,类似于计算机中的内存!而EPROM则是存储一些信息,比如说变量的计算值啊,使其掉电后重新上电依然有效而不会丢失!
当然嵌入式上面的存储都很小,如果你想存储一些大文件,比如说MP3格式的文件,或者视频等很大的文件,arm上面肯定存储不下,一般都是通过存储到外部的存储器中如:SD卡等存储介质!然后通过文件系统从外部存储器读取数据然后在arm芯片进行处理
③ ARM存储器bank什么意思
在单片机中的bank其实就是分块,,,就像我们将rom空间分成page一样,因为有些mcu是8位的,它的寻址范围有限,,所以就必须利用切页的方式区分开.每一部分是一个bank.
原理如上具体你要看datasheet,不同ARM的bank分法不一样,对应的IO也不一样。许多AMR对各个bank连接的外设也会有限制,看datasheet吧,一般就在前几章里。