linux设置驱动程序基础
Linux
设备驱动程序基础
嵌入式Linux设备驱动程序基础
设备驱动简介和作用
无操作系统设备驱动
Linux操作系统设备驱动
Linux设备驱动分类
Linux设备驱动管理
Linux设备驱动开发调试技术
Linux内核模块简单实例
Linux内核模块编译和装载
设备驱动简介和作用
设备驱动是应用程序和硬件设备之间接口,
有了设备驱动编写应用程序就可以使用驱动程序
提供的接口访问硬件,而不必了解硬件的具体情
况,有了设备驱动上层程序员才能在不了解硬件
细节的基础上完成应用程序的开发。
设备驱动程序的作用在于提供机制,而不是
提供策略,编写访问硬件的驱动代码时不要给用
户强加任何策略。
○ 机制:驱动程序能实现什么功能。
○ 策略:用户如何使用这些功能。
无操作系统设备驱动(1)
用于功能比较单一,控制并不复杂的系统,如
公交刷卡机,电冰箱,微波炉,简单的手机和小灵通
等,并不需要多任务调度,文件系统,内在管理等复
杂的功能,用单任务架构完全可以很好的支持.
特点:一个无限循环中夹杂对设备中断的检测
或对设备的轮询是这种系统中软件的典型架构.
无操作系统设备驱动(2 )
应用软件
无操作系统时,应用程序
直接通过设备驱动提供的接
设备驱动
口访问硬件,驱动程序工程
师只需要向应程序工程师提
供驱动程序接口(函数调 硬件
用),应用程序工程师就能 无操作系统时应用程序、驱动
够通过这些接口访问硬件 程序和硬件之间的关系
示例:led_driver.c
Linux操作系统设备驱动(1)
应用层
系统调用接口
虚拟文件接口(VFS)
设备驱动
字符设备 块设备 网络设备
设备接口
设备
Linux设备驱动层次结构
Linux操作系统设备驱动(2 )
在Linux操作系统中,设备驱动位于虚拟
文件接口层和设备接口层(如GPIO接口、usb接
口)之间,驱动程序工程师在编写Linux设备驱
动时就不能根据自己的规范向应用层提供接口。
驱动工程师必须按照Linux的规范实现与上层
(虚拟文件层)和下层(设备接口)的衔接。驱
动工程师还需要根据Linux的规范向内核注册自
己的驱动程序,这样系统才能维护才能维护我们
的驱动程序,同时使用系统的各种资源。编写
Linux设备驱动就是在Linux系统提供的架构中
实现自己的功能。
Linux设备驱动学习方法
首先掌握驱动程序(字符设备、块设备、
网络设备)的架构;再掌握驱动程序必备的知识
要点(如:中断、阻塞、内核定时器等),其实
学起来和高级编程中的系统调用差不多;学到这
一步你已经基本上已近接触了开发Linux设备驱
动用到的所有知识;再经过几个简单的实例你已
经跨入了Linux驱动开发的大门,可以开发自己
的Linux设备驱动,当然是简单一些的。我们会
带领大家一步步实现。最后,等你有了丰富的经
验,掌握了linux设备驱动的各种模型,你就成
为了一个高级Linux设备驱动工程师。
Linux设备驱动与整个软硬件系统的关系