已阅读5页,还剩2页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
嵌入式linux系统应用开发课程设计报告一、 实验时间2010年5月20日二、实验地点一实验楼401机房三、小组成员刘威 王恒 周赛波 徐正东 李博帅四、指导老师阳俊老师五、实验目的1、熟悉串口通信程序中linux驱动程序;2、能够编写一个字符设备驱动程序的实例。3、会带上必要参数,正确调试程序,能够编写字符设备驱动程序的测试用例;六、实验设备和环境个人计算机一台、Linux系统软件。七、实验内容1、参照书本和老师给的课件调试运行设备驱动程序。2、根据字符设备驱动程序的编写步骤调试程序,理解各函数参数的意思。并能调试驱动程序的测试用例,简单地以输入数字到驱动中,并从驱动中读出此数字来验证驱动程序的正确性。八、实验过程及流程图步骤:a)登录进入linux操作系统,打开命令窗口进入myprojects文建一文件夹取名为charmod命令如下:cd/myprojectsmkdir charmodb)进入charmod文件夹,新建文件globalvar.c,并在其中输入 cd charmod /进入文件夹vi globalvar.c /新建文件globalvar.cc)保存文件进入命令行模式并对其进行编译.d)新建应用层测试文件globalvartest.ce)保存文件并对其进行编译。f)载入驱动模块globalvar.og)创建节点以便于访问设备,其命令如下所示:mknod/dev/globalvar c 254 0h)运行应用层测试程序 声明许可证register_chrdev()注册字符设备struct file_operations 填充结构体Read()读设备数据Write()往设备写数据module_init(globalvar_init)初始化设备unregister_chrdev()取消模块注册module_exit(globalvar_exit) 卸载模块 Ret0N 失败退出 Ret0YN N 退出Y字符设备驱动程序流程图源程序代码如下:/*globalvar.c*/#include #include #include #include #include #include #include #include #include #include #include #include#define MAJOR_NUM 254 /定义主设备号为254static int global_var=0; MODULE_LICENSE(GPL); /用来声明一个模块的许可证static ssize_t globalvar_read(struct file*file,char*buf,size_t len,loff_t*ppos) /读函数read()完成从设备中读出数据 copy_to_user(buf,&global_var,sizeof(int); /把驱动程序缓冲区的内容放到用户程序中;return sizeof(int);static ssize_t globalvar_write(struct file*file,char*buf,size_t len) /写函数write()完成往设备中写入数据copy_from_user(&global_var,buf,sizeof(int); / 把用户程序的内容放到驱动程序缓冲区内;return sizeof(int);static struct file_operations globalvar_fops=read: globalvar_read,write: globalvar_write,; / 填充设备驱动程序接口,即函数入口点static int globalvar_init(void) /初始化设备int ret;ret=MAJOR_NUM,globalvar,&globalvar_fops); /此函数用于设备的注册,其中MAJOR_NUM为主设备号,globalvar为设备名,globalvar_fops为包含基本函数入口点的file_operations类型结构体if(ret0)printk(globalvar register failuren);elseprintk(globalvar register successn);return ret;static void globalvar_exit(void)int ret;ret=unregister_chrdev(MAJOR_NUM,globalvar); /用于取消已注册的驱动,当执行卸载函数时,它会调用此注销函数将设备进行注销。 if(ret0)printk(failuren);elseprintk(successn);module_init(globalvar_init); / 加载驱动程序时,内核自动调用,初始化硬件,注册设备module_exit(globalvar_exit); /卸载驱动程序时,内核自动调用,删除设备节点,注销设备/*globalvartest.c*/#include#include#include#includeint main()int fd,num; /定义文件描述符fd=open(/dev/globalvar,O_RDWR,S_IRUSR|S_IWUSR); /以可读可写方式打开驱动程序文件;if(fd!=-1)read(fd,&num,sizeof(int); /从文件里读出数据 printf(The globalvar is%dn,num);printf(Please input the num written to globaln);scanf(%d,&num); /从键盘输入数据write(fd,&num,sizeof(int); /把输入的数据写入驱动程序文件中去read(fd,&num,sizeof(int); /读出输入的数据内容printf(The globalvar is%dn,num);close(fd); /关闭文件elseprintf(Device open failuren);九、实验过程中遇到的问题以及如何解决。 问题:在驱动程序的调试过程中,出现很多错误。解决:添加一些必要的头文件,如#include #include 驱动程序的编译略有不同需要采用如下命令:gcc-O2-Wall-DMODULE-D_KERNEL_-I/usr/src/linux/include-c globalvar.c 才能编译成功。十、实验心得: 这次实验主要是熟悉设备驱动程序的编写,Linux下的设备驱动程序是一些用于完成不同任务的函数的集合,通过这些函数使得linux下的设备犹如普通文件一般。因此对于应用程序来说设备只是一个普通的文件,应用程序可以象操作普通文件一样对硬件设备进行打开、关闭、读、写、IO控制等操作。这次实验只是初步了解驱动程序的概念,并编写了一个字符设备的驱动程序来加深我们对它的理解,设备驱动程序写好之后,就需要把驱动程序嵌入linu
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 【正版授权】 ISO/IEC 19798:2025 EN Information technology - Office equipment - Method for the determination of toner cartridge yield for colour printers and multi-function devices that c
- 【正版授权】 IEC 60079-29-0:2025 EN-FR Explosive atmospheres - Part 29-0: Gas detection equipment - General requirements and test methods
- 废水处理药剂研发与应用
- 河道护岸的生态技术
- 广告文案的情感化表达
- 店面喝茶费合同范本
- 工地用工人合同范本
- 师德师风承诺协议书
- 工龄转移协议书范本
- 延长学制就业协议书
- 汽车租赁合同模板
- 医药行业研发项目激励机制管理制度
- 冷库管理规章制度和管理制度
- 手术室烟雾的预防与控制
- 第04辑一轮阅读 专题10 阅读理解说明文选标题专练15篇(满分攻略+高考真题+名校模拟)-2025届新高三英语提分培优通关练(高考真题+名校模拟)教师版
- 1、安全管理领导机构和安全管理专职机构制度
- 食品安全与质量检测技能大赛考试题及答案
- DBJ15-22-2021-T 锤击式预应力混凝土管桩工程技术规程(广东省)
- CJT 3008.3-1993 城市排水流量堰槽测量标准巴歇尔水槽
- DL-T5706-2014火力发电工程施工组织设计导则
- (高清版)JTG 5211-2024 农村公路技术状况评定标准
评论
0/150
提交评论