ok6410学习笔记(1.arm常见的各种地址总结)
学习有一段时间了,总是对其中各中地址的来源比较模糊一会 一会的,最近自己又看了看手册,找了找资料,并和2440对比学习了下,总结如下。PS:资料有6410,2440中英文手册,原理图,原理图,韦东山第一期视频中的存储控制器,mmu,,和看原理图视频。
地址映射问题:
地址中,,SRAM是跟寄存器一样的统一编址(主要与不同,是按照时序把地址发送出去的,不是地址线发送的,不是被存储器控制器操作的,是被控制器控制的,所以与他们不同)。
如上图:如果是nor启动,的起始地址是,中间打叉的块是没有连接的,也就是无效的地址,的起始地址是从块4开始的,SDRAM的起始地址是从块6开始的.他们是通过nGCS0,nGCS1......起到片选的作用的(如下图)。nand启动只是把变成了片内SRAM,把前4k拷贝过去而已。紧接着就是开始的寄存器地址,后面还有一段映射的虚拟地址(主要跟uboot中的mmu内存管理单元初始化,和内核移植有关)。
地址映射问题(资料太少大部分是我的理解,如有错误希望大神指导下):
6410的内存映射分5个部分:
1.引导镜像区(~)
2.内存存储区(~)如果是内部ROM启动~映射到引导镜像区,如果是启动则将内部SRAM的地址~映射到引导镜像区。
3.静态存储区(~)bank0什么都没接,bank1接了,bank2,3的片选接在(但只是接在上的片选,没有统一编址),bank4,5应控制cf控制器但没接。
4.动态存储器(~)DDR接口,用的是SRAM端口2地址为,详讲下面原理图。
5.外设(即寄存器地址~)记得韦东山在讲6410裸机的时候说裸机启动代码最先做的事情应该是把外设的基地址赋值给协处理器cp15此时赋的值就是 PS:启动内核后的映射到虚拟地址。
还剩下几个地址没有理解,待日后理解了再补充上来,有dnw里面设置的地址,有ads里面的两个地址,有uboot和内核里面分区地址。