裸机开发
- 底层,跟寄存器打交道,有些MCU提供了库
linux驱动开发
- linux下驱动开发直接操作寄存器,不现实
- 根据Linux下的各种驱动框架,进行开发;一定要满足框架,也就是linux下各种驱动框架的掌握;
- 在linux下,驱动最终表现(对应的外设)是 /dev/xxx下的文件;打开、关闭、读写都可以
- 现在的内核基本都支持设备树,这个.dts文件,此文件描述了板子的设备信息;(内核通过分析这个.dts设备树文件,就能够知道当前板子上的设备信息)
linux下驱动开发分类
linux驱动分为三大类:
- 字符设备驱动; 最多的;
- 块设备驱动; 与存储设备的相关的(SD卡,emmc,ssd,硬盘等)
- 网络设备驱动;网卡
一个设备不是说一定只属于一个类型。比如USB WIFI、SDIO WIFI,属于网络设备驱动
又因为它有USB和SDIO,因此也属于字符设备驱动;