有钱不如去买书。 讲linux的书籍更多了
Linux 设备驱动Edition 3-Linux设备驱动第三版(中文版)
去找个pdf版本的学学 讲linux的书籍更多了
Linux 设备驱动Edition 3-Linux设备驱动第三版(中文版)
去找个pdf版本的学学 呵呵,你自己做过helloworld的模块化驱动么?这个应该挺简单的。总要有个开头的地方。 我来试着讲解一下:
在drivers/led目录下,首先需要关注文件LED.def
这个文件定义了几个函数,最后会注册到系统:
EXPORTS LED_Init
LED_Deinit
LED_Open
LED_Close
LED_Read
LED_Write
LED_Seek
LED_PowerDown
LED_PowerUp
LED_IOControl
这个文件很重要,系统通过这个文件来明确哪个函数需要注册。
这些函数的实现在哪里呢?在led.cpp中
编译这些文件以后,会生成led.dll
在注册表中会声明这个文件作为启动时加载的驱动。
然后,系统启动以后,应用程序就可以打开这个驱动
然后,应用程序就可以调用这些函数了,
然后。。。你可以随心所欲了 6410里面的驱动在drivers/char/leds/s3cXXX.c,不过驱动里面的注释好像搞反了,cmd=0的时候,注释写关闭灯,实际上是亮灯。 是drivers/char/leds,不是drivers/leds目录 我也是个菜鸟,谈不上指导!!!!
你看那个手册吧,里面有说明各个驱动所在目录。 我的也是6410,2.6.28那个手册里有,在内核编译那个章节的后面,仔细找找 我看了2.6.36.2的代码,我弄错了,是在/drivers/char/s3c6410_leds.c,不好意思,呵呵
页:
[1]
2