15 linux驱动模块的参数
2017-06-06 11:49
162 查看
模块参数是用于在加载驱动模块时,指定模块里面的特定变量的具体值.
实现方法:
////////////////////////////////////////////
根据上例改成在加载驱动模块时通过模块参数决定led灯初始时的状态.
test.c
编译成ko文件后,可用modinfo查看到模块参数的信息:
加载驱动模块时:
实现方法:
1). #include <linux/moduleparam.h> 2). 在驱动源码里定义变量 static int num = 0; //当加载模块不指定num的值时则为0 3). 声明指定的变量为驱动模块参数 module_param(变量名, 类型, 权限); //类型可有: byte, int, uint, short, ushort, long, ulong, bool, charp //权限: 其它用户所占的权限里不能有写的权限 4). 加载驱动模块时指定模块参数的具体值: insmod test.ko 变量名1=值1 变量名2=值2
////////////////////////////////////////////
根据上例改成在加载驱动模块时通过模块参数决定led灯初始时的状态.
test.c
#include <linux/init.h> #include <linux/module.h> #include <mach/gpio.h> // 芯片io口的宏定义 #include <linux/gpio.h> // io口的调用函数 #include <linux/moduleparam.h> static int on = 1; module_param(on, int, 0644); //声明模块参数 #define LED_GPIO GPIOA(15) //PA15 static int __init test_init(void) { int ret; ret = gpio_request(LED_GPIO, "myled"); //如请求失败,则表示此io口已被其它驱动使用 if (ret < 0) return ret; gpio_direction_output(LED_GPIO, on); //根据外面的参数值来决定led灯的亮灭 return 0; } static void __exit test_exit(void) { gpio_set_value(LED_GPIO, 0); gpio_free(LED_GPIO); } module_init(test_init); module_exit(test_exit); MODULE_LICENSE("GPL");
编译成ko文件后,可用modinfo查看到模块参数的信息:
filename: /disk3/h3fs/kernel_codes/01hello/04module_params/test.ko license: GPL depends: vermagic: 3.4.112 SMP preempt mod_unload ARMv7 p2v8 parm: on:int
加载驱动模块时:
insmod test.ko on=1 或者 insmod test.ko on=0
相关文章推荐
- linux stat命令参数及用法详解---linux显示inode节点内容命令
- Ubuntu Linux系统下Apt-get命令参数详解
- linux IO 内核参数调优 之 原理和参数介绍
- 每天一个linux命令(15):tail 命令
- linux系统ferdora 15最新版下载
- linux系统内核参数说明
- Linux 中 RPM 命令参数使用详解
- 快学Scala读书笔记之Chapter15(注解)、Chapter17(类型参数)
- linux 查看参数
- linux 操作系统优化参数说明
- linux中mount命令参数详解(nfs 参数)
- BootLoader与Linux内核的参数传递【转】
- linux的top命令参数详解
- 通过sysstat监控linux各项参数
- linux grep命令参数及用法详解---linux管道命令grep
- Linux setitimer参数设定如何使用程序
- Linux curl命令参数详解--转载
- Linux操作系统内核启动参数详细解析
- 【转】Linux那些事儿 之 戏说USB(15)繁华落尽
- 也玩linux---linux tar 压缩,解压参数与实例