> 文章列表 > Linux-驱动开发-基础温习

Linux-驱动开发-基础温习

Linux-驱动开发-基础温习

一、裸机开发和驱动开发的区别:

裸机开发:底层(相对于linux来说),库

二、linux驱动开发-根据各种框架进行开发

1、 外设比较多,资源多,资料非常少,官方的SDK;直接操作寄存器不显示
eg: im6ull: mpu应用处理器;
2、根据linux下各种驱动框架进行开发。各种驱动框架的掌握
3、驱动最终表现就是/dev/xxx文件。打开、关闭、读写。。。
4、内核支持设备树,.dts文件,此文件,描述板子的设备信息。

三、linux驱动开发分类

驱动分为三大类
1、字符设备,最多的;gpio\\iic\\spi
2、块设备;SD卡 、EMMC,以固定大小长度
eg:SD卡 一个扇区 512k字节,存储
3、网络设备;网卡 usb网卡,WIFI网卡,
一个设备不一定属于某一个类型;例如:USB WIFI,SDIO WIFI属于设备驱动,因为既有USB、SDIO,也属于字符设备驱动。

字符设备驱动开发

应用程序和驱动的交互原理
linux下app和驱动分开的;设计—内核空间(驱动,内核态)、用户空间(用户态),分开目的:安全
访问内核:
1、系统调用 ;POSIX、API、 C库
Linux-驱动开发-基础温习

2、异常
3、陷入

驱动获取外设 控制外设;数据提交应用程序。
Linux-驱动开发-基础温习