linux 驱动分类

linux 驱动分类


        linux驱动的分类跟Wince不同,wince是分成流驱动和本机驱动两种类型,而linux分为字符设备驱动、网络设备驱动、块设备驱动。
如果要比较这两种系统的驱动类型的话,应该是字符设备驱动跟流驱动类似,本机驱动跟块设备驱动类似。


        今天其实准备写一个简单的驱动来模拟操作一下IO,参考其它代码的时候,一下子就被几个函数给弄混了。
        register_chrdev();platform_driver_register();misc_register();
        大家看明白了没有,它们对应char driver,platform driver,misc driver的注册。(注意这些函数的概念跟字符设备,块设备这些不是同级的概念,它们只是系统提供的驱动注册的一些方式。)
        我在SDK搜了一下上面三个函数,然后稍微归一下类:
        chrdev:scsi,macintosh,isdn\capi,char\pcmcia,\net\wan
        platform:serial,touchscreen,backlight,misc,otg,video,watchdog
        misc:watchdog,macintosh,\mtd\ubi
        总结:根据上面的信息来看,我觉得有些驱动三种方式都可以采用。更细的来说:
platform 机制将设备本身的资源注册进内核,由内核统一管理,在驱动程序中使用这些资源时通过 platform device 提供的标准接口进行申请并使用。这样提高了驱动和资源管理的独立性,并且拥有较好的可移植性和安全性 ( 这些标准接口是安全的 ) 。所以它的应用场景是适合那些比较独立的,跟CPU关联性强的驱动,如果SPI,serial等。
chrdev 没有platform严格,它比platform少了几个函数,可以合入内核也可以有module的方式从外部加载,方便调试。它的适应场景我觉得都可以,但是以platform为优先原则。
misc 我觉得内部应该跟chrdev是一样的,只是按名字来说是个杂项混合驱动,它的适应场景更应用于一些跟其它驱动相关的设备的驱动,比如说某些用I2C或SPI驱动的设备。
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值