随笔分类 -  linux设备驱动

摘要:1. Uevent的功能 Uevent是Kobject的一部分,用于在Kobject状态发生改变时,例如增加、移除等,通知用户空间程序。用户空间程序收到这样的事件后,会做相应的处理。 该机制通常是用来支持热拔插设备的,例如U盘插入后,USB相关的驱动软件会动态创建用于表示该U盘的device结构(相 阅读全文
posted @ 2020-05-18 20:44 Action_er 阅读(4686) 评论(0) 推荐(1) 编辑
摘要:本文将对Linux系统中的sysfs进行简单的分析,要分析sysfs就必须分析内核的driver-model(驱动模型),两者是紧密联系的。在分析过程中,本文将以platform总线和spi主控制器的platform驱动为例来进行讲解。其实,platform机制是基于driver-model的,通过 阅读全文
posted @ 2020-05-17 16:59 Action_er 阅读(1780) 评论(1) 推荐(0) 编辑
摘要:1. 前言 在之前的device、device_driver和bus讲解中多次遇到kobject和kset相关内容,可能不明白,没关系,下面将详细讲解。 Kobject/kset是Linux设备驱动模型的基础,相当于数学中的加减乘除,后续一切模型都以此为基础构建。 2. 基本概念 由上一节可知,Li 阅读全文
posted @ 2020-05-16 20:51 Action_er 阅读(2323) 评论(0) 推荐(1) 编辑
摘要:1. 概述 总线(bus)是linux发展过程中抽象出来的一种设备模型,为了统一管理所有的设备,内核中每个设备都会被挂载在总线上,这个bus可以是对应硬件的bus(i2c bus、spi bus)、可以是虚拟bus(platform bus)。 bus将所有挂在上面的具体设备抽象成两部分,devic 阅读全文
posted @ 2020-05-16 17:59 Action_er 阅读(1747) 评论(0) 推荐(0) 编辑
摘要:linux 设备驱动模型中,之前内核直接叫做driver,后来改为device_driver,device和device_drvier 对应,驱动模型中最重要抽象两个概念。接下一步步分析device_driver的注册初始化过程。 1driver_register code位于:drivers\ba 阅读全文
posted @ 2020-05-16 14:17 Action_er 阅读(2059) 评论(0) 推荐(0) 编辑
摘要:Linux设备驱动的模型,是建立在sysfs设备文件系统和kobject上的,由总线(bus)、设备(device)、驱动(driver)和类(class)所组成的关系结构,在底层,Linux系统中的每个设备都有一个device结构体的实例。struct device已在上一博文中介绍,下面按顺序详 阅读全文
posted @ 2020-05-16 13:15 Action_er 阅读(4541) 评论(0) 推荐(0) 编辑
摘要:1. 前言 由于Linux支持世界上几乎所有的、不同功能的硬件设备(这是Linux的优点),导致Linux内核中有一半的代码是设备驱动,而且随着硬件的快速升级换代,设备驱动的代码量也在快速增长。个人意见,这种现象打破了“简洁就是美”的理念,是丑陋的。它导致Linux内核看上去非常臃肿、杂乱、不易维护 阅读全文
posted @ 2020-05-10 18:24 Action_er 阅读(1337) 评论(0) 推荐(0) 编辑