您的位置:首页 > 娱乐 > 八卦 > 免费的行情网站下载安装_域名去哪里买_搜索引擎营销的原理_seo怎么推广

免费的行情网站下载安装_域名去哪里买_搜索引擎营销的原理_seo怎么推广

2024/10/5 21:15:15 来源:https://blog.csdn.net/Jiang_13314/article/details/101839692  浏览:    关键词:免费的行情网站下载安装_域名去哪里买_搜索引擎营销的原理_seo怎么推广
免费的行情网站下载安装_域名去哪里买_搜索引擎营销的原理_seo怎么推广

                              ARM驱动学习之7 驱动模块传参数

1.02_DriverModule_01例程的基础上编写简单模块module_param
Makefile 文件名字修改为module_param 
clean部分:rm -rf *.mod.c *.o *.order *.ko *.mod.o *.symvers2.修改module_param.c
(1):添加头文件
//定义module_param module_param_array的头文件
#include <linux/moduleparam.h>
//定义module_param module_param_array的参数
#include <linux/stat.h>(2)函数定义:
static int module_arg1,module_arg2;
static int int_array[50];
static int int_num;module_param(module_arg1,int,S_IRUSR);– module_arg1:模块参数的名称
– int: 模块参数的数据类型(支持int long short uint ulong ushort类
型)
– S_IRUSR: 模块参数的访问权限(S_IRUSR参数表示所有文件所有者
可读)module_param(module_arg2,int,S_IRUSR);
module_param_array(int_array,int,&int_num,S_IRUSR);– int_array:模块参数的名称//为数组类型
– int: 模块参数的数据类型(支持int long short uint ulong ushort类
型)
– int_num:保存参数个数的地址
– S_IRUSR: 模块参数的访问权限(S_IRUSR参数表示所有文件所有者
可读)(3)在hello_init中加入如下:
int i;
printk(KERN_EMERG "module_arg1 is %d,module_arg1 is %d \n",module_arg1);
printk(KERN_EMERG "module_arg2 is %d,module_arg1 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]);}4.make clean 看是否清空了其他无用文件
5.make编译文件测试模块传参数,并将传递的参数打印出来
– insmod /mnt/udisk/module_param.ko module_arg1=10 module_arg2=20 int_array=11,12,13,14,15,16,17,18
– cat /sys/module/module_param/parameters/xxx Tab显示可以查询参数

源码:

#include <linux/moduleparam.h>
/*定义module_param module_param_array中perm的头文件*/
#include <linux/stat.h>MODULE_LICENSE("Dual BSD/GPL");
MODULE_AUTHOR("JT");module_param(module_arg1,int,S_IRUSR);
module_param(module_arg2,int,S_IRUSR);
module_param_array(int_array,int,&int_num,S_IRUSR);static int hello_init(void)
{int i;static int module_arg1,module_arg2;static int int_array[50];static int int_num;printk(KERN_EMERG "module_arg1 is %d,module_arg1 is %d \n",module_arg1);printk(KERN_EMERG "module_arg2 is %d,module_arg1 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 JT ENTER\r\n");return 0;}static void hello_exit(void)
{printk(KERN_EMERG "HELLO JT exit\r\n");}module_init(hello_init);
module_exit(hello_exit);

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com