当前位置: 首页 > news >正文

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

相关文章:

  • 【氮化镓】关态下负栅压对 p-GaN HEMTs 单粒子效应的影响
  • 433. 最小基因变化
  • PostGIS实现栅格数据导出图片标准格式【ST_AsGDALRaster】
  • JVM核心配置参数详解与调优指南
  • 《Head First 设计模式》第二章 - 笔记
  • go 与面向对象编程(OOP)
  • DTAS 3D多约束装配助力悬架公差分析尺寸链计算:麦弗逊/双叉臂/多连杆/H臂一网打尽
  • 机器学习第十七讲:PCA → 把100维数据压缩成3D视图仍保持主要特征
  • Ubuntu 20.04之Docker安装ES7.17.14和Kibana7.17.14
  • HarmonyOS Navigation组件深度解析与应用实践
  • 【强化学习】#6 n步自举法
  • 用户账号及权限管理:企业安全的基石与艺术
  • 工业自动化实践:机器人上料系统如何优化生产流程?
  • 对于程序员的个人理解
  • 软考教材重点内容 信息安全工程师 25章 移动安全 26章 大数据安全
  • C#学习9——接口、抽象类
  • 黄仁勋Computex演讲:将于三季度推出下一代GB300系统,个人AI计算机DGX Spark已全面投产
  • 【python】pyenv安装
  • HGDB中如何为表增加自增主键
  • InternLM 论文分类微调实践(XTuner 版)
  • “80后”湖南岳阳临湘市市长刘琦任临湘市委书记
  • 两次通话、三点诉求,泽连斯基对美称愿与俄签署和平备忘录
  • 长沙至赣州高铁初步设计获批,可填补湘赣两省斜向交通空白
  • 多家国有大行存款利率即将迎来新一轮下调
  • 复旦兼职教授高纪凡首秀,勉励学子“看三十年才能看见使命”
  • 新冠阳性率升高,专家:新冠变异株致病力没太多变化