物联网之内核及驱动开发初级二(驱动模块开发)

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");

猜你喜欢

转载自blog.csdn.net/weixin_39148042/article/details/82495180