姓名:鄭煜爍 學(xué)號:19029100010 學(xué)院:電子工程學(xué)院
轉(zhuǎn)自:https://blog.csdn.net/u012142460/article/details/78884144
【嵌牛導(dǎo)讀】簡單介紹linux驅(qū)動中模塊傳參
【嵌牛鼻子】linux驅(qū)動模塊傳參
【嵌牛提問】驅(qū)動模塊如何傳參
【嵌牛正文】
在編寫應(yīng)用我們可以通過終端向main函數(shù)傳參欢搜,其實在驅(qū)動模塊中我們同樣可以傳參医咨,但需要遵從一定的格式要求。
在驅(qū)動的模塊中聲明一下你要傳遞的參數(shù)名稱,類型和權(quán)限
? ? ? ? module_param(變量的名稱洋措,類型,權(quán)限);
傳遞整型:
? ? ? ? int intval ;
? ? ? ? module_param(intval, int , 0664);
傳遞字符指針:這個稍微特殊一點信峻,參數(shù)類型設(shè)定為charp
? ? ? char *p = NULL;
? ? ? module_param(p, charp, 0664);
傳遞數(shù)組: module_param_array(數(shù)組名, 元素類型, 元素個數(shù)(取地址), 權(quán)限);
? ? ? ? int array[3] = {};
? ? ? ? int num = 3;
? ? ? ? module_param_array(array, int, &num, 0664);
傳遞字符串: module_param_string(傳遞參數(shù)時的字符串名稱, 字符串名稱, 字符串大小, 權(quán)限);
? ? ? ? char str[12] = {};
? ? ? ? module_param_string(estr, str, sizeof(str), 0664);
? ? ? ? 前兩個參數(shù)容易混淆敛腌,第二個是在程序中的名稱,第一個是你在傳遞參數(shù)的名稱图毕,一般可以起一樣的名字夷都。
另外還可以添加參數(shù)描述,如:
? ? ? ? ? ? ? MODULE_PARM_DESC(參數(shù)名稱, 參數(shù)描述);
例程:
#include <linux/init.h>
#include <linux/module.h>
#include <linux/kernel.h>
MODULE_LICENSE("GPL");
int intval = 0;
module_param(intval, int , 0664);
MODULE_PARM_DESC(intval, "This is a interger.");
char *p = NULL;
module_param(p, charp, 0664);
MODULE_PARM_DESC(p, "This is a char * string.");
int array[3] = {};
int num = 3;
module_param_array(array, int, &num, 0664);
MODULE_PARM_DESC(array, "This is a array.");
char str[12] = {};
module_param_string(estr, str, sizeof(str), 0664);
MODULE_PARM_DESC(estr, "This is a char[] array.");
static int __init demo_init(void)
{
int i = 0;
printk("%s,%d\n", __func__, __LINE__);
printk("intval:%d\n", intval);
printk("p:%s\n", p);
for(i = 0; i < num; i++)
{
printk("array[%d] = %d\n", i, array[i]);
}
printk("str:%s\n", str);
return 0;
}
static void __exit demo_exit(void)
{
printk("%s,%d\n", __func__, __LINE__);
}
module_init(demo_init);
module_exit(demo_exit);
我們看一下執(zhí)行結(jié)果
? ? ? 加載模塊后予颤,都會在/sys/modules下生成一個模塊的文件夾囤官,文件夾下會有一個parameters文件夾,里面包含的就是以參數(shù)名命名的文件節(jié)點
里面保存的就是我們設(shè)置的值蛤虐,例如在intval中
————————————————
版權(quán)聲明:本文為CSDN博主「念念有余」的原創(chuàng)文章党饮,遵循CC 4.0 BY-SA版權(quán)協(xié)議,轉(zhuǎn)載請附上原文出處鏈接及本聲明驳庭。
原文鏈接:https://blog.csdn.net/u012142460/article/details/78884144