为何linux设备驱动的书中都没有讲解ram驱动的

为什么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系统一样的。。。
------解决方案--------------------
引用:
ram驱动是不是在bootloader里面的呢?是不是就像计算机里面BIOS系统一样的。。。

有些Soc可以直接读取NAND,是因为Soc的rom里有代码知道如何下命令访问NAND。
同理,CPU知道RAM的信息后也可以按照相应的时序/方式访问RAM。在PC上,内存信息放在内存条的SPD芯片上,一种E2PROM。在开发板上,通常把DDR信息编码在bootloader里。
------解决方案--------------------
ram主要是配置时序,在bootloader阶段驱动就加载好了
------解决方案--------------------
不是没有,而是你没有看见过。
访问一段指定RAM空间,如同访问一段指定的外设地址一样。外设地址的访问通常还与外设自身的特点相关,所以会有更多的资料讲解。RAM的访问没有特殊的地方,所以,更简单,讨论的必要性更小。
《Linux设备驱动开发详解》里面第6章有个例子“globalmem”(全局内存)就是讲RAM驱动的。这就相当于举了个最简单的例子。
------解决方案--------------------
引用:
不是没有,而是你没有看见过。
访问一段指定RAM空间,如同访问一段指定的外设地址一样。外设地址的访问通常还与外设自身的特点相关,所以会有更多的资料讲解。RAM的访问没有特殊的地方,所以,更简单,讨论的必要性更小。
《Linux设备驱动开发详解》里面第6章有个例子“globalmem”(全局内存)就是讲RAM驱动的。这就相当于举了个最简单的例子。