|
大侠好:
小弟有几个问题不明白,以前一直都是拿来就用也不知道为什么,最近想把他们搞清楚,请教大侠帮助解答一下
1、OEMaddressTable是物理跟虚拟的映射表,请问这个物理地址是什么地址呢?
是外设芯片定义的物理地址还是跟硬件连接线相关的?
(我还隐约记得单片机下外设的地址是可以通过原理图查出来的,不知道是不是一回事)
2、写CE驱动主要是不是就是在操作内存控制器?我看内存管理器被大概分为两个部分:
部分1:ARM处理器的所有寄存器物理地址,我理解在这部分给用户留的操作就是各种接口和对应的寄存器,
如USB有USB接口(硬件直接连接上),对应软件操作USB的各个寄存器
部分2:bank0---bank7,这部分是直接对物理地址进行操作的,因为没有相应的寄存器??,
请问这个“直接对物理地址操作”的物理地址是什么地址??跟硬件连接线是否相关??
3、目前我知道的就下面这几种地址:
1):虚拟地址、物理地址,这两个是通过OEMaddressTable联系到一起的,
从打开MMU开始就都是虚拟的地址的操作,
2):ARM上有数据线(data[x..0])和地址线(addr[y..0]),还有片选线nGCSx。这些线都是有限多的,数据线复用可以很好理解
通过片选可定义当前的数据是给哪个外设的,可是这个地址线是做什么用的呢?地址线跟内存控制器有什么关系呢?
3):bank0~bank7,我看到内存控制器中这8个bank对应nGCS0~nGCS7,请问是不是硬件上连接了这个片选信号nGCS0就说明
这个外设是用的bank0
4):请问什么样的外设是需要连接到bank上的?bank跟硬件连接地址线有什么关系吗?
为什么2410的bank3用来连接CS8900??这个是死规定吗
4、再次确定一下是不是操作ARM的就是对内存控制器编程???
谢谢大侠!
|
|