`
本帖最后由 求学之路有你 于 2018-1-19 20:41 编辑
7 驱动模块传参数
7.1 传参函数
在头文件“include/linux/moduleparam.h”中包含了向模块传参数的函数。这个功能是集成的,在任何linux 系统之中都可以使用。参数传递有两个函数,分别是函数module_param 和函数module_param_array。
函数module_param 支持单个参数传递,在头文件中,如下图所示。
如上图所示,这个宏定义函数有三个参数分别如下。
参数name,模块参数的名称;参数type,模块参数的数据类型(支持int long short uint ulong ushort 类型);参数perm,模块参数的访问权限(S_IRUSR 参数表示所有文件所有者可读)。
函数module_param_array 支持多个参数传递,在头文件中,如上图所示,这个宏定义函数有四个参数分别如下。
参数name,模块参数的名称;参数type,模块参数的数据类型(支持int long short uint ulong ushort 类型);参数nump,保存参数的数量;参数perm,模块参数的访问权限(S_IRUSR 参数表示所有文件所有者可读)。这里再介绍一下参数perm,参数perm 表示此参数在sysfs 文件系统中所对应的文件节点的属性,其权限在“include/linux/stat.h”中有定义
7.2 带传参函数的驱动源码
1)如下图所示,添加传参数功能的头文件“linux/moduleparam.h”和“linux/stat.h”。
2)如下图所示,然后调用函数module_param 和module_param_array 接收参数。
3)接着添加代码在初始化的时候将数据打印出去,如下图所示。
更多精彩内容,请关注我的公众号:“小拇指的脑瓜子”
`