- 积分
- 68
- 下载分
- 分
- 威望
- 点
- 原创币
- 点
- 下载
- 次
- 上传
- 次
- 注册时间
- 2010-1-18
- 精华
|
6#
发表于 2011-6-3 13:12:20
|
只看该作者
来自: 江苏南京 来自 江苏南京
本帖最后由 nicolas 于 2011-6-3 13:14 编辑
举个例子给大家:
期末考试了,现在发试卷,如果老师一个一个人的发,就要走到每个人的位置上,也就是一位一位的读写
有的老师比较懒,假如你们班有8列8排,老师一次发8张,只要递给每一列第一排的那个人就好了,然后依次往后发,收卷的时候正好相反.这样老师就只要找到每列第一个学生的位置就好了.
而对于32位的CPU也一样,它8位8位的读写,就是把你们班32排8列的人分成32组,8人一组,老师吧试卷只需要交给8人中的第一个就好了,CPU地址又是从高位到低位依次读写,当他读到倒数第3位时,他就不往下读了(懒),然后直接往后3位读写数据,那么后三位地址线你认为还有用吗?已经聋子的耳朵,摆不摆一样...
------------------------------------------------------------------------------------------------------------------
字节0 字节1 字节2 字节3 字节4 字节5 字节6 字节7
↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑
0x0000 0x0001 0x0002 0x0003 0x0004 0x0005 0x0006 0x0007
如上图,我们给出8个字节以及8个字节对应的地址,从0x0000~0x0007
ARM32位寻址时,一次对32bit=4字节进行操作。那么第一次访问的4个字节的地址=0x0000。那么下一次访问的地址是0x0001吗?
错啦,是0x0004,因为第一次寻址的时候已经对0x0000--0x0003地址进行了操作。
那么,我们来归纳一下每次访问的地址:
1st :0x0000
2nd:0x0004
3st :0x0008
4th :0x000C
如果换算成二进制,可以发现最低的两位总是00
同样的道理,如果MCU和Memory之间采用16bit接口,那么最低位总是0
|
|