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,并在驱动入口函数中,对各个参数进行打印。在下一小节会进行驱动加载测试。

相关推荐
Ching·2 天前
linux系统编程(十③)RK3568 socket之 TCP 服务器的实现【更新客户端断开重连依旧可以收发】
linux·服务器·tcp/ip·rk3568
Ching·3 天前
linux系统编程(十)RK3568 socket之 UDP的实现
linux系统编程·rk3568·嵌入式开发
Ching·3 天前
linux系统编程(十②)RK3568 socket之 TCP 客户端的实现
linux·tcp/ip·rk3568
ShiMetaPi6 天前
操作【GM3568JHF】FPGA+ARM异构开发板 使用指南:音频接口
arm开发·嵌入式硬件·fpga开发·rk3568
Ching·11 天前
RK3568入门之VScode远程连接开发板,直接开发板上面编程和实验
linux·ide·vscode·编辑器·rk3568
Industio_触觉智能19 天前
瑞芯微RK35XX系列FFmpeg硬件编解码实测,详细性能对比!
ffmpeg·rk3588·rk3568·编解码·rk3562·rk3576
Industio_触觉智能1 个月前
瑞芯微RK35XX系列Linux实时性详细测试对比( PREEMPT_RT和Xenomai )
开发板·rk3568·rk3562·rk3576·实时linux·rk3506·rt linux
ARM+FPGA+AI工业主板定制专家1 个月前
基于RK3576+FPGA的无人机飞控系统设计
linux·fpga开发·无人机·rk3588·rk3568
ShiMetaPi1 个月前
操作【GM3568JHF】FPGA+ARM异构开发板 使用指南:蓝牙
arm开发·嵌入式硬件·fpga开发·rk3568
ShiMetaPi2 个月前
【GM3568JHF】FPGA+ARM异构开发板 使用指南:显示与触摸
arm开发·嵌入式硬件·fpga开发·rk3568