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

本实验对应的网盘路径为:iTOP-RK3568 开发板【底板 V1.7 版本】\03_【iTOP-RK3568开发板】指南教程\02_Linux 驱动配套资料\04_Linux 驱动例程\02。

本章实验将编写 Linux 下的驱动传参实例代码,通过"insmod"命令进行参数的传递,并将相应的参数打印到串口终端上。

编写完成的 parameter.c 代码如下(图 5-3)所示

1、#include <linux/init.h>

2、#include <linux/module.h>

3、static int number;//定义 int 类型变量 number

4、static char *name;//定义 char 类型变量 name

5、static int para[8];//定义 int 类型的数组

6、static char str1[10];//定义 char 类型字符串 str1

7、static int n_para;//定义 int 类型的用来记录 module_param_array 函数传递数组元素个数的变量 n_para

8、module_param(number, int, S_IRUGO);//传递 int 类型的参数 number,S_IRUGO 表示权限为可读

9、module_param(name, charp, S_IRUGO);//传递 char 类型变量 name

10、module_param_array(para , int , &n_para , S_IRUGO);//传递 int 类型的数组变量 para

11、module_param_string(str, str1 ,sizeof(str1), S_IRUGO);//传递字符串类型的变量 str1

12、static int __init parameter_init(void)//驱动入口函数

13、{

14、static int i;

15、printk(KERN_EMERG "%d\n",number);

16、printk(KERN_EMERG "%s\n",name);

17、for(i = 0; i < n_para; i++)

18、{

19、printk(KERN_EMERG "para[%d] : %d \n", i, para[i]);

20、}

21、printk(KERN_EMERG "%s\n",str1);

22、return 0;

23、}

24、static void __exit parameter_exit(void)//驱动出口函数

25、{

26、printk(KERN_EMERG "parameter_exit\n");

27、}

28、module_init(parameter_init);//注册入口函数

29、module_exit(parameter_exit);//注册出口函数

30、MODULE_LICENSE("GPL v2");//同意 GPL 开源协议

31、MODULE_AUTHOR("topeet"); //作者信息

以上代码将传递 int 类型参数 number、char 类型参数 name、int 类型的数组 para 和 char类型字符串 str1,并在驱动入口函数中,对各个参数进行打印。在下一小节会进行驱动加载测试。

相关推荐
信工 18021 天前
rk3568-Linux应用程序和驱动程序接口
linux·驱动开发·rk3568
Industio_触觉智能6 天前
开源鸿蒙赋能水务智能化,IPC3528水务鸿蒙网关
鸿蒙系统·openharmony·rk3568·开源鸿蒙·工控机·鸿蒙水务·水务鸿蒙
木下~learning9 天前
初学Linux之设备树的使用| RK3399上实操
linux·设备树·rk3568·rk3399·平台总线和外设总线
Industio_触觉智能13 天前
【转载】2026数字中国信创赛道【开放原子电鸿专项赛】开启报名,触觉智能电鸿硬件
信创·openharmony·rk3568·国产化·开源鸿蒙·电鸿·电力鸿蒙
阿拉斯攀登19 天前
【RK3576 安卓 JNI/NDK 系列 04】JNI 核心语法(下):字符串、数组与对象操作
android·驱动开发·rk3568·瑞芯微·rk安卓驱动·jni字符串操作
阿拉斯攀登20 天前
【RK3576 安卓 JNI/NDK 系列 05】NDK 构建系统:CMakeLists.txt 从入门到精通
cmake·rk3568·瑞芯微·rk安卓驱动·安卓jni·ndk构建系统
阿拉斯攀登20 天前
【RK3576 安卓 JNI/NDK 系列 10】综合实战:RK3576 智能环境监测系统全实现 + 系列总结
rk3568·瑞芯微·rk安卓驱动·ndk构建系统·嵌入式智能终端
阿拉斯攀登21 天前
【RK3576 安卓 JNI/NDK 系列 09】RK3576 实战(三):JNI 调用 librga 实现 2D 硬件加速图像处理
android·驱动开发·rk3568·瑞芯微·rk安卓驱动·rk3576 rga加速
阿拉斯攀登22 天前
第 12 篇 RK 平台安卓驱动实战 5:SPI 设备驱动开发,以 SPI 屏 / Flash 为例
android·驱动开发·rk3568·瑞芯微·嵌入式驱动·安卓驱动·spi 设备驱动
阿拉斯攀登22 天前
第 13 篇 输入设备驱动(触摸屏 / 按键)开发详解,Linux input 子系统全解析
android·linux·运维·驱动开发·rk3568·瑞芯微·rk安卓驱动