选择迅为开发板,就是选择完整的技术保障体系
在RK3568核心板同质化日趋严重的今天,载板的设计与用料才是真正区分“玩具”与“工具”的分水岭。迅为RK3568开发板凭借其工业级设计理念,将RK3568的强劲算力安全、可靠地输送到每一个工业应用节点。
迅为科技为您提供全方位支持:
·完整资料库:提供数据手册、硬件原理图、源码包、编译指南等
·技术保障:资深工程师团队提供专业的技术支持服务
·持续更新:系统源码持续维护,定期发布功能更新与优化
·工业级品质:-40℃至+85℃宽温设计,满足严苛工业环境需求
对于正在开发工业控制器、边缘计算网关、机器视觉设备或智能NVR的开发者而言,迅为提供的稳定平台和完善支持,正是项目成功的关键保障。


第4章 驱动模块传参实验
本章我们学习驱动模块传参,加载内核模块时使用insmod命令也可以传递参数。
4.1 内核模块传参简介
内核模块传参是一种可以随时向内核模块传递、修改参数的方法。例如可以传递串口驱
动的波特率、数据位数、校验位、停止位等参数进行功能的设置,从而节省编译模块的时间,
提高调试速度。
Linux内核提供了module_param(name, type, perm)、module_param_array(name, type, nu
mp, perm)宏和module_param_string(name, string, len, perm)宏,分别进行基本类型、数组和字
符串参数的传递。这些宏定义在内核源码/include/linux/moduleparam.h文件中(在module.h头文
件中已经对export.h头进行引用,所以不需要单独引用moduleparam.h文件),详细定义如代码4.
1所示:

module_param宏用来进行基本类型参数的传递。其中参数name表示模块参数的名称。
参数type表示模块参数的数据类型,参数type可以取以下任意一种情况:

参数perm表示在sysfs中相应文件的访问权限。访问权限与Linux中访问权限管理相同,
权限可以使用数字如0666或者使用内核源码/include/linux/stat.h文件宏定义表示,如代码清单
4.3所示。

如果要传递数组类型参数可以使用module_param_array宏,module_param_array宏相较
于module_param宏多了n_para参数,该参数用来表示传递参数个数,因为n_para参数值会根
据输入的参数个数而改变,所以n_para的最终值为传递的数组元素个数。
最后是module_param_string(name, string, len, perm)宏,改用来传递字符串类型的变量,四
个参数的定义如下所示:
lname:外部传入的参数名,即加载模块时的传入值
lstring:内部的变量名,即程序内定义的参数名
llen:以string命名的buffer大小(可以小于buffer的大小,但是没有意义)
lperm:模块参数的访问权限
如代码清单4.4使用module_param_string(name, string, len, perm)宏传递字符串类型变量str。

4.2 实验程序的编写
本实验代码存放在iTOP-RK3568开发板【底板V1.7版本】\03_【iTOP-RK3568开发板】
指南教程\02_Linux驱动配套资料\04_Linux驱动例程\02目录下。
parameter.c代码实现通过insmod命令加载内核模块时候实现参数传递,并将传递给内核模
块的参数打印到串口终端上。其代码如代码清单4.5所示。

代码清单4.5将传递int类型参数number、char类型参数name、int类型的数组para和char
类型字符串str1,并在驱动入口函数中对各个参数值进行打印。
4.3 运行测试
4.3.1 编译驱动程序
在parameter.c代码同一目录下创建Makefile文件,如图4.1所示。

Makefile文件内容如代码清单4.6所示.
代码清单4.6

使用命令make编译驱动程序,编译成功如图4.2所示。

编译完生成parameter.ko目标文件,如下图4.3所示

4.3.2 运行测试
使用insmod命令加载内核模块实现内核模块传参,命令格式为:
insmod对应的模块 参数
parameter.ko内核模块可以传递3个参数,使用以下命令分别传递为int类型的参数
number,char类型的参数name和int数组类型的参数para。
insmod parameter.ko number=100 name="topeet" para=0,1,2,3,4,5,6,7 str="itop"
打印信息如图4.4所示:

通过图4.4可以看出传递的参数都分别打印了出来。输入rmmod parameter.ko命令可以卸
载驱动。打印信息如图4.5所示:

迅为定制服务:根据项目需求提供硬件定制和软件适配服务
获取更多支持:
·访问迅为查看《itop-3568开发板驱动开发指南》完整技术文档
·加入迅为技术交流群获取实时支持
·联系销售获取定制化解决方案
-
开发板
+关注
关注
26文章
6419浏览量
120833 -
RK3568
+关注
关注
5文章
654浏览量
8109 -
迅为电子
+关注
关注
0文章
98浏览量
400
发布评论请先 登录
迅为iTOP-RK3568人工智能开发板mobilenet图像分类模型推理测试
【迅为工业RK3568稳定可靠】itop-3568开发板驱动开发第4章驱动模块传参实验
评论