随笔分类 - linux / 设备驱动 / 字符设备驱动
摘要:在总线设备驱动模型中,平台设备是写在c文件中。使用设备树时,平台设备事先并不存在,在dts文件中构造节点,节点里面含有资源。dts文件被编译成dtb文件,然后传递给内核。内核会解析dtb文件,得到一个个device_node,每个节点对应一个device_node结构体,每个device_node结
阅读全文
摘要:以led驱动程序为例,介绍字符设备驱动程序的传统写法。 驱动程序: 程序代码来源于韦老大视频代码 2、测试程序
阅读全文
摘要:以led驱动为例,讲解如何写一个字符设备驱动程序。 1)看原理图 a.确定引脚 b.看芯片手册,确定如何操作引脚 2)写驱动程序 3)写测试程序 最简单的字符设备驱动程序的框架: App: open read write ioctl 驱动: drv_open drv_read drv_write d
阅读全文
摘要:总线设备驱动框架结构如下: device_add: 1)会把device代表的结构体放入总线的bus_dev链表中; 2)从bus_drv链表中取出每个drv,用总线的match函数判断drv能否支持该dev; 3)如果能够支持,则调用drv中的probe函数; driver_register: 1
阅读全文
摘要:1.1 总线设备驱动模型的引入 原文:https://blog.csdn.net/21cnbao/article/details/73864762 1.1.1 陷入绝境 下面我们设想一个名字叫做ABC的简单网卡,它需要接在一个CPU(假设CPUx)的内存总线上,需要地址、数据和控制总线(以及中断pi
阅读全文
摘要:目的:在同一时刻,只有一个应用程序打开/dev/buttons 驱动程序: #include <linux/module.h>#include <linux/kernel.h>#include <linux/fs.h>#include <linux/init.h>#include <linux/de
阅读全文
摘要:读取按键的方法: (1)查询的方式:极度耗费资源 (2)中断的方式:如果没有按键按下,read函数会一直的等待 (3)poll机制的引入:可以指定超时时间 上述三种方式有一个共同点:应用程序主动的去查询。 问题:有没有一种方式当有按键按下时,驱动程序通知应用程序去读取。这就是本节所说的异步通知,该方
阅读全文
摘要:明确为什么要引用poll机制? while(1) { read(fd,&key_val,1);//如果没有按键按下,它会一直在等待。现在想做这么一件事情:如果5s后,没有按键按下,它就会返回。此时就要用到poll机制 } 当应用程序调用poll时,会相应的调用内核空间的sys_pollsys_pol
阅读全文
浙公网安备 33010602011771号