1、module_param(name, type, perm); 定義乙個模組引數,
name 變數名
type 資料型別
bool:布林型
invbool:乙個布林型( true 或者 false)值(相關的變數應當是 int 型別).invbool 型別顛倒了值,所以真值變成 false,反之亦然.
charp :乙個字元指標值. 記憶體為使用者提供的字串分配, 指標因此設定.
int:整形
long:長整形
short:短整形
uint:無符號整形
ulong:無符號長整形
ushort:無符號短整形
perm 訪問許可權
#define s_irwxu 00700#define s_irusr 00400
#define s_iwusr 00200
#define s_ixusr 00100
#define s_irwxg 00070
#define s_irgrp 00040
#define s_iwgrp 00020
#define s_ixgrp 00010
#define s_irwxo 00007
#define s_iroth 00004
#define s_iwoth 00002
#define s_ixoth 00001
#define s_irugo (s_irusr|s_irgrp|s_iroth) //
可以被所有使用者訪問不能改寫
2、module_param_array(name, type, nump, perm); 定義模組引數陣列
nump 陣列元素的個數
staticint test=0
;module_param(test,
int, s_irugo);
在uboot 的啟動引數中傳遞引數 例如:
setenv bootargs console=ttys0,115200n8 root=$ rootfstype=ext4 rootflags=data=writeback quiet testmodule.test=1
testmodule模組名稱(也就是.o檔案或者.ko檔案的名稱) test 模組引數名稱 如果設定了上面的啟動引數,在驅動中就可以看到test的值為1
驅動中定義
staticint test=0
; static
int __init get_test(char *str)
__setup(
"mode_test=
", get_test);
static
char *test_name;
static
int __init get_testname(char *str)
__setup(
"mode_testname=
", get_testname);
在啟動引數中
setenv bootargs console=ttys0,115200n8 root=$ rootfstype=ext4 rootflags=data=writeback quiet test=1 test_name=name
按上面的設定,在驅動可以得到test的值為1,test_name為「name」。
u boot向Linux核心傳遞引數tag原理分析
u boot最主要的功能是引導os,目前對linux支援的相對比較好,引導 的意義不僅僅是拷貝核心,執行核心,還要給核心kernel傳遞板子的相關引數,打個比方,u boot相當於是一名專業功底深厚的 接待員 他會先初始化好一些外圍裝置,比如說串列埠,sdram nand flash mmc等,初始...
uboot傳遞核心引數全解析
一 啟動引數的傳遞過程 啟動引數是包裝在資料結構裡的,在linux kernel啟動的時候,bootloader把這個資料結構拷貝到某個位址,在改動pc跳向核心介面的同時,通過通用暫存器r2來傳遞這個位址的值,下面這句話就是uboot跳向linux kernel的 bootm命令 thekernel...
UBOOT引導Linux核心及向核心傳遞引數的方式
一直以來沒有想過有什麼好的辦法通過暫存器向核心傳遞引數,直到今天讀uboot的實現方式。在uboot中,引導核心最常用的方法是bootm命令,bootm命令可以引導 uboot格式 的核心。先花點時間了解一下什麼是 uboot格式 的核心吧 用uboot自帶的mkimage命令生成的核心稱為 ubo...