驱动
文章平均质量分 87
SouthernBird
路漫漫其修远兮
展开
-
应用层控制灯,自动创建设备节点,ioctl函数
在开发板上进行运行的时候每次都需要将文件移动到nfs挂载的文件下,耗时耗力,修改makefile能解决这个问题。此时执行make命令能把生成的.ko文件和a.out文件加载到/opt/6818/rootfs/rootfs下。每次我们都需要自己创建设备节点,站在用户层面想,用户是不会自己创建设备节点的,所以上面驱动还是需要优化。生成的可执行文件是在arm开发板上运行,所以编译使用交叉编译工具链。安装后自动生成了hello文件(在dev目录下)驱动是开发板上的驱动,编译依赖开发板上的内核。原创 2023-06-28 15:21:08 · 499 阅读 · 0 评论 -
应用程序传递数据给驱动和驱动操作LED灯
因为驱动是基于开发板写的,编译的时候使用开发板内核。结合我驱动系统移植篇的博客可以知道我的nfs搭建在。数据从应用层到驱动,又从驱动又回到了应用层。Linux内核启动之后,操作的全是虚拟地址。使用gcc编译器进行编译,生成可执行文件。想要让灯灭,将三个引脚输出低电平就可。1个为4字节,大小就应该写36。将hello.ko放到此文件下。添加设备文件权限(不能忘记)Led灯的寄存器是物理地址。原创 2023-06-20 18:34:01 · 540 阅读 · 0 评论 -
导出符号表和字符设备驱动
若是不安装add.ko文件在安装hello.ko时候会出现add.o未定义的情况。验证分析:分析hello.c源代码得出拆卸hello.ko文件会调用add函数。运行应用层的可执行程序,我的是a.out文件。关于fops结构体,我们只用到几个就可。使用gcc进行编译,生成a.out文件。在驱动同级目录下创建test.c文件。hello文件的Makefile。add文件的Makefile。我们可以看到在生成一个。可以手动创建设备文件。原创 2023-06-20 14:34:36 · 721 阅读 · 0 评论 -
驱动多文件编译和驱动命令行传参
重点看:obj-m:=demo.o 和 demo-y+=hello.o add.o两句(前面的makefile在我上片帖子已经做了解析)我使用了hello.c和add.c两个文件。注:按住传递命令行数组时候使用下方命令。上图就能看到我的驱动只有一个变量ww。下面教程,以数组驱动为例。关于变量的描述成功出现。原创 2023-06-19 22:57:17 · 939 阅读 · 0 评论 -
驱动模块和printk函数
KERNELDIR:= b/modules/$(shell uname -r)ild/:这行代码定义了一个变量KERNELDIR,它指定了内核源代码的路径。它使用了uname -r命令来获取当前正在运行的内核的版本号,并将其与b/modules/路径拼接在一起。与all目标类似,它使用-C选项指定了内核源代码的路径,M选项指定了模块源代码的路径,clean表示清理。在这个Makefile中,hello.o是一个示例模块的名称,你可以根据自己的需求修改它。在这个规则下,它定义了要执行的命令。原创 2023-06-19 18:28:08 · 1734 阅读 · 0 评论 -
驱动操作 驱动移植试验和Source Insight添加项目
驱动移植试验和Source Insight添加项目,图文解说原创 2023-06-16 20:14:49 · 824 阅读 · 0 评论