没有合适的资源?快使用搜索试试~ 我知道了~
首页蜗窝科技Linux统一设备模型讲解
资源详情
资源评论
资源推荐
1
Linux 设备模型
目录
一、
linux
内核整体构架................................................................................................................................. 3
1、linux 内核的核心功能...................................................................................................................... 3
2、Linux 内核的整体构架..................................................................................................................... 3
3
、进程调度............................................................................................................................................ 4
4、内存管理............................................................................................................................................5
5、虚拟文件系统....................................................................................................................................5
二、
linux
设备模型基本概念......................................................................................................................... 9
1、前言....................................................................................................................................................9
2、Linux 设备模型基本概念................................................................................................................. 9
三、
Kobject
....................................................................................................................................................11
1、前言..................................................................................................................................................11
2、基本概念..........................................................................................................................................11
3、代码解析..........................................................................................................................................11
4、功能分析..........................................................................................................................................14
四、调试手段之
sys
节点............................................................................................................................. 17
五、
Uevent
.................................................................................................................................................... 18
1、 Uevent 的功能.............................................................................................................................. 18
2、 Uevent 在 kernel 中的位置......................................................................................................... 18
3、 Uevent 的内部逻辑解析.............................................................................................................. 19
4、说明..................................................................................................................................................22
六、
sysfs
........................................................................................................................................................ 22
1、前言..................................................................................................................................................22
2、sysfs 和 Kobject 的关系................................................................................................................ 23
3、 attribute......................................................................................................................................... 23
4、sysfs 在设备模型中的应用总结....................................................................................................27
七、
device
和
device driver
.......................................................................................................................... 28
1、前言..................................................................................................................................................28
2、struct device 和 struct device_driver...........................................................................................28
3、设备模型框架下驱动开发的基本步骤..........................................................................................32
4、设备驱动 probe 的时机................................................................................................................. 32
5、其它杂项..........................................................................................................................................33
八、
Bus
.......................................................................................................................................................... 35
1、概述..................................................................................................................................................35
2、功能说明..........................................................................................................................................35
3、内部执行逻辑分析..........................................................................................................................38
4、杂项..................................................................................................................................................40
九、
Class
........................................................................................................................................................ 42
1、概述..................................................................................................................................................42
2、数据结构描述..................................................................................................................................43
3、功能及内部逻辑解析......................................................................................................................44
4、结束语..............................................................................................................................................46
2
十、
platform
设备.........................................................................................................................................46
1、前言..................................................................................................................................................46
2、Platform 模块的软件架构..............................................................................................................46
3、Platform 模块向其它模块提供的 API 汇整................................................................................. 47
4、Platform 模块的内部动作解析......................................................................................................51
十一、
Device Tree
背景介绍........................................................................................................................53
1、前言.................................................................................................................................................. 54
2、没有 Device Tree 的 ARM linux 如何运转的.............................................................................. 55
3、混乱的 ARM architecture 代码和存在的问题............................................................................. 56
4、新内核的解决之道.......................................................................................................................... 57
十二、
Device Tree
基本概念.......................................................................................................................57
1、前言..................................................................................................................................................57
2、Device Tree 的结构....................................................................................................................... 58
3
、
Device Tree source file
语法介绍.................................................................................................... 60
4、Device Tree binary 格式.................................................................................................................. 67
十三、
Device Tree
代码分析.......................................................................................................................68
1
、前言..................................................................................................................................................68
2
、如何通过
Device Tree
完成运行时参数传递以及
platform
的识别功能.....................................68
3
、初始化流程......................................................................................................................................72
4
、如何并入
linux kernel
设备驱动模型............................................................................................. 74
十四、
device resource management
........................................................................................................... 84
1、前言..................................................................................................................................................84
2、devm_xxx.........................................................................................................................................88
3、什么是设备资源............................................................................................................................ 89
4、device resource management 的软件框架................................................................................. 90
5、代码分析.......................................................................................................................................... 90
十五、
Device Tree
文件结构解析................................................................................................................96
1、Device Tree 简介........................................................................................................................... 96
2、Device Tree 编译........................................................................................................................... 96
3、Device Tree 头信息....................................................................................................................... 96
4、Device Tree 文件结构................................................................................................................... 99
5、kernel 解析 Device Tree............................................................................................................. 101
6、platform_device 和 device_node 绑定......................................................................................107
7、i2c_client 和 device_node 绑定................................................................................................. 108
8、Device_Tree 与 sysfs..................................................................................................................109
十六、
kobj
、
kset
分析............................................................................................................................... 109
1、kobj 实现....................................................................................................................................... 109
2、kset 实现....................................................................................................................................... 111
3、kobj/kset 功能特性....................................................................................................................... 111
4、kset 和 kobj 的注册总结.............................................................................................................. 113
5、对外接口的总结............................................................................................................................114
6、小结................................................................................................................................................115
十七、致驱动工程师的一封信.................................................................................................................. 116
1、如何利用 dts................................................................................................................................. 116
3
2、如何调试 gpio............................................................................................................................... 117
3、如何调试 irq.................................................................................................................................. 117
4、dts 和 sysfs 有什么关联.............................................................................................................. 117
5、sysfs 可以看出什么猫腻..............................................................................................................117
6、如何排查 driver 的 probe 没有执行问题................................................................................... 118
一、linux 内核整体构架
1、linux 内核的核心功能
如下图所示,Linux 内核只是 Linux 操作系统一部分。对下,它管理系统的所有硬件设备;
对上,它通过系统调用,向 Library Routine(例如 C 库)或者其它应用程序提供接口。
因此,其核心功能就是:管理硬件设备,供应用程序使用。而现代计算机(无论是 PC 还是
嵌入式系统)的标准组成,就是 CPU、Memory(内存和外存)、输入输出设备、网络设备和其
它的外围设备。所以为了管理这些设备,Linux 内核提出了如下的架构。
2、Linux 内核的整体构架
上图说明了
Linux
内核的整体架构。根据内核的核心功能,
Linux
内核提出了
5
个子系统,
分别负责如下的功能:
4
1. Process Scheduler,也称作进程管理、进程调度。负责管理 CPU 资源,以便让各个进程可
以以尽量公平的方式访问 CPU。
2. Memory Manager,内存管理。负责管理 Memory(内存)资源,以便让各个进程可以安
全地共享机器的内存资源。另外,内存管理会提供虚拟内存的机制,该机制可以让进程使用多
于系统可用 Memory 的内存,不用的内存会通过文件系统保存在外部非易失存储器中,需要使
用的时候,再取回到内存中。
3. VFS(Virtual File System),虚拟文件系统。Linux 内核将不同功能的外部设备,例如 Disk
设备(硬盘、磁盘、NAND Flash、Nor Flash 等)、输入输出设备、显示设备等等,抽象为可以
通过统一的文件操作接口(open、close、read、write 等)来访问。这就是 Linux 系统“一切皆
是文件”的体现(其实 Linux 做的并不彻底,因为 CPU、内存、网络等还不是文件,如果真的需
要一切皆是文件,还得看贝尔实验室正在开发的"Plan 9”的)。
4. Network,网络子系统。负责管理系统的网络设备,并实现多种多样的网络标准。
5. IPC(Inter-Process Communication),进程间通信。IPC 不管理任何的硬件,它主要负责
Linux 系统中进程之间的通信。
3、进程调度
进程调度是 Linux 内核中最重要的子系统,它主要提供对 CPU 的访问控制。因为在计算机
中,CPU 资源是有限的,而众多的应用程序都要使用 CPU 资源,所以需要“进程调度子系统”
对 CPU 进行调度管理。
进程调度子系统包括 4 个子模块(见下图),它们的功能如下:
1. Scheduling Policy,实现进程调度的策略,它决定哪个(或哪几个)进程将拥有 CPU。
2. Architecture-specific Schedulers,体系结构相关的部分,用于将对不同 CPU 的控制,抽象
为统一的接口。这些控制主要在 suspend 和 resume 进程时使用,牵涉到 CPU 的寄存器访问、汇
编指令操作等。
5
3. Architecture-independent Scheduler,体系结构无关的部分。它会和“Scheduling Policy 模
块”沟通,决定接下来要执行哪个进程,然后通过“Architecture-specific Schedulers 模块”resume
指定的进程。
4. System Call Interface,系统调用接口。进程调度子系统通过系统调用接口,将需要提供给
用户空间的接口开放出去,同时屏蔽掉不需要用户空间程序关心的细节。
4、内存管理
内存管理同样是 Linux 内核中最重要的子系统,它主要提供对内存资源的访问控制。Linux
系统会在硬件物理内存和进程所使用的内存(称作虚拟内存)之间建立一种映射关系,这种映
射是以进程为单位,因而不同的进程可以使用相同的虚拟内存,而这些相同的虚拟内存,可以
映射到不同的物理内存上。
内存管理子系统包括 3 个子模块(见下图),它们的功能如下:
1. Architecture Specific Managers
,体系结构相关部分。提供用于访问硬件
Memory
的虚拟接
口。
2. Architecture Independent Manager
,体系结构无关部分。提供所有的内存管理机制,包括:
以进程为单位的 memory mapping;虚拟内存的 Swapping。
3. System Call Interface
,系统调用接口。通过该接口,向用户空间程序应用程序提供内存的
分配、释放,文件的 map 等功能。
5、虚拟文件系统
传统意义上的文件系统,是一种存储和组织计算机数据的方法。它用易懂、人性化的方法
(文件和目录结构),抽象计算机磁盘、硬盘等设备上冰冷的数据块,从而使对它们的查找和
访问变得容易。因而文件系统的实质,就是“存储和组织数据的方法”,文件系统的表现形式,
就是“从某个设备中读取数据和向某个设备写入数据”。
剩余121页未读,继续阅读
彰德甄帅先生
- 粉丝: 18
- 资源: 15
上传资源 快速赚钱
- 我的内容管理 收起
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
会员权益专享
最新资源
- ExcelVBA中的Range和Cells用法说明.pdf
- 基于单片机的电梯控制模型设计.doc
- 主成分分析和因子分析.pptx
- 共享笔记服务系统论文.doc
- 基于数据治理体系的数据中台实践分享.pptx
- 变压器的铭牌和额定值.pptx
- 计算机网络课程设计报告--用winsock设计Ping应用程序.doc
- 高电压技术课件:第03章 液体和固体介质的电气特性.pdf
- Oracle商务智能精华介绍.pptx
- 基于单片机的输液滴速控制系统设计文档.doc
- dw考试题 5套.pdf
- 学生档案管理系统详细设计说明书.doc
- 操作系统PPT课件.pptx
- 智慧路边停车管理系统方案.pptx
- 【企业内控系列】企业内部控制之人力资源管理控制(17页).doc
- 温度传感器分类与特点.pptx
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功
评论2