1.裸机开发回顾
- 底层:跟寄存器打交道,有些MCU提供了库
2. Linux驱动开发思维
- Linux下驱动开发,还是直接操作寄存器不现实
- 根据Linux下的各种驱动框架进行开发,一定要满足框架,也就是linux下各种驱动框架的掌握
- 驱动最终表现就是/dev/xxx 文件。打开/关闭/读写。。。
- 现在新的内核支持设备树,这是一个.dts文件,此文件描述了板子的设备信息
3. Linux驱动开发分类
- 字符设备,最多。 GPIO/I2C/SPI/USB
- 块设备,存储相关。 固定大小长度/扇区存取,不按照指定顺序访问。 磁盘/SSD/SD卡。。。
- 网络设备, 网卡
一个设备并不是说一定只属于某一个类型,比如USB-Wifi,SDIO-wifi,能上网属于网络设备驱动,但又是USB/SDIO接口,因此也属于字符设备驱动。