|
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有账号?注册
x
小弟刚刚学习ARM7,对存储器引脚与S3C44B0地址引脚,在16位数据总线宽度下错位连接,很不理解,小弟我尽可能把问题描述得清楚一些,请各位知道的不吝赐教。谢谢!
为了简单起见, 假设 (1)ARM只有11根地址线(最大可寻址2K),现在只需寻址1K
(2)Flash有10根地址线
(3)16位数据总线宽度
错位连接如下图:
ARM: :Flash
A0
A1-------------- A0
A2-------------- A1
A3-------------- A2
A4-------------- A3
A5-------------- A4
A6-------------- A5
A7-------------- A6
A8-------------- A7
A9-------------- A8
A10------------- A9
1:假设ARM读取Flash存储空间的8字节内容
ARM发送的地址信号(偶数,16位数据宽度,每读一次地址加二)如下:
A10 A9 | A8 A7 A6 A5 A4 | A3 A2 A1 A0
0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 1 0
0 0 0 0 0 0 0 0 1 0 0
0 0 0 0 0 0 0 0 0 1 0
Flash接收到的地址信号如下:
A9 A8 A7 A6 A5 A4 A3 A2 A1 A0
0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 1
0 0 0 0 0 0 0 0 1 0
0 0 0 0 0 0 0 0 0 1
问:(1)当Flash接收到错位后的地址信号后,如何正确的读取自己空间中的区域
ARM发送的地址信号(奇数,16位数据宽度,每读一次地址加二)如下:
A10 A9 | A8 A7 A6 A5 A4 | A3 A2 A1 A0
0 0 0 0 0 0 0 0 0 0 1
0 0 0 0 0 0 0 0 0 1 1
0 0 0 0 0 0 0 0 1 0 1
0 0 0 0 0 0 0 0 0 1 1
Flash接收到 Flash接收到的地址信号如下:
A9 A8 A7 A6 A5 A4 A3 A2 A1 A0
0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 1
0 0 0 0 0 0 0 0 1 0
0 0 0 0 0 0 0 0 0 1
问:(2)我们看到当ARM发送偶数地址时,A0始终为低,当发送奇数地址时,A0始终为高是否是因为这原因,A0就失去作用了,我们就不接它了。但是不接它了,我们如何知道ARM发过来的是奇数地址,还是偶数地址。另外由于错位相接,我们同时也 发现,错位后Flash的最高位A9始终为0,这又是何必呢?
题外问题:ROM和SDRAM在寻址时是不是有区别,我只知道对于SDRAM寻址时要分别提供行地址信号和列地址信号,其他的就不知道了。
我现在是刚刚接触到ARM,而且对于存储器的结构也不是很了解,可能上面说的一些原理性的东西都是错的,希望各位大虾们帮小弟解惑,谢谢了!
[ 本帖最后由 wangfeifeiwc 于 2007-8-13 20:31 编辑 ] |
|