摘要: 有些模块在加载的时候可能需要根据不同的参数来产生不同的功能。这些参数的值可以直接由insmod或者modprobe命令在加载的时候指定。当然,你的代码在使用模块参数前,必须定义这些参数,并让这些参数可用。一个使用了模块参数的设备驱动模块源码如下,这个代码是在原来最基础的hello world的基础上修改的: 1 #include <linux/init.h> 2 #include <linux/module.h> 3 MODULE_LICENSE("Dual BSD/GPL"); 4 static char *whom = "world&q 阅读全文
posted @ 2011-07-28 21:07 自由泳的青蛙 阅读(285) 评论(0) 推荐(0) 编辑
摘要: 上一篇主要介绍了一个最最简单的设备启动模块Hello world的编译,并将其加载到内核的一些步骤。现在对hello world的代码做一个详细的解析,并提出几个编写设备驱动程序代码时要注意的问题。 如上一篇文章所看到的源码一样,设备驱动的初始化函数一般定义如下:1 static int __init initialization_function(void)2 {3 /* Initialization code here */4 }5 module_init(initialization_function); 每一个设备驱动的初始化函数都应该像上面那样子定义。首先,这个初始化函数应该定义为静 阅读全文
posted @ 2011-07-28 14:16 自由泳的青蛙 阅读(375) 评论(0) 推荐(0) 编辑