基于单片机的嵌入式实时OS平台的研究与实现毕业论文.doc
《基于单片机的嵌入式实时OS平台的研究与实现毕业论文.doc》由会员分享,可在线阅读,更多相关《基于单片机的嵌入式实时OS平台的研究与实现毕业论文.doc(38页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、目 录摘 要1Abstract11 绪论21.1 引言21.2 实时操作系统的发展与现状21.3 选题的背景与意义41.4 论文主要研究的内容与论文结构52 嵌入式实时操作系统C/OS-内核分析52.1 C/OS-简介52.2 C/OS-的内核结构72.2.1 临界段的处理72.2.2 任务82.2.3 任务状态82.2.4 任务控制块92.2.5 就绪表112.2.6 任务调度112.2.7 中断和时钟节拍122.2.8 C/OS-初始化及启动123 C/OS-在STC89C52单片机上的移植133.1 STC89C52单片机片简介133.2 C/OS-源文件结构143.2.1 与处理器无关
2、代码153.2.2 与应用相关代码153.2.3 与处理器相关代码163.3 与移植相关代码的修改173.3.1 OS_CPU.H的修改173.3.2 OS_CPU_C.C的修改193.3.3 OS_CPU_A.ASM的修改213.4 C/OS-在STC89C52上的移植223.4.1 Keil C51编译器简介223.4.2 移植测试程序234 基于C/OS-的应用系统设计264.1 基于C/OS-扩展RTOS的体系结构264.2 实时温度控制系统的设计284.2.1 整体设计284.2.2 硬件模块设计284.2.3 系统程序的设计29总结31参考文献32致谢35 基于单片机的嵌入式实时O
3、S平台的研究与实现 摘 要:嵌入式系统融合了微电子、计算机软/硬件、通信和电子工程等多种技术,广泛应用于航空、航天、仪器仪表、工业控制等领域,它已经成为了科技创新的重要途径。而RTOS(Real-Time Operating System)使得在嵌入式操作系统上编程比在传统意义上编程有着更大的优势,随着不断的发展在更多的场合能够发挥其优势和作用。进行嵌入式实时操作系统开发平台的讨论和研究具有非凡的现实意义。论文首先从实时操作系统的整体概念进行论述,对实时操作系统RTOS的发展现状和发展趋势等方面进行了简单综述,然后在第二个章节重点分析了操作系统C/OS-内核结构,如:代码临界断、任务、时钟和中
4、断等。再在第三个章节中,以8位单片机STC89C52为微处理器,以C/OS-内核为嵌入式实时操作系统,以Keil C51为编译环境搭建了一个嵌入式实时操作系统的开发平台。在最后一个章节中,完成了实时温度控制系统的设计。关键词:嵌入式实时操作系统;C/OS-;STC89C52 The Research and Implementation of the Embedded Real-Time Operating System based on MCU Abstract:Embedded System involves much technology, including micro-electro
5、nics,electronic engineering, the software&hardware of computer, communication, and so on. It has been used in aviation, spaceflight, instrument, industrial-control and so on.It is a important method of science and technology innovation. Embedded operation-system has its advantage of programme mode t
6、han traditions owing to RTOS(Real-Time Operating System).The article first talks about the conception of RTOS and introduces the current situation of the development of RTOS and development trend. In the second chapter,the article talks about the kernel particularly of the real-time operation system
7、 C/OS-, for instance, task, clock and interrupt. In third chapter, the article designs the platform of embedded operation system, which regards STC89C52 as control object, reaving kernel C/OS- as operation system, Keil C51 as code warrior. In last chapter the article completes the design of real-tim
8、e temperature control system. Key Words: embedded Real-Time Operation System; C/OS-; STC89C521 绪论1.1 引言 在嵌入式系统的早期时代,应用程序直接控制CPU和各个接口,因此嵌入式系统开发人员需要做出大量的工作与硬件与软件的结合上。硬件只要发生简单的变化,软件就要作大量的改动,应用程序对硬件的依赖性很强。而操作系统的出现,使得硬件与软件在一定程度上分离开来,这为嵌入式软件开发人员节省了大量的时间。操作系统在系统层面上,进行CPU的各种运算执行和资源管理,就是资源管理器;在应用层面上,它为开发人员提供
9、了函数库,便于对硬件进行操作。在现在嵌入式系统中,操作系统的引入,使得大部分不确定的因素得到减少,极大的保证了整个应用系统的稳定性。而对于嵌入式开发人员来说,他们也能够专注于应用系统的开发,不再进行控制CPU的繁杂工作和控制硬件的工作。1.2 实时操作系统的发展与现状 实时操作系统(RTOS)是指当外界事件或数据产生时,能够接受并以足够快的速度予以处理,其处理的结果又能在规定的时间之内来控制生产过程或对处理系统作出快速响应,并控制所有实时任务协调一致运行的操作系统。因而,提供及时响应和高可靠性是其主要特点。纵观其发展,大致可分以下3个阶段:简单的实时操作系统 早期的实时操作系统小而简单的,运行
10、相对快速,带有一定专用型的软件,功能相对单一,不能说是真正的RTOS而是一种监控程序。它一般为用户提供系统初始化管理以及简单的实时时钟管理。这个时间应用较简单,实时性也要求不高,应用程序、实时监控程序和硬件运行平台往往是紧密联系在一起的。 专有的实时操作系统这类操作系统在国外称为Real-Time Operating System Developed in House。它是在当时用户为了满足自身应用需求而开发的,它并不适用于所有的硬件环境,只适用于特殊的硬件条件,因此移植性也不好。随着各个行业的应用发展,早期简单的RTOS已经越来越显出功能单一等各方面的不足。而RTOS的开发者为了满足这种快速
11、发展的应用需求,开发了与之相符合的专有的实时操作系统。通用型实时操作系统 在各种专用RTOS中,一些多任务的机制如优先级的调度、实时时钟管理、任务间的通讯、同步互斥机构基本上是相同的,不同的是面向各自硬件环境与应用目标。实际上,相同的多任务机制是能够共享的,因而可以把这部分很好的组织起来,形成以个通用的实时操作系统.一方面,在RTOS内核的最底层将不同的硬件特性屏蔽掉;另一方面,对不同的应用环境提供标准的、可裁剪的系统服务组件。这使得用户可以根据不同的实时应用要求及硬件环境选择不同的组件,也使得实时操作系统开发商在开发的过程中减少重复性工作。嵌入式实时操作系统的技术经过多年发展已经逐渐走向成熟
12、。嵌入式实时操作系统已广泛应用于家庭、通讯、商业、工业、国防领域,拥有非常多的不同品种的各类产品,例如数码相机、数字电视、掌上机顶盒、电脑PDA、手机、航天飞机、太空飞行器中都应用了嵌入式实时操作系统。目前占据市场的主要有论文所研究的C/OS-以及VxWorks、CLinux等。1.3 选题的背景与意义在嵌入式实时操作系统开发平台之上,开发人员不需要对操作系统的内核实现有详细的了解就能够进行一些嵌入式控制器的开发工作。控制领域的专业人员在利用平台开发嵌入式系统的时候,可以在一定程度上绕开操作系统这个专业壁垒。有嵌入式实时操作系统的开发平台作为基础,开发者只需要将精力集中在各个功能模块的编写之上
13、,模块之间的联系都遵循同样的接口协议。这样不同开发者就可以很方便的进行协作开发,提高开发的效率,而且各个开发者开发的模块也可以相互利用,很好的做到资源共享。这样的开发平台,势必对嵌入式系统在工业控制领域内的应用起到促进作用。C/OS-是由Jean.labrasse于1992年编写的一个嵌入式实时多任务操作系统。最早这个系统叫做C/OS,后来经过10年的应用和修改,在1999年Jean.labrasse推出了C/OS-,并在2000年得到了美国联邦航空管理局对于应用飞机的、符合RTCA DO-178B的标准认证,从而证明了C/OS-具有足够的稳定性和安全性。该操作系统是用C语言和汇编语言编写的,
14、其中大部分代码都是用C语言编写的,只有极少部分与处理器密切相关的代码是用汇编语言编写,所以用户只需做很少的工作可以很方便的移植到各类8位、16位、32位嵌入式处理器上。该操作系统结构简洁精练,可读性强,并具有较强的可扩展性。1.4 论文主要研究的内容与论文结构论文研究的目的是在基于STC89C52单片机的硬件平台上搭建一个C/OS-的应用平台,平台由硬件系统和软件系统两个部分组成:硬件系统:基于STC89C52芯片的硬件系统。软件系统:基于C/OS-内核的嵌入式实时操作系统。论文的主要工作有:C/OS-内核结构介绍与分析。以STC89C52为嵌入式处理器,以Keil C51为编译环境,完成C/
15、OS-嵌入式实时操作系统的移植。基于C/OS-内核扩展RTOS的体系结构,在搭建的平台上完成实时温度控制系统的设计。 2 嵌入式实时操作系统C/OS-内核分析2.1 C/OS-简介C/OS-是一个完整的,可移植、固化、裁剪的占先式实时多任务内核。C/OS-是专为嵌入式应用设计的,可移植在8位、16位、32位单片机或DSP中。C/OS-的主要特点有:源代码开放 全部源代码约5500行,清晰易读,结构协调。可移植性 C/OS-源代码绝大部分是用移植性很强的ANSI C写的,与微处理器硬件相关的部分是用汇编语言写的,便于移植到其他微处理器上。可裁剪 通过条件编译,可以实现C/OS-的裁剪,只使用C/
16、OS-中应用程序需要的服务。 可固化 C/OS-是为嵌入式应用而设计的,这就意味着,只要具备合适的系列软件工具,就可以将C/OS-嵌入到产品中作为产品的一部分。多任务 C/OS-可以管理64个任务,留给用户的应用程序最多可有56个任务,赋予每个任务不同的优先级。可剥夺性 C/OS-是完全可剥夺型的实时内核,总是运行就绪条件下优先级最高的任务。系统服务 C/OS-提供很多系统服务,例如信号量、互斥型信号量、时间标志、消息邮箱、消息队列、块大小固定的内存的申请与释放及时间管理函数等。 中断管理 中断可以使正在执行的任务暂时挂起。如果优先级更高的任务被该中断唤醒,则高优先级的任务在中断嵌套全部退出后
17、立即执行,中断嵌套层数可达255层。可确定性 绝大多数C/OS-的函数调用和服务的执行时间具有可确定性。任务栈 C/OS-允许每个任务有不同的栈空间,以便压低应用程序对RAM的需求。2.2 C/OS-的内核结构2.2.1 临界段的处理C/OS-为了处理临界段代码,须关中断,处理完毕后,再开中断。关中断使得C/OS-能够避免同时有其他任务或中断服务进入临界段代码。C/OS-定义2个宏调用来关中断和开中断,分别是:OS_ENTER_CRITICAL()和OS_EXIT_CRITICAL()。因为这2个宏定义取决于使用的微处理器,故在文件OS_CPU.H中可以找到相应的宏定义。OS_ENTER_CR
18、ITICAL()和OS_EXIT_CRITICAL()总是成对使用的,把临界段代码包起来。2.2.2 任务C/OS-可以管理多达64个任务,有2个任务已经被系统占用。必须个每个任务赋以不同的优先级,所以优先级从0到OS_LOWEST_PRIO-2优先级号越低,任务的优先级越高。 在C/OS-中任务通常是一个无限的循环。看起来就像其他C函数一样,有函数返回类型,但是绝对不会返回的,故返回参数必须定义成void。2.2.3 任务状态下图是C/OS-任务状态转换图,在任一给定的时间,任务状态一定是在以下5种状态之一: 图2.1 任务状态睡眠态 指任务驻留在程序空间,还没有交给C/OS-来管理。就绪态
19、 任务一旦建立,这个任务就进入了就绪态,准备运行。运行态 任务占有CPU,正在运行。等待状态 等待除CPU以外的其它资源或条件(如信号量),不能运行。中断服务态 正在运行的任务被中断,进入中断服务子程序。2.2.4 任务控制块任务控制块是一个数据结构,它与任务一一对应的。在操作系统初始化时,系统申请了一块RAM空间来存储空闲任务块。一旦任务建立,系统就会分配一个任务控制块OS_TCB(task control blocks)给该任务。当任务的CPU使用权被剥夺时,C/OS-用它来保存该任务的状态,当任务重新得到CPU的使用权时,任务控制块能确保任务从断点处继续执行下去。OS_TCB全部驻留在R
20、AM中,在任务建立时,OS_TCB被初始化。数据结构如下:typedef struct os_tcb OS_STK *OSTCBStkPtr;#if OS_TASK_CREATE_EXT_EN0 void *OSTCBExtPtr; OS_STK *OSTCBStkBottom; INT32U OSTCBStkSize; INT16U OSTCBOpt; INT16U OSTCBId;#endif struct os_tcb *OSTCBNext; struct os_tcb *OSTCBPrev;#if (OS_Q_EN0)&(OS_MAX_QS0)|(OS_MBOX_EN0)| (OS_S
21、EM0)|(OS_MUTEX_EN0) OS_EVENT *OSTCBEventPtr;#endif#if (OS_Q_EN0)&(OS_MAX_QS0)|(OS_MBOX_EN0) void *OSTCBMsg;#endif#if (OS_VERSION=251)&(OS_FLAG_EN0)&(OS_MAX_FLAGS0)#if OS_TASK_DEL_EN0 OS_FLAG_NODE *OSTCBFlagNode;#endif OS_FLAGS OSTCBFlagsRdy;#endif INT16U OSTCBDly; INT8U OSTCBStat; INT8U OSTCBPrio; I
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 基于单片机的嵌入式实时OS平台的研究与实现 毕业论文 基于 单片机 嵌入式 实时 OS 平台 研究 实现
限制150内