嵌入式linux学习笔记--存储控制器

2019-07-12 22:27发布

学习笔记基于对S3C2410/S3C2440,为理论基础知识记录。存储控制器用于了解开发板内部地址空间的布局,从而掌握如何通过总线形式访问扩展的外设。总线的使用方法是嵌入式底层开发的基础,了解了总线,再根据外设的具体特性,就可以驱动外设。存储控制器提供了访问外部设备所需的信号。
如下特点:
1.共8个BANK,BANK0~BANK5可以支持外接ROM,SRAM等,BANK6~BANK7除了可以支持ROM,SRAM外,还支持SDRAM等。
2.27根地址线ADDR0~ADDR26的访问范围只有128M ,即每个BANK的地址空间为128M,另外CPU引出了8根片选信号线nGCS0~nGCS7,128M*8=1G。
3.可编程控制的总线位宽(8/16/32-bit),不过BANK0只支持(16/32bit)。
4.BANK0~BANK6共7个BANK的起始地址是固定的,BANK7的起始地址是可编程控制的;每个BANK的访问周期均可编程控制。
5.可通过外部的“wait”信号延长总线的访问周期。
8个BANK的地址空间图详见相关手册。
32位的CPU理论上可以达到4GB的地址范围,出去以上所述的1GB外,还有一部分是CPU内部寄存器的地址。(物理地址)
相关外设的访问地址的确定:知道了各个BANK 的起始地址,还需结合其地址线,地址线所确定的地址值,加上BANK的起始地址,就是外设的访问地址。
然后就是根据原理图对寄存器进行的设置了。