就是塔塔的个人空间 https://www.eechina.com/space-uid-136863.html [收藏] [复制] [RSS]

博客

iTOP-RK3399开发板驱动模块传数组

已有 625 次阅读2022-9-15 16:03

通过 43.1 章节驱动理论基础的学习,我们已经把驱动传参的基本概念搞懂了。我们在 Windows 上面新
建 parameter.c 文件,并用 sourceinsight 打开。我们将上次编写的 helloworld.c 里面的代码拷贝到 parameter.c
文件,在此基础上进行编写。
/*
* @Descripttion: 驱动模块传递数组
* @version: * @Author: topeet */
#include
#include
//定义数组 b
static int b[5];
//定义实际传入进去参数的个数
static int count;
static int a;
module_param(a ,int,S_IRUSR);
//传递数组的参数
module_param_array(b,int,&count,S_IRUSR);
static int hello_init(void){
int i;
//循环遍历数组 b 的值
for(i = 0;i<count;i++){
//打印数组 b 的值
printk("b[%d] = %d \n",i,b[i]);
}
//打印传入参数的个数
printk("count= %d \n",count);
//printk("a = %d \n",a);
//printk("hello world! \n");
return 0;
}
static void hello_exit(void){
printk("a = %d \n",a);
printk("gooodbye! \n");
}
module_init(hello_init);
module_exit(hello_exit);
MODULE_LICENSE("GPL");
我们再将驱动传入数组的代码编译成驱动模块,加载驱动模块,如下图所示:
rmmod parameter
insmod parameter.ko b=1,2,3,4,5
</count;i++){<>

同样我们可以进入到/sys/module/parameter/目录下,查看变量 b 的权限,如下图所示:

cd /sys/module/parameter/

ls

cd parameters/

ls

ls b -l

如果我们多传入进去参数,会发生什么呢?我们试试传入六个数

到此,我们已经学会了在 iTOP-3399 开发板上面给驱动模块传普通参数和数组参数了。


路过

鸡蛋

鲜花

握手

雷人

评论 (0 个评论)

facelist

您需要登录后才可以评论 登录 | 立即注册

关于我们  -  服务条款  -  使用指南  -  站点地图  -  友情链接  -  联系我们
电子工程网 © 版权所有   京ICP备16069177号 | 京公网安备11010502021702
返回顶部