天天看點

iTOP-RK3399開發闆驅動子產品傳數組

通過 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

​​

iTOP-RK3399開發闆驅動子產品傳數組

​​

同樣我們可以進入到/sys/module/parameter/目錄下,檢視變量 b 的權限,如下圖所示:

cd /sys/module/parameter/

ls

cd parameters/

ls

ls b -l

​​

iTOP-RK3399開發闆驅動子產品傳數組

​​

如果我們多傳入進去參數,會發生什麼呢?我們試試傳入六個數

​​

iTOP-RK3399開發闆驅動子產品傳數組

​​

到此,我們已經學會了在 iTOP-3399 開發闆上面給驅動子產品傳普通參數和數組參數了。

​​

iTOP-RK3399開發闆驅動子產品傳數組

​​

​​

繼續閱讀