|
|
EDA365欢迎您登录!
您需要 登录 才可以下载或查看,没有帐号?注册
x
本帖最后由 thinkfunny 于 2019-8-27 11:22 编辑 0 g& K7 T7 f U+ O& p" f" {8 j( Y% w
/ v! l- k2 x: `( ]0 U一、platform设备模型
5 E$ O/ I4 k7 i5 I( i& d9 N- B7 W* t! E* H
从Linux 2.6起引入了一套新的驱动管理和注册机制,platform_device和platform_driver,Linux中大部分的设备驱动都可以使用这套机制。platform是一条虚拟总线。设备用platform_device表示,驱动用platform_driver进行注册,linux platform driver机制和传统的device driver机制(通过driver_register进行注册)相比,一个明显的优势在于platform机制将设备本身的资源注册进内核,由内核统一管理,在驱动中使用这些资源时通过platform device提供的标准结构进行申请并使用。这样提高了驱动和资源的独立性,并且具有较好的可移植性和安全性(这些标准接口是安全的)。2 Y7 V( p- N( Z5 B" y( ]; S6 }
* ~+ ]- G, A# T8 {6 v8 c; v
Platform机制本身使用并不复杂,由两部分组成:platform_device和platform_driver。通过platform机制开发底层驱动的大致流程为:
8 n4 p8 f# M( [8 \ X$ q7 Y
5 p/ w6 p6 |9 }2 ]1 E- E- x& ~0 ?) O* {8 E$ w% G" a
" B5 Z3 s6 `8 y5 u: r
J$ H# G, e# N @% I/ l! `+ f |
|