说到储存管理器,就要想到SDRAM,DM9000一些外设,CPU并不是直接去访问SDRAM,DM9000,而是通过储存管理器来访问。
那么就我们要访问一个芯片,需要完成什么工作呢?
例如SDRAM:
1.地址线
2.数据线
3.时钟/频率
4.芯片的相关特性
芯片相关特性包含哪些东西?
4.1数据位宽
4.2行地址
4.3BANK
4.4刷新周期
我用的是mini2440的板子,芯片手册什么的和老师讲的都几乎差不多。阅读原理图可以知道数据位宽是32位(由两个16位 的芯片组成。)看SDRAM的芯片手册知道行地址为13位。列地址为9位。刷新周期就是64MS/8192。
另外我们看原理图知道地址线的接线方式并不是一一对相应的,像是我们这个32位的SDRAM就是A2 - A0 ,A3-A1,这种错位方式,那么为什么会这样呢,课本以前学过,但是没弄明白怎么回事(其实现在也有点不明白,只是知道了个大概,要是有个例子就会很好的理解了)SDRAM的数据位宽是32bit,所以一个地址空间就对应着4个byte的数据,但对于CPU也就是2440而言,地址单位是1个byte,一个地址对应着一个byte。CPU的地址是0x00 0x04 0x08 这样的形式的,对应起SDAM来说也就是CPU的0x00对应起SDRAM的ADDR0;0x04-ADDR1;0x08-ADDR2;可以看出CPU的地址是右移两位的,也就是不需要A0,A1 就可以完成寻址。对应的16bit就A1-A0,8bit的就A0-A0。
然后是bank的接法,看芯片手册知,banksize为64MB,32位数据宽度 ,对应的bank的地址为A【25:24】。
再说一些简单的SRAM,SDRAM,DDR的区别:
SRAM价格高,速度快,通过直接访问地址就能控制,访问程序比较简单,速度慢;
SDRAM就要分BANK,行,列来访问,访问过程比较复杂,同时还有自带的刷新,不刷新的话就会丢失数据。速度比较慢;
DDR在2440里不涉及,就没看,以后再说。
最后是2440的启动方式,无非就是NOR,NAND启动:
NOR方式:系统上电之后,cpu的0地址直接指向NOR的BANK0,从0开始执行。
NAND方式:1.上电之后cpu0地址指向SAM的steppingstone(可以理解为片内那个4K的ram 空间)
2.nand的前4K拷贝到片内RAM中,从0开始执行。
以上都是一些学习的片段,并不是特别系统的分析,有错误的地方希望指出,让我更加进步一点。贴图什么的不知道为啥就保存不了,很难受。
这才是学习嵌入式的开始,不知道以后还会有多难的东西等着我