helloworld驅動加強版

2021-07-11 01:33:44 字數 1496 閱讀 2695

helloworld——加強版

執行環境:tq2440開發板,核心版本2.6.30.4

開發環境:window下的source insight以及pc機上的紅帽企版5虛擬機器

實驗環境前提條件:擁有乙個製作好的nfs檔案系統

/**********************************hellop.c*************************************/

#include#include#includestatic char *who="world";

static int howmany=1;

module_param(who, charp, s_irugo);

module_param(howmany,int,s_irugo);

static int __init hello_init(void)

{ int i;

for(i=0;i

1、我們可以使用下面的命令來裝載該模組

insmod hellop howmany=10 who="lwj"

2、在insmod改變模組引數之前,模組必須讓這些引數對insmod命令可見,所以我們使用了module_param巨集來宣告,這個巨集在moduleparam.h中定義,module_param需要三個引數,如:module_param(who, charp, s_irugo);

第一引數是變數的名稱、第二個引數是變數的型別、第三個是訪問許可權,s_irugo是任何人均可讀,但不能修改。

3、核心支援的模組引數型別有bool、invbool、charp(字元指標)、int、long、short、uint、ulong、ushort

4、模組裝載器還支援陣列引數,但是比較特殊,需要用下面這個巨集來宣告

module_param_array(name,type,num,perm);

其中,name是陣列的名稱,type是陣列元素的型別,num是乙個整數變數,而perm是常見的訪問許可權

實驗操作步驟:

一、虛擬機器上的操作

1、建立乙個單獨的資料夾用於存放hellop模組以及makefile(方便開發)

2、編譯模組,拷貝模組到製作好的nfs檔案系統。

二、開發板上的操作

[\u@\h \w]# insmod hellop.ko howmany=10 who="lwj"

(0) hello,lwj

(1) hello,lwj

(2) hello,lwj

(3) hello,lwj

(4) hello,lwj

(5) hello,lwj

(6) hello,lwj

(7) hello,lwj

(8) hello,lwj

(9) hello,lwj

[\u@\h \w]# rmmod hellop

goodbye world

結束語:

題解 烷基計數 加強版 加強版

題目傳送門 問樹大小為 n 每個節點的兒子個數 le 3 的本質不同樹的個數。不考慮兒子之間的順序。n le10 5 因為這個題跟多項式關係比較大,所以就沒有放到 polya 定理學習筆記裡面。我們可以看出,假設我們設 f x 表示答案的普通型生成函式,那麼,我們就有 f x x frac 1 個人...

動物統計加強版

時間限制 3000 ms 記憶體限制 150000 kb 難度 4 描述 在美麗大興安嶺原始森林中存在數量繁多的物種,在勘察員帶來的各種動物資料中有未統計數量的原始動物的名單。科學家想判斷這片森林中哪種動物的數量最多,但是由於資料太過龐大,科學家終於忍受不了,想請聰明如你的acmer來幫忙。輸入第一...

兔子繁殖加強版

兔子繁殖加強版 normal time limit 1000ms memory limit 65536k total submit 116 accepted 79 description faibonacci是義大利中世紀最偉大的數學家之一,他曾提出這樣乙個問題 現在有一對成熟的兔子,每月可生一對小...