0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

【迅为工业RK3568稳定可靠】itop-3568开发板驱动开发第4章驱动模块传参实验

北京迅为电子 2025-11-06 14:25 次阅读
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群


选择迅为开发板,就是选择完整的技术保障体系

在RK3568核心板同质化日趋严重的今天,载板的设计与用料才是真正区分“玩具”与“工具”的分水岭。迅为RK3568开发板凭借其工业级设计理念,将RK3568的强劲算力安全、可靠地输送到每一个工业应用节点。

迅为科技为您提供全方位支持:

·完整资料库:提供数据手册、硬件原理图、源码包、编译指南等
·技术保障:资深工程师团队提供专业的技术支持服务
·持续更新:系统源码持续维护,定期发布功能更新与优化
·工业级品质:-40℃至+85℃宽温设计,满足严苛工业环境需求

对于正在开发工业控制器、边缘计算网关、机器视觉设备或智能NVR开发者而言,迅为提供的稳定平台和完善支持,正是项目成功的关键保障。

wKgZPGkMPtmAVsbxAAS76N6sVHU035.png

wKgZO2kMPtmABsZFAANYqPFp8YA012.png

第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所示:

wKgZPGkMPtiAHV6fAAC0SC7ddtE419.png

module_param宏用来进行基本类型参数的传递。其中参数name表示模块参数的名称。

参数type表示模块参数的数据类型,参数type可以取以下任意一种情况:

wKgZO2kMPtiALM3cAACG065T3xg970.png

参数perm表示在sysfs中相应文件的访问权限。访问权限与Linux中访问权限管理相同,

权限可以使用数字如0666或者使用内核源码/include/linux/stat.h文件宏定义表示,如代码清单

4.3所示。

wKgZO2kMPtiAHcQ9AAEtgnXZBXA187.png

如果要传递数组类型参数可以使用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。

wKgZO2kMPtiAFgkcAABLH8pDoCw046.png

4.2 实验程序的编写

本实验代码存放在iTOP-RK3568开发板【底板V1.7版本】\03_【iTOP-RK3568开发板】

指南教程\02_Linux驱动配套资料\04_Linux驱动例程\02目录下

parameter.c代码实现通过insmod命令加载内核模块时候实现参数传递,并将传递给内核模

块的参数打印到串口终端上。其代码如代码清单4.5所示。

wKgZPGkMPtiAOcjBAAKjiAs9nY0994.png

代码清单4.5将传递int类型参数number、char类型参数name、int类型的数组para和char

类型字符串str1,并在驱动入口函数中对各个参数值进行打印。

4.3 运行测试

4.3.1 编译驱动程序

在parameter.c代码同一目录下创建Makefile文件,如图4.1所示。

wKgZPGkMPtiAGHWxAABiZ84dWMY121.png

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

代码清单4.6

wKgZPGkMPtiAQwNSAADYmlD9sKg762.png

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

wKgZO2kMPtiAHT0uAAIEoAJ4Znw332.png

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

wKgZPGkMPtiAQ3XIAACZbZArBtg270.png

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所示:

wKgZO2kMPtmATNr3AAFv-_n5YsI708.png

通过图4.4可以看出传递的参数都分别打印了出来。输入rmmod parameter.ko命令可以卸

载驱动。打印信息如图4.5所示:

wKgZO2kMPtiAFutcAACV4_A-jWE855.png

迅为定制服务:根据项目需求提供硬件定制和软件适配服务

获取更多支持:

·访问迅为查看itop-3568开发板驱动开发指南完整技术文档
·加入迅为技术交流群获取实时支持
·联系销售获取定制化解决方案

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 开发板
    +关注

    关注

    26

    文章

    6419

    浏览量

    120833
  • RK3568
    +关注

    关注

    5

    文章

    654

    浏览量

    8109
  • 迅为电子
    +关注

    关注

    0

    文章

    98

    浏览量

    400
收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    电子RK3568+RK3588开发板资料焕新升级!多维度优化助力开发者效率提升

    电子RK3568+RK3588开发板资料焕新升级!多维度优化助力开发者效率提升
    的头像 发表于 03-26 15:06 471次阅读
    <b class='flag-5'>迅</b><b class='flag-5'>为</b>电子<b class='flag-5'>RK3568+RK</b>3588<b class='flag-5'>开发板</b>资料焕新升级!多维度优化助力<b class='flag-5'>开发</b>者效率提升

    驱动开发实战:iTOP-RK3568开发板eDP屏幕移植全攻略

    驱动开发实战:iTOP-RK3568开发板eDP屏幕移植全攻略
    的头像 发表于 12-30 15:42 1251次阅读
    <b class='flag-5'>迅</b><b class='flag-5'>为</b><b class='flag-5'>驱动</b><b class='flag-5'>开发</b>实战:<b class='flag-5'>iTOP-RK3568</b><b class='flag-5'>开发板</b>eDP屏幕移植全攻略

    iTOP-3568开发板 Linux驱动开发实战:menuconfig图形化配置实验

    iTOP-3568开发板 Linux驱动开发实战:menuconfig图形化配置
    的头像 发表于 11-24 15:29 948次阅读
    <b class='flag-5'>迅</b><b class='flag-5'>为</b><b class='flag-5'>iTOP-3568</b><b class='flag-5'>开发板</b> Linux<b class='flag-5'>驱动</b><b class='flag-5'>开发</b>实战:menuconfig图形化配置<b class='flag-5'>实验</b>

    工业RK3568稳定可靠itop-3568开发板Linux驱动开发实战:RK3568内核模块符号导出详解

    工业RK3568稳定可靠itop-3568
    的头像 发表于 11-21 13:25 1629次阅读
    【<b class='flag-5'>迅</b><b class='flag-5'>为</b><b class='flag-5'>工业</b><b class='flag-5'>RK3568</b><b class='flag-5'>稳定</b><b class='flag-5'>可靠</b>】<b class='flag-5'>itop-3568</b><b class='flag-5'>开发板</b>Linux<b class='flag-5'>驱动</b><b class='flag-5'>开发</b>实战:<b class='flag-5'>RK3568</b>内核<b class='flag-5'>模块</b>符号导出详解

    避坑指南!RK3568开发板选型,这5点没看清千万别下手!(附驱动开发指南资源)

    避坑指南!RK3568开发板选型,这5点没看清千万别下手!(附驱动开发指南资源)
    的头像 发表于 10-30 15:49 1078次阅读
    避坑指南!<b class='flag-5'>RK3568</b><b class='flag-5'>开发板</b>选型,这5点没看清千万别下手!(附<b class='flag-5'>迅</b><b class='flag-5'>为</b><b class='flag-5'>驱动</b><b class='flag-5'>开发</b>指南资源)

    【北京itop-3568开发板驱动开发指南(重制版)

    iTOP-RK3568开发板驱动开发指南目录:前言学习方法Linux驱动基础 1
    发表于 10-30 15:48 43次下载

    iTOP-RK3568人工智能开发板mobilenet图像分类模型推理测试

    想快速验证MobileNet图像分类模型的实际运行效果?iTOP-RK3568人工智能开发板,让模型推理测试高效又省心。
    的头像 发表于 08-28 15:53 1559次阅读
    <b class='flag-5'>迅</b><b class='flag-5'>为</b><b class='flag-5'>iTOP-RK3568</b>人工智能<b class='flag-5'>开发板</b>mobilenet图像分类模型推理测试

    RK3568开发板模型推理测试实战LPRNet 车牌识别

    RK3568开发板模型推理测试实战LPRNet 车牌识别
    的头像 发表于 08-25 14:55 1562次阅读
    <b class='flag-5'>迅</b><b class='flag-5'>为</b><b class='flag-5'>RK3568</b><b class='flag-5'>开发板</b>模型推理测试实战LPRNet 车牌识别

    RK3568 重制版RK3568驱动指南全面升级

    RK3568 重制版RK3568驱动指南全面升级
    的头像 发表于 07-28 15:25 3569次阅读
    <b class='flag-5'>迅</b><b class='flag-5'>为</b><b class='flag-5'>RK3568</b> 重制版<b class='flag-5'>RK3568</b><b class='flag-5'>驱动</b>指南全面升级

    技术分享 | RK3568开发板如何将 Linux 板卡虚拟成U盘

    技术分享 | RK3568开发板如何将 Linux 板卡虚拟成U盘
    的头像 发表于 06-04 10:57 1334次阅读
    技术分享 | <b class='flag-5'>迅</b><b class='flag-5'>为</b><b class='flag-5'>RK3568</b><b class='flag-5'>开发板</b>如何将 Linux 板卡虚拟成U盘

    RK3568开发板驱动指南GPIO子系统GPIO子系统API函数的引入

    RK3568开发板驱动指南GPIO子系统GPIO子系统API函数的引入
    的头像 发表于 05-29 14:05 1193次阅读
    <b class='flag-5'>迅</b><b class='flag-5'>为</b><b class='flag-5'>RK3568</b><b class='flag-5'>开发板</b><b class='flag-5'>驱动</b>指南GPIO子系统GPIO子系统API函数的引入

    RK3568开发板安装烧录工具-安装 RKTool 驱动

    在烧写镜像之前首先需要安装 RKTool 驱动。 RKTool 驱动在网盘资料“iTOP-3568 开发板\\\\01_【iTOP-RK3568
    发表于 05-29 10:47

    RK3568驱动指南GPIO子系统 GPIO操作函数实验

    电子RK3568开发板驱动指南GPIO子系统 GPIO操作函数实验
    的头像 发表于 05-28 15:24 1509次阅读
    <b class='flag-5'>迅</b><b class='flag-5'>为</b><b class='flag-5'>RK3568</b><b class='flag-5'>驱动</b>指南GPIO子系统 GPIO操作函数<b class='flag-5'>实验</b>

    RK3568开发板驱动指南GPIO子系统三级节点操作函数实验

    RK3568开发板驱动指南GPIO子系统三级节点操作函数实验
    的头像 发表于 05-26 15:39 1678次阅读
    <b class='flag-5'>迅</b><b class='flag-5'>为</b><b class='flag-5'>RK3568</b><b class='flag-5'>开发板</b><b class='flag-5'>驱动</b>指南GPIO子系统三级节点操作函数<b class='flag-5'>实验</b>

    itop-3568开发板驱动开发指南-实验程序的编写

    实验对应的网盘路径iTOP-RK3568 开发板【底板 V1.7 版本】\\\\03_【iTOP-RK3568
    发表于 05-19 10:26