通過 43.1 章節驅動理論基礎的學習,我們已經把驅動傳參的基本概念搞懂了。我們在 Windows 上面新
建 parameter.c 檔案,并用 sourceinsight 打開。我們将上次編寫的 helloworld.c 裡面的代碼拷貝到 parameter.c
檔案,在此基礎上進行編寫。
/*
* @Descripttion: 驅動子產品傳遞數組
* @version: * @Author: topeet */
#include <linux/init.h>
#include <linux/module.h>
//定義數組 b
static int b[5];
//定義實際傳入進去參數的個數
static int count;
static int a;
module_param(a ,int,S_IRUSR);
//傳遞數組的參數
module_param_array(b,int,&count,S_IRUSR);
static int hello_init(void){
int i;
//循環周遊數組 b 的值
for(i = 0;i<count;i++){
//列印數組 b 的值
printk("b[%d] = %d \n",i,b[i]);
}
//列印傳入參數的個數
printk("count= %d \n",count);
//printk("a = %d \n",a);
//printk("hello world! \n");
return 0;
}
static void hello_exit(void){
printk("a = %d \n",a);
printk("gooodbye! \n");
}
module_init(hello_init);
module_exit(hello_exit);
MODULE_LICENSE("GPL");
我們再将驅動傳入數組的代碼編譯成驅動子產品,加載驅動子產品,如下圖所示:
rmmod parameter
insmod parameter.ko b=1,2,3,4,5

同樣我們可以進入到/sys/module/parameter/目錄下,檢視變量 b 的權限,如下圖所示:
cd /sys/module/parameter/
ls
cd parameters/
ls
ls b -l
如果我們多傳入進去參數,會發生什麼呢?我們試試傳入六個數
到此,我們已經學會了在 iTOP-3399 開發闆上面給驅動子產品傳普通參數和數組參數了。