关于2410外部寻址原理
扫描二维码
随时随地手机看文章
以 S3C2410为例,内核提供了32位的地址总线,理论上可以寻址的空间为4GB,但实际留给外部可寻址的空间只有 1GB,也就是 0X00000000~0X3fffffff,总共应该有30根地址线(2^30)引出来。 在这 1GB 的空间,2410 处理器又根据所支持的设备的特点将它分为了 8 份,每份空间有 128MB,这每一份的空间又称为一个 BANK(图参看手册,上的memory部分) 。其中 6个用于ROM、SRAM等存储器,2个用于 ROM、SRAM、SDRAM等存储器。 当 2410 对外寻址时,采用了部分译码的方式,即低位地址线用于外围存储器的片内寻址,而高位地址线用于外围存储器的片外寻址。对于系统要访问的任意外部地址,2410可以方便地利用内部地址总线的高 3 位 ADDR[29:27]来选择该地址属于哪一个存储器组(Bank),从而激活相应的Bank选择信号(nGCSx) 。这 8个片选信号可以看作是 2410处理器内部 30根地址线的最高三位所做的地址译码的结果。正因为这 3根地址线所代表的地址信息已经由 8 个片选信号(nGCS7~nGCS0)来传递了,因此 2410 处理器最后输出的实际地址线就只有A26~A0。 Bank的内部寻址由外部地址总线A[26:0]来实现,寻址范围为 128M(227),从而使得其外围地址访问空间为 1GB(128MB×8)。S3C2410正是通过这种机制来完成外部地址空间的寻址全过程。