为什么linux设备驱动的书中都没有讲解ram驱动的?
有字符设备驱动,块设备驱动和网络设备驱动。有flash,lcd等的驱动,就是没有ram的驱动
我的理解,ram本身也是一种设备,也是需要驱动的
不知各位高人意见如何?
[解决办法]
个人见解:kernel就像你的大脑,ram就像你的肚子,只是放你的东西,比如说要消化,则大脑调用你的驱动(胃)去进行消化。讲的有点简单了~~
[解决办法]
内存的驱动主要在引导程序里完成。
[解决办法]
内存CPU直接访问了,个人理解:CPU好比火车头,内存好比车皮,而flash,硬盘好比仓库,所以内存里的东西CPU直接拉着走,而Flash里的东西先要放入内存后才能被CPU访问.
[解决办法]
在引导程序中有的。汇编的.S文件。ram也是一种设备,初始化sdram设备的代码不在其本身运行的,在片内的ram里面。
[解决办法]
RAM是个很特殊的设备,它只需要被初始化(有些甚至不需要初始化)而没有自己的驱动。如果没有操作系统,你只需要命令CPU发出数据到总线上,RAM照样会做相应的动作。
[解决办法]
在系统已经跑起来之后,如果ram需要驱动的话,那就进入了一个悖论怪圈。
举个例子,代码在ram中,那么取指需要访问ram,访问ram需要通过ram的驱动,可是代码都在ram中,访问ram的驱动还是要从ram中取指。一圈转下来还是没解决问题,而这么频繁的ram操作肯定不可能把驱动放在低速的NV memory中。
所以dram是设计成只需要初始化dram控制器,dram控制器不断对dram进行充电(dram控制器初始化后不需要cpu干预)就可以直接访问,而sram上电后不需要初始化就可以直接访问。
[解决办法]
ram驱动是不是在bootloader里面的呢?是不是就像计算机里面BIOS系统一样的。。。
[解决办法]