Linux設備驅動程序學習筆記2——帶參數的模塊加載和卸載

 
在Linux下用vi建立一HelloParam.c文件,其內容書寫如下:
//////////////////////////////////////////HelloParam.c start///////////////////////////////////////////////
#include <linux/init.h>
#include <linux/module.h>
#include <linux/moduleparam.h>
MODULE_LECENSE(“Dual BSD/GPL”);
 
static char *whom = “world”;
static int howmany = 5;
module_param(howmany, int, S_IRUGO);
module_param(whom, charp, S_IRUGO);
 
static int hello_init(void)
{
       int i;
       for(i=0; i<howmany; i++)
       {
              printk(KERN_ALERT “%d Hello, %s!/n”,i,whom);
}
       return 0;
}
 
static void hello_exit(void)
{
       printk(KERN_ALERT “Goodbye, cruel world!/n”);
}
 
module_init(hello_init);
module_exit(hello_exit);
//////////////////////////////////////////HelloParam.c end///////////////////////////////////////////////
 
需要注意的有如下三點:
1、      必須包含頭文件linux/moduleparam.h;
2、      變量whom和howmany必須是全局變量;
3、      調用module_param(whom, charp, S_IRUGO)和module_param(howmany, int, S_IRUGO)來對兩個變量進行聲明;
 
其Makefile文件的書寫如“Linux設備驅動程序學習筆記1——模塊加載和卸載”中所描述。
 
編譯完畢後,該模塊的加載如下:
insmod HelloParam howmany=10 whom=”Mon”
 
由於環境限制,目前無法進行運行,該工作呆以後再進行。
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章