上一页 1 2 3 4 5 6 7 ··· 9 下一页
摘要: 字符设备 Linux中设备常见分类是字符设备,块设备、网络设备,其中字符设备也是Linux驱动中最常用的设备类型。因此开发Linux设备驱动肯定是要先学习一下字符设备的抽象的。在内核中使用struct cdev来描述一个字符设备如下 struct cdev { struct kobject kobj 阅读全文
posted @ 2020-09-07 22:45 Little_Village 阅读(695) 评论(0) 推荐(0) 编辑
摘要: 内核中的时间 Linux 系统内核对于时间的管理依赖于硬件,硬件按一定的周期产生中断,周期由内核的一个配置值HZ决定在系统启动时会将定时器配置为HZ值指定的频率产生中断;同时内核维护一个64位(X86和X64都是64位)的计数器变量jiffies(jiffies_64)。在系统启动时这个值为0之后每 阅读全文
posted @ 2020-09-06 12:41 Little_Village 阅读(446) 评论(0) 推荐(0) 编辑
摘要: 前面学习了下Linux下的网络设备驱动程序的框架Linux 驱动框架 net驱动框架,了解了一个网络设备驱动大致结构,但还是不太清楚具体的细节处是怎么处理的,所以今天就来以dm9000这个网上教程最多的网卡设备驱动实例来详细看一下Linux网络设备驱动的开发更细节的内容。这个驱动比较综合先是以pla 阅读全文
posted @ 2020-09-05 10:53 Little_Village 阅读(870) 评论(0) 推荐(0) 编辑
摘要: 这一篇主要是学习网络设备驱动框架性,具体的实例分析可以参考Linux 驱动框架 dm9000分析 。Linux 对于网络设备的驱动的定义分了四层分别是网络接口层对上是IP,ARP等网络协议,因为网络协议还是相对复杂且不会变动特别大肯定是由内核来实现;网络设备接口层实际上就是对网络设备操作的封装,封装 阅读全文
posted @ 2020-09-05 10:46 Little_Village 阅读(1467) 评论(0) 推荐(0) 编辑
摘要: Linux 设备 Linux驱动中的三大主要基础成员主要是设备,总线和驱动。今天先来从设备开始分析先把设备相关的数据结构放到这里方便后面看到来查,其中有些进行了简单的注释。 struct device { struct device *parent;/*父设备*/ struct device_pri 阅读全文
posted @ 2020-09-05 10:41 Little_Village 阅读(608) 评论(0) 推荐(0) 编辑
摘要: i2c驱动在Linux通过一个周的学习后发现i2c总线的驱动框架还是和Linux整体的驱动框架是相同的,思想并不特殊比较复杂的内容如i2c核心的内容都是内核驱动框架实现完成的,今天我们暂时只分析驱动开发需要完成的部分。iic驱动驱动开发主要是完成四个部分的内容,struct i2c_adapter( 阅读全文
posted @ 2020-09-05 10:34 Little_Village 阅读(560) 评论(0) 推荐(0) 编辑
摘要: 总述 Linux 系统下的驱动最后都是以如下这个结构体呈现在系统中的,注意其中的dev_pm_ops是内核新增的内容来准备替换platform_driver中的电源管理相关的内容。这里内容是先进行总体的流程梳理后面再结合Linux内核代码的内容来学习。 struct device_driver { 阅读全文
posted @ 2020-09-05 10:28 Little_Village 阅读(719) 评论(0) 推荐(0) 编辑
摘要: 前面从具体(Linux 驱动框架 input子系统)的工作过程学习了Linux的input子系统相关的架构知识,但是前面的学习比较实际缺少总结,所以今天就来总结一下输入子系统的架构分层,站到远处来看输入子系统。总得来说输入子系统由设备驱动层(input_dev的注册),输入子系统核心层(input 阅读全文
posted @ 2020-09-04 22:09 Little_Village 阅读(530) 评论(0) 推荐(0) 编辑
摘要: input 子系统也是作为内核的一个字符设备模块存在的,所以他也是字符设备自然也会有字符设备的文件接口.input子系统的注册过程主要分为两步,先注册了一个input class然后再注册一个字符设备 input。 static int __init input_init(void) { int e 阅读全文
posted @ 2020-09-04 21:49 Little_Village 阅读(346) 评论(0) 推荐(0) 编辑
摘要: 异步IO是对阻塞和轮询IO的机制补充,所谓异步IO就是在设备数据就绪时主动通知所属进程进行处理的机制。之所以说是异步是相对与被通知进程的,因为进程不知道也无法知道什么时候会被通知;这一机制非常类似于硬件上的中断。异步IO的实现也依赖于Linux内核进程的信号机制,因为异步IO就是通过SIGIO信号通 阅读全文
posted @ 2020-08-31 22:00 Little_Village 阅读(263) 评论(0) 推荐(0) 编辑
上一页 1 2 3 4 5 6 7 ··· 9 下一页