5.艰难学习Linux系统之存储管理器

这章开始学习存储管理器,一提到存储脑海里就会联想到很多存储相关的东西,
NAND FLASH:容量大,掉电不丢失,相当于硬盘。不能直接寻址。
NOR FLASH:CPU可以直接寻址,掉电不丢失。容量小
SDRAM:也相当于内存它是片外扩展的,主要是执行程序
SRAM:可读可写寄存器,相当于内存,掉电会丢失,但是运行速度快(片内空间只有4K)
上面这些概念学习了很多次了,但是还是容易混淆
1.CPU->存储管理器->SDRAM
 ->DM9000等
CPU不管外设是什么,都由存储管理器来做。存储管理器根据配置信息来区分。
例如:想访问一个芯片需要的条件(1)地址线
(2)数据宽度
(3)时钟、频率
(4)芯片相关
以上说的条件就是配置信息。
现在想访问SDRAM就要知道 1.列地址,行地址(内存芯片手册)
2.刷新周期(内存芯片手册)
3.位宽(原理图得到)
4.BANK(内存芯片手册)
以上说了这么多,看着迷迷糊糊的,其实就想说,存储器是给CPU大老板打工的,帮助CPU管理小弟们(外设)。然而存储管理器要想管小弟也得知道他们的一些信息。


2.那么从程序角度说:要想访问SDRAM,要先配置存储管理器,怎么配置呢,就是写寄存器呗。配置哪些呢,就是上面那些呗。
现在做一个例子首先启动流程是这样的:
(1)一上电,NAND FLASH自动将数据复制到片内的SRAM.
(2)然后开始执行启动代码,关看门狗,初始化存储管理器。
(3)然后把片内4K的数据移动到片外SDRAM,跳到SDRAM继续执行。
链接地址为运行时程序应该位于哪里。


3.存储管理器总共有8个BANK,bank0-5支持外部ROM,SRAM.6,7支持SDRAM。
4.存储管理器总共有13个寄存器,BANK0~BANK5只需要设置BWSCON(位宽和等待寄存器),和BANKCONX(BANK控制寄存器)两个寄存器。BANK6和BANK7外接SDRAM时,还要设置refresh(刷新控制寄存器),
Banksize,mrsrb6,mrsrb7(sdram模式设置寄存器)等四个寄存器。


要想理解2440的地址分配情况,下面这几个图很重要:

 




 
 
 


S3c2440理论可以寻址4G,用户可用1G,1G空间需要30根地址线,而实际只用了27根,其他3根用在了3-8译码器上,27根线控制具体的bank,其他3根用来选择处于哪个bank..

看了几遍虽然知道了大概是怎么回事,但是感觉用起来还是没那么容易,暂时先留一个印象,过一遍汇编调用的步骤,知道他是干什么的,然后再仔细研究这些地址。





  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值