章小羞蜂鸣器驱动程序设计解析.docVIP

  • 6
  • 0
  • 约7.98千字
  • 约 23页
  • 2016-05-14 发布于湖北
  • 举报
嵌入式系统开发技术 课程设计 题目名称 蜂鸣器驱动程序设计 专业班级 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精品文档

相关文档