作者:346182773_20da31 | 来源:互联网 | 2024-10-29 19:17
###摘要1.**裸机开发概述**-裸机开发主要涉及直接与硬件寄存器交互,部分微控制器(MCU)提供了库函数以简化这一过程。2.**Linux驱动开发思路**-在Linux环境下,驱动开发通常不再直接操作寄存器,而是通过内核提供的接口和框架进行,以实现更高的抽象层次和系统稳定性。
1.裸机开发回顾
- 底层:跟寄存器打交道,有些MCU提供了库
2. Linux驱动开发思维
- Linux下驱动开发,还是直接操作寄存器不现实
- 根据Linux下的各种驱动框架进行开发,一定要满足框架,也就是linux下各种驱动框架的掌握
- 驱动最终表现就是/dev/xxx 文件。打开/关闭/读写。。。
- 现在新的内核支持设备树,这是一个.dts文件,此文件描述了板子的设备信息
3. Linux驱动开发分类
- 字符设备,最多。 GPIO/I2C/SPI/USB
- 块设备,存储相关。 固定大小长度/扇区存取,不按照指定顺序访问。 磁盘/SSD/SD卡。。。
- 网络设备, 网卡
一个设备并不是说一定只属于某一个类型,比如USB-Wifi,SDIO-wifi,能上网属于网络设备驱动,但又是USB/SDIO接口,因此也属于字符设备驱动。