讀書筆記 Linux裝置驅動程式(一) 0 02

2021-04-06 12:04:09 字數 948 閱讀 7750

驅動程式的引數值可由in**od或者modprobe在裝載模組時設定,後者還可以從配置檔案(/etc/modules.conf)中獲得引數賦值。這些命令能夠在命令列中接受整型和字串型賦值。如:模組需要獲得乙個叫做skull_ival的整型引數和乙個叫做skull_sval的字串型引數:

in**od skull skull_ival=666 skull_sval="the beast"

當然,模組必須能夠訪問這些引數。引數由定義在module.h中的巨集module_parm宣告,它必須包含:變數名和描述變數型別的字串。放在原檔案的起始位置

int skull_ival=0;

char *skull_val;

module_parm(skull_ival,"i");

module_parm(skull_sval,"s");

五種型別:b,乙個位元組byte;h,短整型 兩個byte;i,整型;l 長整型;s,字串。

作為乙個例子,至少有兩個元素、最多不超過4個元素的陣列可定義為:

int skull_array[4];

module_parm(skull_array,"2-4i");

還有乙個module_parm_desc的巨集,允許開發者為模組引數提供描述性文字,描述性文字儲存在目標檔案中,能夠用類似objdump的工具檢視:

int base_port = 0x300;

module_parm(base_port,"i");

module_parm_desc(base_port,"the base i/o port(default 0x300)");

#include

void *kmalloc(unsigned int size,int priority);

void kfree(void *obj);

函式malloc和free的核心版。使用gfr_kernel作為priority引數值。

《linux裝置驅動程式》讀書筆記

這也算是一本神書了,12年買了,13年看完了,後來一直嫌棄著,今天當好有空,整理一下筆記,也算是溫故知新了。這個做linux驅動開發必看的書記,我這個是第三版本,核心版本是2.6版本的。這章不重要,過 講如何獲取原始碼,如何編譯一核心,過 核心開發的特點,這個還是比較好的 第3章 程序管理 第4章 ...

LINUX裝置驅動程式筆記

1.核心功能劃分 程序管理,記憶體管理,檔案系統,裝置控制,網路。裝置的分類 字元裝置,塊裝置,網路介面。單個原始檔編譯模組 obj m hello.o 多個原始檔編譯模組 obj m module.o module objs file1.o file2.o make c kernel 2.6 m ...

linux裝置驅動程式 字元裝置驅動程式

先留個 有一起學習驅動程式的加qq295699450 字元裝置驅動 這篇比較惱火。載入成功,但是讀不出來資料,有知道怎麼回事的,留個言,一起討論下 資料結構 struct scull mem struct scull dev dev 整個驅動程式 如下 include include include...