章小羞蜂鸣器驱动程序设计:.doc

  1. 1、本文档共23页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
嵌入式系统开发技术 课程设计 题目名称 蜂鸣器驱动程序设计 专业班级 11级电子信息2班 学生姓名 章小羞 学 号 51102022012 指导教师 南京易嵌技术有限公司赵翔 二○一四年九月八日 1.绪论 3 1.1概要 3 1.2设计内容 4 2.开发环境的搭建 4 2.1Redhat的安装 4 2.2安装arm-linux-gcc交叉编译器 8 2.3安装及编译linux-2.6.35.7mini210-tvp5150内核 8 3.字符设备驱动相关知识 8 3.1模块机制 8 3.2字符设备开发基本步骤 9 3.3主设备号和次设备号 9 3.4实现字符驱动程序 10 3.5 字符设备图 12 4.蜂鸣器原理 12 4.1蜂鸣器的种类和工作原理 12 4.2开发板上蜂鸣器原理图分析 13 4.3GPD0参数 13 5.总体设计 15 5.1设计思路 15 5.2设计步骤 15 6. 驱动及测试程序 15 6.1beep.c 15 6.2 test.c 18 综合设计总结与思考 20 1.绪论 1.1概要 一般来说, linux 驱动可以分为三类,就是块设备驱动,字符设备驱动和网络设备驱动。块设备的读写都有缓存来支持,并且块设备必须能够随机存取。块设备驱动主要用于磁盘驱动器。 。 嵌入式系统就是一种软件和硬件的结合体,而linux操作系统则是嵌入式最简单有效的操作系统,linux 驱动在本质上就是一种软件程序,上层软件可以在不用了解硬件特性的情况下,通过驱动提供的接口,和计算机硬件进行通信。 linux 驱动程序是内核的一部分,管理着系统中的设备控制器和相应的设备。它主要完成这么几个功能:对设备初始化和释放;传送数据到硬件和从硬件读取数据;检测和处理设备出现的错误。 系统调用是内核和应用程序之间的接口,而驱动程序是内核和硬件之间的接口,也就是内核和硬件之间的桥梁。 嵌入式系统就是硬件和软件的相结合,嵌入到整机里使整机实现智能工作的一个系统,如今嵌入式系统已经渗透到我们生活中每个角落,工业,服务业等等。。。随着科技的日益发展,这个范围将进一步加大,所以如果能够熟练地掌握住嵌入式操作系统在以后的市场就业方面肯定会如鱼得水。 1.2设计内容 本次设计是简单的字符设备驱动设计,基于友善tiny210的蜂鸣器的驱动设计。 2.开发环境的搭建 2.1Redhat的安装 创建一个虚拟机:点击菜单栏File-New-Virtual machine。点击下一步。 选择Typical选项。 选择Linux下的Red Hat Linux 填写虚拟机的命名和存储地址。 选择磁盘大小 2.2安装arm-linux-gcc交叉编译器 将 arm-linux-gcc-4.5.1.tgz复制到虚拟机的root目录下 解压文件:tar zxvf arm-linux-gcc-4.5.1.tgz 复制路径/root/Desktop/opt/FriendlyARM/toolschain/4.5.1/bin 2.3安装及编译linux-2.6.35.7mini210-tvp5150内核 复制内核到root目录下 解压内核文件 tar zxvf linux-2.6.35.7tgz 使内核文件生效:cp config_mini210-tvp5150-linux-deconfig .config 使用make命令完成编译 3.字符设备驱动相关知识 3.1模块机制 Linux提供了机制被称为模块(Module)的机制 提供了对许多模块支持, 包括但不限于, 设备驱动 每个模块由目标代码组成( 没有连接成一个完整可执行程序 ) insmod 将模块动态加载到正在运行内核 rmmod 程序移除模块 Linux内核模块的程序结构 module_init()---模块加载函数(必须) 通过insmod或modprobe命令加载内核模块时,模块的加载函数 会自动被内核执行,完成模块的相关初始化工作 module_exit()---模块卸载函数(必须) 当通过rmmod命令卸载某模块时,模块的卸载函数会自动被内核执行,完成 与模块装载函数相反的功能 MODULE_LICENSE()---模块许可证声明(必须) 模块许可证(LICENSE)声明描述内核模块的许可权限如果不声明LICENSE,模块被加载时,将收到内核被污染(kernel tainted)的警告 3.2字符设备开发基本步骤 确定主设备号和次设备号

文档评论(0)

风凰传奇 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档