讯为Exynos4412开发板例程及注释——驱动模块传递参数
来源:互联网 发布:ipad淘宝hd5.0.1版本 编辑:程序博客网 时间:2024/06/08 09:05
#include <linux/init.h>/*包含初始化宏定义的头文件,代码中的module_init和module_exit在此文件中*/#include <linux/module.h>/*包含初始化加载模块的头文件,代码中的MODULE_LICENSE在此头文件中*//*定义module_param module_param_array的头文件*/#include <linux/moduleparam.h>/*定义module_param module_param_array中perm的头文件*/#include <linux/stat.h>MODULE_LICENSE("Dual BSD/GPL");/*声明是开源的,没有内核版本限制*/MODULE_AUTHOR("iTOPEET_dz");/*声明作者*/static int module_arg1,module_arg2;static int int_array[50];static int int_num;/*需要注意的有如下三点:1、 必须包含头文件linux/moduleparam.h;2、 变量whom和howmany必须是全局变量;3、 调用module_param(whom, charp, S_IRUGO)和module_param(howmany, int, S_IRUGO)来对两个变量进行声明;*/module_param(module_arg1,int,S_IRUSR);module_param(module_arg2,int,S_IRUSR);module_param_array(int_array,int,&int_num,S_IRUSR);/*#define module_param(name,type,perm) module_param_named(name,name,type,perm)-name 参数模块名称-type 模块参数数据类型-perm 模块参数访问权限(S_IRUSR:所有文件所有者可读)#define module_param_array(name,type,nump,perm) module_param_array_named(name,name,type,nump,perm)*/static int hello_init(void){int i;printk(KERN_EMERG "module_arg1 is %d!\n",module_arg1);printk(KERN_EMERG "module_arg2 is %d!\n",module_arg2);for(i=0;i<int_num;i++){printk(KERN_EMERG "int_array[%d] is %d!\n",i,int_array[i]);}printk(KERN_EMERG "Hello World enter!\n");/*打印信息,KERN_EMERG表示紧急信息*/return 0;}static void hello_exit(void){printk(KERN_EMERG "Hello world exit!\n");}/*实验时如何输入命令呢?insmod /mnt/udisk/moudle_para,.ko module_arg1=10 module_arg=20 int_array=11,12,13,14,15*/module_init(hello_init);/*初始化函数*/module_exit(hello_exit);/*卸载函数*//*11 static char *msg;12 module_param(msg, charp, 0644);13 14 15 static int hello_init(void)16 {17 printk(KERN_ALERT "hello_init() start\n");18 printk(KERN_ALERT "%s\n", msg);19 20 return 0;21 }输入命令:insmod kernel_probe_param.ko msg="abcedfg"*/
阅读全文
0 0
- 讯为Exynos4412开发板例程及注释——驱动模块传递参数
- 讯为Exynos4412开发板例程及注释——LED
- 讯为Exynos4412开发板例程及注释——动/静态申请字符类设备号代码及注释
- 迅为Exynos4412开发板例程及注释——注册字符类设备
- 迅为Exynos4412开发板例程及注释——原子操作与原子位操作
- 迅为Exynos4412开发板例程及注释——QT环境配置与HelloWorld
- Exynos4412 IIC总线驱动开发(一)—— IIC 基础概念及驱动架构分析
- Exynos4412 IIC总线驱动开发(一)—— IIC 基础概念及驱动架构分析
- Exynos4412 IIC总线驱动开发(一)—— IIC 基础概念及驱动架构分析
- Exynos4412 中断驱动开发(一)—— 中断基础及中断的注册过程
- Exynos4412 中断驱动开发(一)—— 中断基础及中断的注册过程
- Lnux设备驱动开发——2.了解Exynos4412芯片
- Exynos4412 IIC总线驱动开发(二)—— IIC 驱动开发
- Exynos4412 IIC总线驱动开发(二)—— IIC 驱动开发
- Exynos4412 ADC 设备驱动开发
- Exynos4412 ADC 设备驱动开发
- [Windows驱动开发](三)基础知识——驱动例程
- [Windows驱动开发](三)基础知识——驱动例程
- tk1 刷机血路
- java程序员笔试试题
- 使用Burp Suite做http proxy抓取android请求
- Dubbo client 启动报错:No provider available for the service use dubbo version 2.5.3
- android开发-自定义控件顺序
- 讯为Exynos4412开发板例程及注释——驱动模块传递参数
- 【bzoj3884】上帝与集合的正确用法
- C语言中的常量和变量
- 高二&高一&初三模拟赛22 总结
- 浅谈Vue个性化dashBoard 布局
- pageX和clientX
- 文章标题
- c++学习笔记第二天
- 卡尔曼滤波