浅析嵌入式μC设备驱动的设计与实现_第1页
浅析嵌入式μC设备驱动的设计与实现_第2页
浅析嵌入式μC设备驱动的设计与实现_第3页
浅析嵌入式μC设备驱动的设计与实现_第4页
浅析嵌入式μC设备驱动的设计与实现_第5页
已阅读5页,还剩1页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、浅析嵌入式(3设备驱动的设计与实现浅析嵌入式 C/OS- n设备驱动的设计与实现设备驱动程序是任何操作系统的必不可少的、最保密的一个 组成部分,它们实现了计算机系统所有附属设备的一个标准接口,它 包含与硬件直接相关的设备驱动。从广义上说,”驱动程序”是指 一些函数的集合,这些函数都能对硬件设备进行操作。本文简单分 析了 C/OS-n下设备驱动的设计与实现。设备驱动程序是任何操作系统的必不可少的、最保密的一个组 成部分,它们实现了计算机系统所有附属设备的一个标准接口,它包 含与硬件直接相关的设备驱动。从广义上说,”驱动程序”是指一 些函数的集合,这些函数都能对硬件设备进行操作。驱动程序的概 念在

2、没有固定的操作系统的时候,是一个比较模糊的定义。简单地 理解就是提供了一个软件到硬件(也能够是虚拟硬件)操作的函 数。一般主要应该包括:设备初始化、设备的读写(输入输出)、设 备的控制等信息。在“ C/OS- n下没有统一的设备驱动接口 一一不 像windows或者linux下经过设备文件的定义模式,因此,把一些对 硬件操作是经过一般的函数来完成的,叫成”驱动程序”也不为 过。简介外设驱动程序是实时内核和硬件之间的接口,是连接底层硬件和内 核的纽带。编写驱动程序模块应满足以下主要功能:对设备初始化;把数据从内核传送到硬件和从硬件读取数据;读取应用程序传送给设备的数据和回送应用程序请求的数 据;

3、监测和处理设备出现的异常。由于在“ C/OS-II下没有统 一的设备驱动接口,在该操作系统中设备驱动的设计和实现主要是 经过一些对硬件操作的函数来完成。MC/os-n操作系统启动过程中的硬件初始化基于“C/OS- II的应用系统工作时,首先把CPU初始 化;接着进行操作系统初始化,主要完成任务控制块(TCB )初始 化、TCB优先级表初始化、空任务的创立等;然后开始创立新任 务,并可在新创立的任务中再创立其它的新任务;最后调用OSST ART()函数启动多任务调度。当“ C/OS-II实际移植到具体的硬件平台中时,系统初始化时 还要进行硬件的初始化。主函数是系统启动首先执行的一个函数, 在启动

4、“ C/OS II之前,要屏蔽所有中断,并对全局变量初始化,防 止运行出错。硬件初始化主要包括中断初始化,串口、键盘、显示 等设备初始化。“ C/OS II的初始化经过调用OSInit()函数,为OS 分配任务队列、优先级状态表和准备状态表,初始化全局变量,而且 创立一个空循环任务。接下来,在启动“ C/OS II前调用 OSTaskCreate()创立所有用户任务,并置准备态,创立任务时,要指定 每个任务的优先级、堆栈大小和位置、任务函数入口。调用 OS2Start()启动“ C/OS一11。从就绪队列中找到优先级最高的任务, 作为当前任务执行。流程如图所示。MC/OS-n操作系统对硬件的操

5、作和控制3.1函数控制硬件前面已经提到过,不像其它的操作系统,在 C/OS11中没有 统一的设备驱动接口,因此对硬件的操作和控制能够经过函数来完 成。在启动过程中完成硬件初始化后,系统创立一个空循环任务,然 后就能够调用OSTaskCreate()创立用户任务,在任务用户任务中选 择要控制的硬件,选择最佳的控制方法,调用用户自己编写的函数来 完成。3.2 BSPBSP(板级支持包)是介于底层硬件和操作系统之间的软件层次, 它完成系统上电后最初的硬件和软件初始化,并对底层硬件进行封 装,使得操作系统不再面对具体的操作。为“C/OS-II编写一个简单的BSP。它首先设置CPU内部寄存器 和系统堆栈

6、,并初始化堆栈指针,建立程序的运行和调用环境;然后 能够方便地使用C语言设置硬件的配置环境,并编制相应的操作函 数,为操作系统调用提供统一的接口 ;在CPU、板级和程序自身初 始化完成后,就能够把CPU的控制权交给操作系统了。实际应用举例既然在“ C/OS-II下没有统一的设备驱动接口,系统对硬件的 控制是经过一些对硬件操作的函数来完成的。下面以在“ C/OS-II 实时内核下驱动程序读取A/D的三种方法,分析在实际的工程实践 中 C/OS-II设备驱动的设计和实现,以及在设计过程中应注意的 一些问题。以一个单片机数据采集系统为例,硬件环境基于C8051F015单片 机。A/D转换是单片机数据

7、采集系统的重要组成部分,实时内核下 A/D驱动程序的实现过程主要取决于A/D转换器的转换时间。我 们首先比较和分析 C/OS-II下A/D采样数据的三种方法;其次介 绍C8051F015单片机A/D模数转换器的配置及特点;最后,在 C/OS-II内核移植到8位单片机C8051F015的基础上,介绍编写 A/D驱动程序的一般思路和方法。4.1 “ C/OS-II实时内核下的A/D读取方法实时内核下,驱动程序采用什么方法读取A/D采样数据是首先 考虑的问题。许多因素将影响读取A/D,如 A/D的转换时间、模拟 值的转换频率、输入通道数等,但最主要的是取决于A/D的转换时 间。典型的A/D转换电路由模

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论