回覆列表
  • 1 # 使用者5080196806422

    一、模組載入函式:

    (必須)

    module_init(initialization_funciton);

    二、模組解除安裝函式:

    (必須)

    module_exit(cleanup_function);

    三、模組引數:

    module_param(引數名,引數型別,引數讀/寫許可權)

    在模組插入時: insmod

    模組名

    引數名=引數值

    eg:

    static char *book_name = " Linux 裝置驅動 ";

    static

    int num = 4000;

    module_param(num, int , S_IRUGO);

    module_param(book_neme ,charp, S_IRUGO);

    引數型別:

    byte, short, ushort, int uint, long , ulong, charp(字元指標), bool,

    四、匯出符號

    (建議有)

    EXPORT_SYMBOL( 符號名/函式名)

    EXPORT_SYMBOL_GPL(符號名 /函式命)

    五、模組宣告

    MODULE_LICENSE(" Dual BSD/GPL ");

    MODULE_AUTHOR (" XXXXX");

    MODULE_DESCRIPTION("XXXXX DRIVER");

    MODULE_VERSION(" XXXX VERSION");

    MODULE_DEVICE_TABLE(TABLE_INFO);

    MODULE_ALISA(XXXXXXX);

    六、驅動模組的編譯

    開發好的模組程式可以和核心一起編譯,也就是將模組編譯進核心,也可以將模組單獨編譯成一個獨立的模組。

  • 中秋節和大豐收的關聯?
  • 哥瑞自動經典版求一個落地價?