EDA365电子论坛网

标题: 利用Linux设备来驱动模型(上) [打印本页]

作者: ulppknot    时间: 2019-8-14 10:00
标题: 利用Linux设备来驱动模型(上)
尽管LDD3中说对多数程序员掌握设备驱动模型不是必要的,但对于嵌入式Linux的底层程序员而言,对设备驱动模型的学习非常重要。
, Q: R3 N, z8 i1 y  fLinux设备模型的目的:为内核建立一个统一的设备模型,从而又一个对系统结构的一般性抽象描述。换句话说,Linux设备模型提取了设备操作的共同属性,进行抽象,并将这部分共同的属性在内核中实现,而为需要新添加设备或驱动提供一般性的统一接口,这使得驱动程序的开发变得更简单了,而程序员只需要去学习接口就行了。
5 s7 F8 X1 U) w- k1 f在正式进入设备驱动模型的学习之前,有必要把documentation/filesystems/sysfs.txt读一遍(不能偷懒)。sysfs.txt主要描述/sys目录的创建及其属性,sys目录描述了设备驱动模型的层次关系,我们可以简略看一下/sys目录,
& X% l3 C3 a$ Y5 I: r& s5 w# G' ?2 B" c5 z9 O4 x
2 T2 c/ E" k9 c) V4 W
5 o( c9 r) }  b3 [: ^9 z
7 }/ z+ w+ o) G. z, z

+ ^( q6 t( i; s/ _/ }block:所有块设备
  R! q* v7 B/ R. O$ @8 H- m3 Rdevices:系统所有设备(块设备特殊),对应struct device的层次结构
. z# _* m' T- e# ^2 ibus:系统中所有总线类型(指总线类型而不是总线设备,总线设备在devices下),bus的每个子目录都包含. ?& g- V, {$ }2 P  c
    --devices:包含到devices目录中设备的软链接
' p) S$ w- H$ g6 d    --drivers:与bus类型匹配的驱动程序! @# C! R/ z: ^* J
class:系统中设备类型(如声卡、网卡、显卡等)7 ~" H4 r2 ?& W8 R3 Z7 i
fs:一些文件系统,具体可参考filesystems /fuse.txt中例子
8 p) g; S: z" C0 Z- Odev:包含2个子目录
) ?; G& @9 w+ b! i' o8 b1 X+ ~--char:字符设备链接,链接到devices目录,以<major>:<minor>命名
% z/ a) {2 J" ~/ I8 [- b- @5 w--block:块设备链接& s+ M( D' O. @( c8 J; t

2 X. U6 p) r0 s! q; o+ r4 R& L9 p7 u: c
! _  _( j6 y/ E, W7 @2 U6 a! k
" b1 O2 i/ `( J. X+ I' v: N

) U/ j- I  s$ e5 e5 K/ z& E0 e8 \! v! Z7 N1 ?- n

作者: wu68aq    时间: 2019-8-14 18:46
看看。




欢迎光临 EDA365电子论坛网 (https://bbs.eda365.com/) Powered by Discuz! X3.2