首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

Linux内核平台总线设备驱动模型浅析

复习总线设备驱动模型,做了一点小笔记,大牛略过。 一、Linux系统的驱动框架的基础很大一部分是围绕着总线设备驱动模型展开的。...   struct bus_type   *bus;        // 该设备挂接在哪条总线上    struct device_driver*driver; //该设备所对应的驱动    void... }; 任何建立在平台总线设备驱动模型基础上的驱动代码(如平台驱动,PCI驱动,USB驱动,I2C驱动,SPI驱动等),它们的设备结构体(如platform_device, pci_dev,usb_device...device *dev) {    device_initialize(dev);  //做各类初始化    //将设备挂接在对应的总线上,主要工作把设备(device)添加到总线       (bus_type...   int (*remove) (struct device*dev);// 指向设备移除函数    struct driver_private *p;  }; 同理,任何建立在平台总线设备驱动模型基础上的驱动代码

1.9K30
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    Linux设备驱动字符设备(一)

    Linux设备驱动的分类 从上图可以看到Linux系统将各异的设备分为三大类:字符设备,块设备和网络设备。内核针对每一类设备都提供了对应驱动模型架构,包括基本的内核设施和文件系统接口。...主设备号用来标识对于的设备驱动程序,而次设备号则由驱动程序使用,用来标识它所管理的若干同类设备设备号的表示 在linux系统中,设备号用dev_t表示。这是个32位的无符号整数。... --------------------------- typedef __kernel_dev_t dev_t; typedef __u32 _...随着Linux系统的演变,上述的主次设备号的分发可能在将来会发生变化,所以设备驱动程序开发者应该避免直接使用主次设备号所占的位宽来获得对于的主设备号或次设备号。... ------------------------- #define MINORBITS 20 #define MINORMASK ((1U <<

    7.1K52

    Linux设备驱动字符设备(二)

    通过上一节Linux设备驱动字符设备(一)了解了Linux设备驱动的分类,设备号的构成,设备号的申请以及设备号的释放。 在Linux内核中使用struct cdev结构来代码字符设备。... -------------------------------------------------- struct cdev { struct kobject...struct kobject kobj 内核的内嵌对象,是Linux设备驱动模型的重要成员。...该部分在后面Linux字符设备框架一节会详细分析,目前只要明白主要流程即可。 字符设备的注销 当驱动程序需要从系统卸载的时候,就需要使用cdev_del释放字符设备占用的内存。...目前为止,已经了解了设备号,设备号的构成,字符设备分配,字符设备的初始化,字符设备的注册以及字符设备的注销。将在下一节通过一个简单的字符设备驱动程序来再次熟悉整个流程,然后总结字符设备驱动的编写模型

    6.1K20

    Linux设备驱动模型-Bus

    前言 在linux设备驱动模型中,总线可以看作是linux设备模型的核心,系统中的其他设备以及驱动都是以总线为核心围绕。不过驱动程序员在系统中创建一条总线的机会并不多。...驱动模型中的总线可以是真是存在的物理总线(USB总线,I2C总线,PCI总线),也可以是为了驱动模型架构设计出的虚拟总线(Platform总线)。...为此linux设备驱动模型都将围绕"总线--设备--驱动"来展开,因为符合linux设备驱动模型设备与驱动都是必须挂载在一个总线上的,无论是实际存在的或者虚拟的。....dev_attrs: 此bus设备上默认的属性。 .bus_groups, dev_groups, drv_groups: 分别是总线, 设备,驱动的属性。....match: 当一个设备或者驱动添加到此总线上的时候,bus就会调用match对设备和驱动一一匹配的。

    3.9K20

    Linux笔记(20)| Linux设备模型

    //本文主要参考《野火Linux开发指南》 大家好,今天跟大家分享的是在Linux中驱动led。今天的文章包括后面还有一是酝酿了近两个星期才开始动手写,可见这部分内容会比较抽象一些。...其实早在之前有一关于字符设备驱动的,讲的也是驱动led,大家可以回顾一下:Linux笔记(13)| 字符设备驱动基础入门 Linux笔记(14)| 字符设备驱动基础入门(续) 有朋友可能会产生疑问,...所以就有了今天的设备模型。在早期的Linux里面就是像上面那样做的,但是到后来设备越来越多,越来越复杂,维护起来非常不方便,于是发明了设备模型。 那么,设备模型是怎么一回事呢?...简单说设备模型就是让驱动代码分成两个部分,一部分是驱动,一部分是设备,驱动文件里有对设备的驱动,但是并不涉及具体硬件资源,硬件资源由设备文件提供,然后使用总线将两者联系起来。...今天主要是介绍了一下设备模型是什么,以及该如何套用设备模型来写驱动。但是今天并没有涉及具体硬件,也没有叙述太多操作细节。因为这个是框架性的东西,我们只需要从宏观上有一个认识就行了。

    3.2K30

    Linux设备树学习(1)

    Linux设备树学习(1) 1. 什么是设备树 2. 为什么要使用设备树来替代传统的总线设备驱动模型 3. DTS、DTB 和 DTC 4....为什么要使用设备树来替代传统的总线设备驱动模型 传统的总线设备驱动是将设备信息描述在C代码中,当需要修改驱动相关的硬件信息时,就得修改具体的代码文件,再全编译内核。...chosen 属性 chosen并不是一个真实的设备,chosen 节点主要是为了 uboot 向 Linux 内核传递数据,比如启动参数bootargs,不代表实际的设备。其父节点必须是根节点。...Linux 内核给我们提供了一系列的函数来获取设备树中的节点或者属性信息,这一系列的函数都有一个统一的前缀“of_”,所以在很多资料里面也被叫做 OF 函数。...这些 OF 函数原型都定义在 kernel/include/linux/of.h 文件中。 5.

    2.9K10

    Linux BSP实战课(设备):设备树的解析

    设备树的解析 setup_machine_fdt unflatten_device_tree 总结 设备树常用OF操作函数 查找节点的 OF 函数 查找父/子节点的 OF 函数 提取属性值的 OF 函数...其他常用的 OF 函数 设备树的解析 我们来看看内核是如何把设备树解析成所需的device_node。...Linux最底层的初始化部分在HEAD.s中,这是汇编代码,暂且不作过多讨论。...unflatten_device_tree(); } 这两个被调用的函数就是主要的设备树处理函数: setup_machine_fdt:根据传入的设备树dtb的根节点完成一些初始化操作。...unflatten_device_tree:对设备树具体的解析,这个函数中所做的工作就是将设备树各节点转换成相应的 struct device_node 结构体。 下面我们再来通过代码跟踪仔细分析。

    41610

    Linux内核设备驱动字符设备驱动笔记整理

    设备通过设备号来标识。设备号分两部分,主设备号和次设备号。 通常,主设备号标示设备对应的驱动程序,linux允许多个驱动共用一个主设备号; 而次设备号用于确定设备文件所指的设备。...在内核中,用dev_t类型保存设备编号。 2.4内核中采用16位设备号(8位主,8位从),而2.6采用32位,12位主,20位从。...在驱动中访问设备号应该用中定义的宏。...inode定义在 dev_t i_rdev; 对于表示设备文件的inode结构,i_rdev里包含了真正的设备编号 struct cdev *i_cdev cdev是表示字符设备的内核的内部结构...(mi)) //根据指定的主设备和次设备号生成设备号 #include //静态:申请指定的设备号, from指设备号, count指使用该驱动有多少个设备(次设备

    4.8K20

    Linux 总线、设备、驱动模型的探究

    设备驱动模型的需求 总线、设备和驱动模型,如果把它们之间的关系比喻成生活中的例子是比较容易理解的。...设备和驱动就是基于这种模型去实现彼此隔离不相干的。这里,有的读者就要问了,高内聚、低耦合的软件模型理解,可设备和驱动为什么要采用这种模型呢?没错,好问题。...基于这种设计思想,Linux设备驱动分为了总线、设备和驱动三个实体,这三个实体在内核里的职责分别如下: ?...最底层是不同板子的板级文件代码,中间层是内核的总线,最上层是对应的驱动,现在描述板级的代码已经和驱动解耦了,这也是 Linux 设备驱动模型最早的实现机制,但随着时代的发展,就像是人类的贪婪促进了社会的进步一样...完美的 Linux 怎么会允许这样的事情存在,于是乎,设备树(DTS)就登向了历史舞台,下一内容将探讨设备树的实现原理和用法。 【部分内容整理于宋宝华老师课程】

    6.5K41

    安全设备——漏扫设备

    某型号漏扫,也是up新手村时期第一个接触到的安全设备,这东西作用很大吗?确实,让我饭碗里有口饭.......这类设备可以说是安服仔的专用,部分渗透人员可能也得用一用来出报告,每个驻场现场可能不一定有,可能是第三方提供,但一定会用得到,本文仅讨论商用型的,自己用的玩具就不讨论了。 设备功能: 1.漏洞扫描。...这个肯定不用说了,漏扫嘛,顾名思义,设备一般是硬件,有些厂商的小一些,像个盒子,也有些直接搭载在一台笔记本上,比如up前东家的某眼。...漏扫设备特点: 缺点:1.无意义漏洞凑数过多。...总结 以上,大概就是漏洞扫描设备的全样貌了,这类设备对安全体系的建设还是很重要的,约等于家里的扫把、拖把,家里很干净,但也得备着,总的来说漏扫设备不是那种能单纯以优缺点来评判的,虽然俺一样列出来了,只是为了给小师傅们了解设备特性

    29611

    安全设备——抗DDOS设备

    写在前面:up初研究这个设备的时候以为很容易,毕竟ddos嘛大家都懂,但是实际去找资料和研究的时候发现资料少的可怜,再加上大家知道ddos但大多没见过,万幸up的老东家某普有这类设备,和之前的同事沟通了一下还是了解了...就是一个辅助扩充服务器容载量的设备,帮助容纳和暂缓数据流,防止突然暴涨,有点像堤坝的原理,但实际上并不是....且听我娓娓道来。...抗DDOS设备结构 基础构成:流量清洗设备+管理服务端 部署方式:直连or旁路 流量清洗 基于以上ddos攻击类型可知,ddos是依靠协议特点,频繁建立连接或发起请求致使服务器瘫痪。...在超大流量攻击下阻断型设备已经无法正常发挥作用(IPS、waf等),这里就需要引进流量清洗。 ①ioc情报。...总结 DDOS攻击很少很少能见到,真的是大场面发生的事情,除了很偶尔看到的APT组织发起的之外就没什么可能了,这里是给师傅们了解了解相关的设备特性,防患于未然,并且,学无止境嘛,现在关于ddos的一些防范和设备数据真的不多

    19410
    领券