Linuxwilliam hill官网
直播中

xx

9年用户 108经验值
擅长:测量仪表 嵌入式技术 接口/总线/驱动 处理器/DSP 控制/MCU EDA/IC设计
私信 关注
[经验]

十一天学会Linux驱动编程计划(第7天)

` 本帖最后由 求学之路有你 于 2018-1-19 20:41 编辑

7 驱动模块传参数
7.1 传参函数
在头文件“include/linux/moduleparam.h”中包含了向模块传参数的函数。这个功能是集成的,在任何linux 系统之中都可以使用。参数传递有两个函数,分别是函数module_param 和函数module_param_array。
函数module_param 支持单个参数传递,在头文件中,如下图所示。
7.1.png
如上图所示,这个宏定义函数有三个参数分别如下。
参数name,模块参数的名称;参数type,模块参数的数据类型(支持int long short uint ulong ushort 类型);参数perm,模块参数的访问权限(S_IRUSR 参数表示所有文件所有者可读)。
7.2.png
  函数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”。
7.3.png
2)如下图所示,然后调用函数module_param 和module_param_array 接收参数。
7.4.png
3)接着添加代码在初始化的时候将数据打印出去,如下图所示。
7.5.png

更多精彩内容,请关注我的公众号:“小拇指的脑瓜子”

` 公众号.jpg

回帖(1)

OQH

2018-2-5 21:13:43
举报

更多回帖

发帖
×
20
完善资料,
赚取积分