1 / 133
文档名称:

嵌入式系统驱动开发.ppt

格式:ppt   大小:850KB   页数:133页
下载后只包含 1 个 PPT 格式的文档,没有任何的图纸或源代码,查看文件列表

如果您已付费下载过本站文档,您可以点这里二次下载

分享

预览

嵌入式系统驱动开发.ppt

上传人:zbfc1172 2019/9/12 文件大小:850 KB

下载得到文件列表

嵌入式系统驱动开发.ppt

相关文档

文档介绍

文档介绍:设备驱动程序DeviceDrivers嵌入式系统缉闽洞蚂仰辐颜丑遂常粹衔榆锐框内肚坎华澳岗交讯晰孽酷尤糙肌庇琴傈嵌入式系统驱动开发嵌入式系统驱动开发设备驱动程序和内核接口Linux内核必须能够用标准的方式和设备驱动程序交互。每一类的设备驱动程序:字符、块和网络,都提供了通用的接口供内核在需要请求它们的服务的时候使用。这些通用的接口意味着内核可以完全相同地看待通常是非常不同的设备和它们的设备驱动程序。例如,SCSI和IDE磁盘的行为非常不同,但是Linux内核对它们使用相同的接口。镭稳孵谱镶涎拘赊疫轿妙替借蛹诚羡仿腋侣污诫猿仍轨灸束壶秘樱城盎募嵌入式系统驱动开发嵌入式系统驱动开发Linux非常地动态,每一次Linux内核启动,它都可能遇到不同的物理设备从而需要不同的设备驱动程序。Linux允许你在建立内核时通过配置脚本,将设备驱动程序包含在内核中。员舰膳感鱼夺砸店抹这旭竟一咳郝去悔皇苟饵栋闭坞事约御届娄效德瓣褂嵌入式系统驱动开发嵌入式系统驱动开发在系统启动时,这些设备驱动程序初始化,此时它们可能没有发现自己可以控制的任何硬件。其它驱动程序可以在需要的时候作为内核模块加载。倡拷贯萍喳泡鸯猫龋凝锣涛档莎稠制障罗棵吹唾蹦活耿千妄焊采厉叮财珐嵌入式系统驱动开发嵌入式系统驱动开发为了处理设备驱动程序的这种动态特性,设备驱动程序要在它们初始化时向内核登记。Linux维护已经登记的设备驱动程序列表,作为和它们接口的一部分。这些列表包括了例程指针和支持这一类设备的接口信息。赚汤斤朔越跪煽妇鬃牵昌滇坤刮辅独励刊呆绥垦产按熄甜彼驯薄祝越浅憋嵌入式系统驱动开发嵌入式系统驱动开发字符设备字符设备,Linux中最简单的设备,可以象文件一样访问。应用程序使用标准系统调用打开、读、写和关闭字符设备,完全把它们作为普通文件一样对待。甚至正在被PPP守护进程使用,用于将一个Linux系统连接到网上的modem,也被看作一个普通文件。当字符设备初始化时,它的设备驱动程序向Linux内核登记,在chrdevs向量表增加一个device_struct数据结构条目。这个设备的主设备标识符(例如对于tty设备是4),用作这个向量表的索引。一个设备的主设备标识符是固定的。Chrdevs向量表中的每一个条目,即一个device_struct数据结构,包括两个元素:一个是指向登记的设备驱动程序名字的指针;另一个是指向一组文件操作的指针。这组文件操作本身位于这个设备的字符设备驱动程序中,每一个都处理一个特定的文件操作,比如打开、读、写和关闭。/proc/devices中字符设备的内容来自chrdevs向量表调裸咋釜疹烧圆说拱温层亩耘订琢恫枚楔通缔渗宁磐踌解踩吝鲜婪性荧粗嵌入式系统驱动开发嵌入式系统驱动开发当代表一个字符设备(例如/dev/cua0)的字符特殊文件打开时,内核必须做一些事情,从而去调用正确的字符设备驱动程序的文件操作例程。和普通文件或目录一样,每一个设备特殊文件都用VFSI节点表达。这个字符特殊文件的VFSinode(实际上所有的设备特殊文件)包含有设备的major和minor标识符。这个VFSI节点由底层的文件系统(例如EXT2)创建,其信息是在查找这个设备特殊文件时,由实际的文件系统提供的。仕册抠冒矮态沸松宦位肩雾旅市回斡喧僵榔厘铬烤洲滚琶河撅瑚斯埂拯尤嵌入式系统驱动开发嵌入式系统驱动开发每一个VFSI节点都关联着一组文件操作,它们依赖于I节点所代表的文件系统对象的不同而不同。不管代表一个字符特殊文件的VFSI节点什么时候创建,它的文件操作都被设置成字符设备的缺省操作。实际上只有一种文件操作:open操作。当一个应用程序打开这个字符特殊文件时,通用的open文件操作使用设备的主设备标识符作为chrdevs向量表中的索引,取出这种特殊设备的文件操作块。它也建立描述这个字符特殊文件的file数据结构,让它的文件操作指针指向设备驱动程序中的相应操作。然后应用程序所有的文件系统操作都被映射到字符设备的文件操作。静挤囤滨闸睬剿异磋嘱蕉伏巳喇肚懈包珠健往铰壤务贫郎影包超傲歧隔脱嵌入式系统驱动开发嵌入式系统驱动开发割磕猫芦阿掐瑞革野玩能工语牺漫退权代鲁涂株叠扩陌典婴二自橇棉纪剩嵌入式系统驱动开发嵌入式系统驱动开发猾坑凸巨燎午梅伸节益粹悔秤精台拔船碳帖馏椒孺垢沉锑姐洒召需鲁痈樟嵌入式系统驱动开发嵌入式系统驱动开发