《嵌入式系统实验教程 教学课件 ppt 作者 鲍喜荣 实验七 驱动程序结构实验》由会员分享,可在线阅读,更多相关《嵌入式系统实验教程 教学课件 ppt 作者 鲍喜荣 实验七 驱动程序结构实验(15页珍藏版)》请在金锄头文库上搜索。
1、1,实验七 驱动程序结构实验,提纲,实验目的 实验原理 实验内容 实验小结 习题与思考题,实验目的,了解驱动程序的结构 了解驱动程序常用结构体 了解驱动程序常用函数,实验原理,驱动程序介绍 驱动程序是一组代码,这部分代码负责将应用程序的一些需求,如读、写等操作,正确无误的传递给相关的硬件,并使硬件能够做出正确反应的代码。驱动程序像是一个黑盒子,它隐藏了硬件的工作细节,应用程序只需要通过一组标准化的接口,就可以实现对硬件的操作。,实验原理,Linux设备驱动程序的分类 字符设备 块设备 网络设备,实验原理,驱动程序结构,实验原理,内核模块 Kernel Module是Linux系统启动之后能够动
2、态进行load, unload的kernel的组成要素。 因此不需对kernel进行重新编译或系统重启也可将kernel的一部分替换掉。设备驱动,文 件系统,网络协议等可做成模块来提供。,实验原理,主,从设备号 应用程序通过文件系统的名字(或节点)来进行访问这些设备,所有的设备节点在/dev目录下。 主设备号用于kernel中区分设备驱动,次设备号用于设备驱动内区分设备。一个设备驱动可能控制多个设备。新的设备驱动要有新的主设备号。Documentation /devices.txt中定义了所有设备的主设备号。当自己传建设备的时候不要与常用的设备好冲突。,实验原理,驱动程序基本框架 初始化设备模块 设备打开模块 数据读写和控制模块 中断处理模块(有的驱动程序没有) 设备释放模块 设备卸载模块。,实验原理,重要结构体 file_operation file,实验内容,hello_world模块加载实验 实验代码,实验内容,编译,实验内容,下载到目标平台 在minicom Ctrl+a s,实验内容,挂载目标代码,思考题,如何解决模块加载过程中的内核版本兼容的问题 如何实现一内存读写模块驱动程序,