platform内核机制
作者:guolele 2011.1.21
platform是2.6内核新引进的虚拟总线,而且现在有很多设备驱动都是挂载在虚拟总线上,特别是帧缓冲设备都是建立在平台总线基础上,这也使得lcd等图形驱动也不可避免的使用平台总线,下面简单分析一下平台总线的机制。
首先先了解平台总线工作的结构。
这跟内核的设备驱动模型也是一样的,只是它包装了一下,platform总线是内核已经注册了的,我们不需要理它,它的匹配逻辑是名字相同,所以写驱动跟设备程序 时,要注意名字匹配。
驱动要做的事就是注册个平台驱动handler,有驱动了,也是需要设备的。
都完成了,应用程序怎么使用这些设备呢?这是我们也要弄清楚的。
应用层要调用设备,都是要操作设备文件或者叫设备节点,但是分析整个platform都是没有设备节点的创建,难道是自己手动创建?这么没效率的工作,内核当然不会这样做,使用平台总线的设备如果应用层并不能直接调用它,而是建立在其它类型设备中,用得比较多的是字符设备,例如帧缓冲的驱动程序里,设备文件/dev/fb0就是由帧缓冲注册函数负责创建的,应用层要调用lcd设备,就是直接文件操作/dev/fb0。下面上个图解析一下大概机制逻辑结构。
具体分析可看一下源码,这里我就不分析了,而lcd的主要工作就是基于内核有的s3c2410fb.c的驱动程序创建lcd的平台设备驱动。
奇怪了~~怎么在电脑里是透明的,在这就变黑了?我还画那么辛苦