EDA365电子论坛网
标题:
Linux2.6内核中基于platform机制的驱动模型 (上)
[打印本页]
作者:
ulppknot
时间:
2019-8-27 09:00
标题:
Linux2.6内核中基于platform机制的驱动模型 (上)
【摘要】
本文以Linux 2.6.25 内核为例,分析了基于platform总线的驱动模型。首先介绍了Platform总线的基本概念,接着介绍了platform device和platform driver的定义和加载过程,分析了其与基类device 和driver的派生关系及在此过程中面向对象的设计思想。最后以ARM S3C2440中I2C控制器为例介绍了基于platform总线的驱动开发流程。
2 }- M; N) k2 _9 E8 X& r
【关键字】
platform_bus, platform_device, resource , platform_driver, file_operations
7 b. Q7 t5 ~. r) k8 q& Y
目录
0 l) ~. J+ c( w+ G8 x+ A9 b B8 p
1 何谓platform bus? 2
7 ? r" M' s* z9 c6 c* j, Q* e, w9 V
2 device和platform_device 3
" Q8 |2 S/ V8 _: x
3 device_register和platform_device_register 5
, _; \& v, F D B0 I0 J
4 device_driver和platform driver 8
0 W5 y- h- C# L& i
5 driver_register 和platform_driver_register 10
1 @! @' V- H6 H( @+ J
6 bus、device及driver三者之间的关系 17
; T9 M: R" _) h9 v$ i
7 哪些适用于plarform驱动? 18
; I- ?5 I8 P: y; r5 p" D" ~7 U: J" t
8 基于platform总线的驱动开发流程 18
% A1 D4 R* ^7 @ |
8.1 初始化platform_bus 19
) \; p% Z* ~8 G' v
8.2 定义platform_device 22
2 I/ y- V5 D, }( e: }- U% c
8.3 注册platform_device 22
7 W# b5 X+ o3 A
8.4 定义platform_driver 28
6 u+ L0 y9 L: l$ t
8.5 注册platform_driver 29
1 W4 y& `( j3 d5 g$ ~" h
8.6 操作设备 32
: e0 Y) R6 ]7 \! ?1 t* Y- D! u
0 H* I. {2 o4 I# v7 N
" x( f+ i9 W9 k
1 何谓platform bus?
2 C/ r l2 r" H" w4 w
Linux系统中许多部分对设备是如何链接的并不感兴趣,但是他们需要知道哪些类型的设备是可以使用的。设备模型提供了一种机制来对设备进行分类,在更高的功能层面上描述这些设备,并使得这些设备对用户空间可见。因此从2.6内核开始引入了设备模型。
. u0 t8 K1 w% c
总线是处理器和一个或多个设备之间的通道,在设备模型中, 所有的设备都通过总线相连。总线可以相互插入。设备模型展示了总线和它们所控制的设备之间的实际连接。
5 k- H0 k" k% F! h
& l. Q( H' j# y6 b
9 C# p" e- B; w3 |, o% [
1 L# E' a+ f5 W
3 B/ T- m$ l) E- G( C( ^% m
作者:
artic
时间:
2019-8-28 18:16
Linux2.6内核中基于platform机制的驱动模型
欢迎光临 EDA365电子论坛网 (https://bbs.eda365.com/)
Powered by Discuz! X3.2