欢迎来到淘文阁 - 分享文档赚钱的网站! | 帮助中心 好文档才是您的得力助手!
淘文阁 - 分享文档赚钱的网站
全部分类
  • 研究报告>
  • 管理文献>
  • 标准材料>
  • 技术资料>
  • 教育专区>
  • 应用文书>
  • 生活休闲>
  • 考试试题>
  • pptx模板>
  • 工商注册>
  • 期刊短文>
  • 图片设计>
  • ImageVerifierCode 换一换

    嵌入式linux系统应用开发.doc

    • 资源ID:70337777       资源大小:74.50KB        全文页数:7页
    • 资源格式: DOC        下载积分:15金币
    快捷下载 游客一键下载
    会员登录下载
    微信登录下载
    三方登录下载: 微信开放平台登录   QQ登录  
    二维码
    微信扫一扫登录
    下载资源需要15金币
    邮箱/手机:
    温馨提示:
    快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。
    如填写123,账号就是123,密码也是123。
    支付方式: 支付宝    微信支付   
    验证码:   换一换

     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    嵌入式linux系统应用开发.doc

    嵌入式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) 卸载模块 Ret<0N 失败退出 Ret<0YN N 退出Y字符设备驱动程序流程图源程序代码如下:/*globalvar.c*/#include <linux/config.h>#include <linux/module.h>#include <linux/init.h>#include <linux/kernel.h>#include <linux/fs.h> #include <linux/errno.h> #include <linux/types.h> #include <linux/proc_fs.h>#include <linux/fcntl.h> #include <linux/poll.h> #include <asm/system.h> #include<asm/uaccess.h>#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(ret<0)printk("globalvar register failuren");elseprintk("globalvar register successn");return ret;static void globalvar_exit(void)int ret;ret=unregister_chrdev(MAJOR_NUM,"globalvar"); /用于取消已注册的驱动,当执行卸载函数时,它会调用此注销函数将设备进行注销。 if(ret<0)printk("failuren");elseprintk("successn");module_init(globalvar_init); / 加载驱动程序时,内核自动调用,初始化硬件,注册设备module_exit(globalvar_exit); /卸载驱动程序时,内核自动调用,删除设备节点,注销设备/*globalvartest.c*/#include<sys/types.h>#include<sys/stat.h>#include<stdio.h>#include<fcntl.h>int 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 <linux/poll.h> #include <linux/proc_fs.h>驱动程序的编译略有不同需要采用如下命令:gcc-O2-Wall-DMODULE-D_KERNEL_-I/usr/src/linux/include-c globalvar.c 才能编译成功。十、实验心得: 这次实验主要是熟悉设备驱动程序的编写,Linux下的设备驱动程序是一些用于完成不同任务的函数的集合,通过这些函数使得linux下的设备犹如普通文件一般。因此对于应用程序来说设备只是一个普通的文件,应用程序可以象操作普通文件一样对硬件设备进行打开、关闭、读、写、IO控制等操作。这次实验只是初步了解驱动程序的概念,并编写了一个字符设备的驱动程序来加深我们对它的理解,设备驱动程序写好之后,就需要把驱动程序嵌入linux内核中去,执行命令insmod f 把驱动程序安装到系统中,再编写一个应用层测试程序。最后是卸载驱动模块,至此,整个字符驱动设备的编写基本完成,我们对驱动程序和应用程序的区别也有了更好的了解和掌握。十一、参考资料 嵌入式linux系统应用开发详解标准教程(第二版)电子工业出版社;嵌入式系统原理与技术教案

    注意事项

    本文(嵌入式linux系统应用开发.doc)为本站会员(asd****56)主动上传,淘文阁 - 分享文档赚钱的网站仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知淘文阁 - 分享文档赚钱的网站(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    关于淘文阁 - 版权申诉 - 用户使用规则 - 积分规则 - 联系我们

    本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

    工信部备案号:黑ICP备15003705号 © 2020-2023 www.taowenge.com 淘文阁 

    收起
    展开