ARM中,总线如何连接?
ARM中,总线如何连接?
在ARM系统中,总线要连接很多东西,如FLASH,RAM,SD卡等等.我的问题是:系统设计中,各芯片地址如何分配,分配后总线的各控制pin又如何连接(重点问题)?为什么ARM的地址位和外部芯片的地址位会错位(例如ARM接A15--A0而FLASH接A17--A2)(重点问题)?
我有2000分,有满意的答案尽你要
谢谢
arthux, s3c44b0和 zhuangweij !!
arthux回答得非常好,而我一直麻烦s3c44b0。
非常感谢!
ARM是32位,地址空间是2的32次幂,4G地址空间。所有的外设(FLASH,RAM,SD卡等等)都映射到这4G的空间上。比如大部分ARM7都把RAM映射到0x40000000,所以对RAM的操作就在0X40000000开始的地址上。FLASH从0X0开始。使用FLASH还要考虑地址重映射,就是选择片内FLASH或片外FLASH。
FLASH一般是8位或16位,当它接到32位的ARM上时,地址位就会错位。对于16位FLASH,FLASH的A0要接ARM的A1。对于8位FLASH,FLASH的A0要接ARM的A0。ARM的A0对应8位,ARM的A1对应16位,ARM的A2对应32位,如果FLASH是32位,那么FLASH的A0接ARM的A2.
对于并行芯片,考虑上面的位数直接连接。串行芯片(如SD),是不分配地址的,通过编程读写。