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_operations7 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 V2    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    80 W5 y- h- C# L& i
5    driver_register 和platform_driver_register    10
1 @! @' V- H6 H( @+ J6    bus、device及driver三者之间的关系    17
; T9 M: R" _) h9 v$ i7    哪些适用于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    222 I/ y- V5 D, }( e: }- U% c
      8.3    注册platform_device    227 W# b5 X+ o3 A
      8.4    定义platform_driver    286 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 k1    何谓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 b9 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