嵌入式系统开发技术 课程设计鸣器驱动程序设计.doc

嵌入式系统开发技术 课程设计鸣器驱动程序设计.doc

  1. 1、本文档共23页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
嵌入式系统开发技术 课程设计鸣器驱动程序设计

蚌埠学院 嵌入式系统开发技术 课程设计 专 业:电子信息科学与技术(嵌入式) 班 级: 电子信息2班 学 号: 00000000000 姓 名: 设计题目: 蜂鸣器驱动程序设计 2014年9月 目录 1.绪论 3 1.1概要 3 1.2设计内容 4 2.开发环境的搭建 4 2.1Redhat的安装 4 2.2安装arm-linux-gcc交叉编译器 9 2.3安装及编译linux-2.6.29-mini2440核 9 3.字符设备驱动相关知识 9 3.1模块机制 9 3.2字符设备开发基本步骤 10 3.3主设备号和次设备号 11 3.4实现字符驱动程序 12 4.蜂鸣器原理 14 4.1蜂鸣器的种类和工作原理 14 4.2开发板上蜂鸣器原理图分析 15 4.3GPB0-0参数 15 5.总体设计 16 5.1设计思路 16 5.2设计步骤 16 6. 驱动及测试程序 17 6.1beep.c 17 6.2beep_tset.c 21 7.运行结果及截图 22 综合设计总结与思考 25 1.绪论 1.1概要 linux 驱动在本质上就是一种软件程序,上层软件可以在不用了解硬件特性的情况下,通过驱动提供的接口,和计算机硬件进行通信。 系统调用是内核和应用程序之间的接口,而驱动程序是内核和硬件之间的接口,也就是内核和硬件之间的桥梁。它为应用程序屏蔽了硬件的细节,这样在应用程序看来,硬件设备只是一个设备文件,应用程序可以象操作普通文件一样对硬件设备进行操作。 linux 驱动程序是内核的一部分,管理着系统中的设备控制器和相应的设备。它主要完成这么几个功能:对设备初始化和释放;传送数据到硬件和从硬件读取数据;检测和处理设备出现的错误。 一般来说,一个驱动可以管理一种类型的设备。例如不同的 U 盘都属于 mass storage 设备,我们不需要为每一个 U 盘编写驱动,而只需要一个驱动就可以管理所有这些 mass storage 设备。 为方便我们加入各种驱动来支持不同的硬件,内核抽象出了很多层次结构,这些层次结构是 linux 设备驱动的上层。它们抽象出各种的驱动接口,驱动只需要填写相应的回调函数,就能很容易把新的驱动添加到内核。 一般来说, linux 驱动可以分为三类,就是块设备驱动,字符设备驱动和网络设备驱动。块设备的读写都有缓存来支持,并且块设备必须能够随机存取。块设备驱动主要用于磁盘驱动器。 而字符设备的 I/O 操作没有通过缓存。字符设备操作以字节为基础,但不是说一次只能执行一个字节操作。例如对于字符设备我们可以通过 mmap 一次进行大量数据交换。字符设备实现比较简单和灵活。 1.2设计内容 本次设计是简单的字符设备驱动设计,基于mini2440的蜂鸣器的驱动设计。 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 在bash_profile里添加路径:gedit ~/.bash_profiel 路径 /root/usr/local/arm/4.5.1/bin source ~/.bash_profile 使更改生效 2.3安装及编译linux-2.6.29-mini2440核 复制内核到root目录下 解压内核文件 tar zxvf linux-2.6.29-mini2440tgz 使内核文件生效:cp config_mini2440_n35 .config 使用make命令完成编译 3.字符设备驱动相关知识 3.1模块机制 Linux提供了机制被称为模块(Module)的机制 提供了对许多模块支持, 包括但不限于, 设备驱动 每个模块由目标代码组成( 没有连接成一个完整可执行程序 ) insmod 将模块动态加载到正在运行内核 rmmod 程序移除模块 Linux内核模块的程序结构 module_init()---模块加载函数(必须) 通过insmod或modprobe命令加

文档评论(0)

wnqwwy20 + 关注
实名认证
内容提供者

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

版权声明书
用户编号:7014141164000003

1亿VIP精品文档

相关文档