下载此文档

嵌入式linux驱动.docx


文档分类:IT计算机 | 页数:约10页 举报非法文档有奖
1/10
下载提示
  • 1.该资料是网友上传的,本站提供全文预览,预览什么样,下载就什么样。
  • 2.下载该文档所得收入归上传者、原创者。
  • 3.下载的文档,不会出现我们的网址水印。
1/10 下载此文档
文档列表 文档介绍
嵌入式Linux驱动1简介  设备驱动程序是操作系统内核和机器硬件之间的接口。设备驱动程序为应用程序屏蔽了硬件的细节,这样使硬件对应用程序来说是透明的,在应用程序看来,硬件设备只是一个设备文件,应用程序可以像操作普通文件一样对硬件设备进行操作。设备驱动程序是嵌入式Linux内核的一部分,它完成以下的功能:·对硬件设备初始化和释放·把数据从内核传送到硬件,或从硬件读取数据·读取应用程序传送给设备文件的数据和回送应用程序请求的数据·检测和处理设备出现的错误和异常   Linux系统的设备分为字符设备,块设备和网络设备。用户进程通过设备文件实现与硬件的交流。每个设备文件都有其文件属性,表示是字符设备还是块设备。另外每个文件都有两个设备号:第一个是主设备号,标识驱动程序;第二个是从设备号,标识使用同一个设备驱动程序的不同硬件设备。   设备驱动程序可以分为3个主要组成部分:  (1)自动配置和初始化   用于负责检测所要驱动的硬件设备是否存在和是否能正常工作。如果该设备正常,则对这个设备及其相关设备驱动程序需要的软件状态进行初始化,如设置寄存器的值,初始化驱动程序用到的数据结构。这部分驱动程序仅在初始化的时候被调用一次。  (2)服务于I/O请求的子程序   调用服务于I/O请求的子程序是由于系统调用的结果,如read,write调用。这部分程序在执行的时候,系统仍认为是和进行调用的进程属于同一个进程,只是由用户态变成了核心态,它们的运行环境和进行此系统调用的用户程序一样,因此可以在其中调用sleep()等与进程运行环境有关得函数。  (3)中断服务子程序   在UNIX系统中,并不是直接从中断向量表中调用设备驱动程序的中断服务子程序,而是由UNIX系统来接收硬件中断,再由系统调用中断服务子程序。中断可以发生在任何一个进程运行的时候,因此在中断服务程序被调用的时候,不能依赖于任何进程的状态,也就不能调用任何与进程运行环境有关的函数。因为设备驱动程序一般支持同种类型的若干设备,所以一般在系统调用中断服务子程序的时候,都带有一个或多个参数,以唯一标识请求服务的设备。(helloworld)/**/#include<linux/>/*Neededbyallmodules*/#include<linux/>/*NeededforKERN_ALERT*/#include<linux/>/*Neededforthemodule-macros*/staticint__inithello_init(void)//Moduleentryfunctionspecifiedbymodule_init(){printk(KERN_ALERT"Hello,world!n");return0;}staticvoid__exithello_exit(void)//Moduleexitfunctionspecifiedbymodule_exit(){printk(KERN_ALERT"Goodbye,cruelworld!n");}module_init(hello_init);module_exit(hello_exit);MODULE_LICENSE("DualBSD/GPL");//sh

嵌入式linux驱动 来自淘豆网www.taodocs.com转载请标明出处.

相关文档 更多>>
非法内容举报中心
文档信息
  • 页数10
  • 收藏数0 收藏
  • 顶次数0
  • 上传人s0012230
  • 文件大小22 KB
  • 时间2018-09-10