物聯網之內核及驅動開發初級二(驅動模塊開發)

Linux驅動開發之ko模塊開發

驅動模塊開發:
1,參數傳遞
    加載ko:  insmod hello.ko myname="george" myvalue=33

    用途: wifi驅動,wifi硬件中內部也運行內部代碼,原廠開發,這些代碼叫做固件--firmware.bin
          裝載wifi驅動,必須告訴固件的文件在哪裏
             insmod  rtxxx.ko path=/lib/modules/firmware/xxx.bin

    在代碼如何處理參數:
    module_param(name, type, perm)
    參數1:表示參數的名字,比如myname, myvalue
    參數2:參數到類型, charp, int
    參數3: /sys/modules/表示文件到權限: 0666

    用法:
        module_param(myvalue, int, 0666);
        module_param(myname, charp, S_IRUGO|S_IWUGO|S_IXUGO);
    
    
2,符號導出
    
        #include <linux/module.h>
        #include <linux/init.h>

        //不需要模塊加載和卸載到入口聲明,直接定義好一些封裝的函數

        int my_add(int a, int b)
        {
            return a+b;
        }

        EXPORT_SYMBOL(my_add);

        int my_sub(int a, int b)
        {
            return a-b;
        }

        EXPORT_SYMBOL(my_sub);

        MODULE_LICENSE("GPL");

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章