1. linux驱动开发与裸机开发的区别

裸机开发

  1. 底层,跟寄存器打交道,有些MCU提供了库

linux驱动开发

  1. linux下驱动开发直接操作寄存器,不现实
  2. 根据Linux下的各种驱动框架,进行开发;一定要满足框架,也就是linux下各种驱动框架的掌握;
  3. 在linux下,驱动最终表现(对应的外设)是 /dev/xxx下的文件;打开、关闭、读写都可以
  4. 现在的内核基本都支持设备树,这个.dts文件,此文件描述了板子的设备信息;(内核通过分析这个.dts设备树文件,就能够知道当前板子上的设备信息)

linux下驱动开发分类

linux驱动分为三大类:

  1. 字符设备驱动; 最多的;
  2. 块设备驱动; 与存储设备的相关的(SD卡,emmc,ssd,硬盘等)
  3. 网络设备驱动;网卡
    一个设备不是说一定只属于一个类型。比如USB WIFI、SDIO WIFI,属于网络设备驱动
    又因为它有USB和SDIO,因此也属于字符设备驱动

你可能感兴趣的:(linux驱动相关)