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

相关推荐
peixiuhui2 天前
突破边界!RK3576边缘计算网关:为工业智能注入“芯”动力
人工智能·物联网·边缘计算·rk3588·iot·rk3568·rk3576
peixiuhui2 天前
OpenPLC与RK3576边缘计算网关中结合应用的技术案例与分析
人工智能·边缘计算·rk3588·rk3568·openplc·rk3576·g8701
ShiMetaPi12 天前
GM-3568JHF丨ARM+FPGA异构开发板系列教程:外设教程 09 CAN
arm开发·fpga开发·fpga·rk3568
ShiMetaPi13 天前
GM-3568JHF丨ARM+FPGA异构开发板系列教程:外设教程 08 串口
stm32·单片机·fpga开发·rk3568
ShiMetaPi17 天前
GM-3568JHF丨ARM+FPGA异构开发板系列教程:外设教程 07 音频
arm开发·fpga开发·音视频·fpga·rk3568
ShiMetaPi19 天前
GM-3568JHF丨ARM+FPGA异构开发板系列教程:外设教程 05 蓝牙
arm开发·fpga开发·fpga·rk3568
Industio_触觉智能1 个月前
瑞芯微RK3568平台FFmpeg硬件编解码移植及性能测试实战攻略
ffmpeg·rk3588·rk3568·瑞芯微·rk3562·rk3576
洞洞妖2 个月前
RK3568开发板eDP概率性显示问题:Uboot Training重试机制优化方案
rk3568
以琦琦为中心2 个月前
在RK3568开发板嵌入式开发中,配置NFS服务是实现与Ubuntu虚拟机之间文件共享的常用方法
linux·运维·ubuntu·rk3568
旋风旋风2 个月前
rk3568-android11-wifi-aic8800
rk3568·aic8800