Linux驅動開發之ko模塊開發
驅動模塊開發:
1,參數傳遞
加載ko: insmod hello.ko myname="george" myvalue=33
用途: wifi驅動,wifi硬件中內部也運行內部代碼,原廠開發,這些代碼叫做固件--firmware.bin
裝載wifi驅動,必須告訴固件的文件在哪裏
insmod rtxxx.ko path=/lib/modules/firmware/xxx.bin
在代碼如何處理參數:
module_param(name, type, perm)
參數1:表示參數的名字,比如myname, myvalue
參數2:參數到類型, charp, int
參數3: /sys/modules/表示文件到權限: 0666
用法:
module_param(myvalue, int, 0666);
module_param(myname, charp, S_IRUGO|S_IWUGO|S_IXUGO);
2,符號導出
#include <linux/module.h>
#include <linux/init.h>
//不需要模塊加載和卸載到入口聲明,直接定義好一些封裝的函數
int my_add(int a, int b)
{
return a+b;
}
EXPORT_SYMBOL(my_add);
int my_sub(int a, int b)
{
return a-b;
}
EXPORT_SYMBOL(my_sub);
MODULE_LICENSE("GPL");