为什么linux设备驱动的书中都没有讲解ram驱动
有字符设备驱动,块设备驱动和网络设备驱动。有flash,lcd等的驱动,就是没有ram的驱动
我的理解,ram本身也是一种设备,也是需要驱动的
kernel就像你的大脑,ram就像你的肚子,只是放你的东西,比如说要消化,则大脑调用你的驱动(胃)去进行消化。讲的有点简单了~~ 内存的驱动主要在引导程序里完成。
内存CPU直接访问了,个人理解:CPU好比火车头,内存好比车皮,而flash,硬盘好比仓库,所以内存里的东西CPU直接拉着走,而Flash里的东西先要放入内存后才能被CPU访问.
在系统已经跑起来之后,如果ram需要驱动的话,那就进入了一个悖论怪圈。
举个例子,代码在ram中,那么取指需要访问ram,访问ram需要通过ram的驱动,可是代码都在ram中,访问ram的驱动还是要从ram中取指。一圈转下来还是没解决问题,而这么频繁的ram操作肯定不可能把驱动放在低速的NV memory中。
所以dram是设计成只需要初始化dram控制器,dram控制器不断对dram进行充电(dram控制器初始化后不需要cpu干预)就可以直接访问,而sram上电后不需要初始化就可以直接访问。