![](https://img-blog.csdnimg.cn/20201014180756926.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
读书笔记
文章平均质量分 96
_Emma_
这个作者很懒,什么都没留下…
展开
-
【Linux驱动设备开发详解】19.Linux电源驱动管理架构
Linux电源管理牵扯到系统级的待机、频率电压变换、系统空闲时的处理以及每个设备驱动对系统待机的支持和每个设备的运行时(Runtime)电源管理。Linux内核电源管理的整体架构,大致可以归纳为如下几类:1.CPU在运行时根据系统负载进行动态电压和频率变换的CPUFreq2.CPU在系统空闲时根据空闲的情况进行低功耗模式的CPUIdle3.多核系统下的CPU热插拔功能4.系统和设备针对延迟的特别需求而提出申请的PM QoS,它会作用于CPUIdle的具体策略。原创 2024-07-16 10:43:06 · 430 阅读 · 0 评论 -
【Linux驱动设备开发详解】15.Linux I2C核心、总线和设备驱动
IC总线共有两根线,SCL和SDA,通过这两根信号线就实现了设备间的数据交互。原创 2024-07-16 10:42:05 · 256 阅读 · 0 评论 -
【Linux驱动设备开发详解】13.Linux块设备驱动
块设备的I/O方式相比字符设备存在较大不同,因而引入了request_queue,request、bio等一系列数据结构。在整个块设备的I/O操作中吗,贯穿始终的就是"请求",块设备的I/O操作会排队和整合;而字符设备的I/O操作则是直接进行,不绕弯驱动的任务是处理请求,对请求的排队和整合由I/O调度算法解决,因此,块设备驱动的核心就是请求处理函数或"制造请求"函数。原创 2024-07-16 10:37:50 · 448 阅读 · 0 评论 -
【Linux驱动设备开发详解】14.Linux网络设备架构
与字符设备和块设备不同,网络设备并不对应于/dev目录下的文件,应用程序最终使用套接字完成与网络设备的接口。在设计具体的网络设备驱动程序时,需要完成的主要工作是编写设备驱动功能层的相关函数以填充net_device数据结构的内容并将net_device注册入内核。原创 2024-07-16 10:29:16 · 400 阅读 · 0 评论 -
【Linux驱动设备开发详解】11.内存与I/O访问
外设可处于CPU的I/O空间和内存空间,除x86外,嵌入式处理器一般只存在内存空间。在Linux系统中,为I/O内存和I/O端口的访问提供了一套同一的方法,访问流程一般为"申请资源->映射->访问->去映射->释放资源"对于有MMU的处理器而言, Linux系统的内部布局比较复杂, 可直接映射的物理内存称为常规内存,超出部分为高端内存。kmalloc() 和__get_free_pages() 申请的内存在物理上连续, 而vmalloc() 申请的内存在物理上不连续。原创 2024-07-16 10:26:34 · 550 阅读 · 0 评论