1.2 研究的目的和意义
μC/OS是一个功能比较完善且结构简单的嵌入式操作系统内核。由于μC/OS提供源代码和在多种处理器上移植的说明,易于学习,非常适合初学者使用。同时,经过大量的实践检验,证明了它具有很高的易用性和实用性。
随着微处理器的快速发展,ARM类的32位精简指令集处理器(RISC)的运算能力变得越来越强大,并且其应用越来越广泛。因此,需要有性能更好的嵌入式操作系统与其相匹配。μC/OS作为一个开源的实时操作系统,它具有很高的可裁剪性,它可以嵌入到很小的系统中,具有很高的设计灵活性。
以上特点使得使嵌入式系统的开发和维护等各项成本大大降低,这在实际产品开发过程中具有很重要意义。因此,对μC/OS的分析和移植具有很重要的现实意义。
1.3 本章小结
本章主要介绍了选题的背景和研究的目的和意义,为下面的章节对μC/OS的一系列分析和移植打下了基础。
2 基础知识
2.1 μC/OS概述
2.1.1 嵌入式实时操作系统
嵌入式操作系统是嵌入另一种设备的一种专用计算机系统。与一般意义上的通用计算机相比较,它可能具有实时性比较好、可靠性比较高、专用性特别强、功耗比较低、裁剪性非常好等显著特点[2]。为了适应应用系统对功能、成本、功耗和可靠性等综合性能的要求,它是可以被使用者裁剪的。
嵌入式操作系统运行在硬件平台上,对整个系统和它所操作的硬件等资源进行统一协调并对嵌入式系统和其它资源进行控制。由于嵌入式操作系统的硬件比较特殊,并且可以适应多种应用环境和开发方式,因此它具有了微型化、高可靠性、可裁剪性好、高实时性、易移植性等优点[3]。文献综述
2.1.2 μC/OS简介
μC/OS大致可以分为核心部分、任务处理、任务的同步与通信、时间处理和CPU的移植部分5个主要部分[5]。
(1) 核心部分(OS_CORE.C):该部分是操作系统的处理核心,主要包括以下几个部分:操作系统的初始化、系统的运行、任务调度、时钟节拍、事件处理、中断进出的前导[4]。
(2) 任务处理部分(OS_TASK.C):μC/OS调度的基本单位是任务,因此任务处理部分与任务的操作密切相关。该部分主要包括任务的建立、挂起、删除和恢复。
(3) 时钟部分(OS_TIME.C):μC/OS中的最小时钟单位是timetick(时钟节拍)[6]。该部分最主要的功能是任务的延时操作。
(4) 任务同步与通信部分:主要包括对信号量、邮箱、邮箱队列、事件标志等事件的处理[7]。该部分主要用于访问临界资源和联系多个任务。
(5) CPU的移植:该部分主要和CPU的接口部分有关。其主要包括时钟节拍的产生和处理、中断处理、任务级和中断级任务切换的底层实现等部分[8]。μC/OS作为一个通用性很高的操作系统,需要根据具体的微处理器来进行相应的移植。
2.1.3 μC/OS的内核
μC/OS的内核部分主要包括任务调度、任务同步和内存管理三个主要部分。
在多任务操作系统中,内核提供任务切换和任务通信等基本服务[10]。μC/OS的每个任务的堆栈空间都是相互独立的,因此可以实现任务的快速切换 。 μC/OS内核可以对256个任务进行管理。μC/OS不支持时间片轮转调度算法,但是每个任务被赋予不同的优先级,以实现按优先级调度。
μC/OS在每个时刻总是让优先级最高的已经就绪的任务调入运行,它在时钟节拍结束中断、中断结束、定时中断结束时总是调入优先级最高的任务来运行,以确保优先级最高的任务占用微处理器。μC/OS还精心设计了就绪表结构以使延时可以被准确预知[12]。