嵌入式实时操作系统UCOS 2优劣势分析

合集下载

ucosii消息队列的使用注意事项

ucosii消息队列的使用注意事项

ucosii消息队列的使用注意事项UC/OS-II是一种嵌入式操作系统,它提供了一种消息队列机制,用于进程间的通信。

在使用UC/OS-II的消息队列时,有一些注意事项需要遵守。

本文将详细介绍这些注意事项,以帮助读者更好地使用UC/OS-II的消息队列功能。

使用UC/OS-II消息队列时,应该注意消息的大小。

消息队列中存储的消息是以字节为单位的,因此在定义消息结构时,需要考虑消息的大小。

如果消息过大,会占用过多的内存资源;如果消息过小,可能无法满足通信的需求。

因此,在定义消息结构时,需要根据实际需求合理地选择消息的大小。

使用UC/OS-II消息队列时,应该注意消息的优先级。

消息队列中的消息是按照优先级进行排序的,优先级高的消息会先被处理。

在发送消息时,可以通过设置优先级来控制消息的处理顺序。

需要注意的是,优先级越高的消息会占用更多的系统资源,因此在设置消息的优先级时,需要权衡系统资源的利用和消息处理的实时性。

使用UC/OS-II消息队列时,还需要注意消息的发送和接收顺序。

UC/OS-II的消息队列是先进先出的,即先发送的消息会先被接收并处理。

因此,在设计消息的发送和接收逻辑时,需要保证消息的发送和接收顺序是一致的,以避免消息的丢失或处理顺序的混乱。

UC/OS-II消息队列的使用还需要注意消息的处理方式。

在接收消息时,可以选择阻塞方式或非阻塞方式。

阻塞方式会导致接收任务在没有消息到达时一直等待,而非阻塞方式则会立即返回。

需要根据实际需求选择合适的处理方式,以确保消息的及时处理。

另一个需要注意的地方是消息队列的容量。

UC/OS-II的消息队列有一个最大容量限制,当消息队列已满时,新的消息将无法发送。

因此,在使用消息队列时,需要合理地估计消息的发送频率和处理速度,以确保消息队列不会溢出。

UC/OS-II消息队列还可以设置超时时间。

超时时间是指在接收消息时等待的最长时间,如果超过了超时时间仍然没有收到消息,接收任务将返回一个超时错误。

嵌入式系统的优点和缺点

嵌入式系统的优点和缺点

嵌入式系统的优点和缺点嵌入式系统的概述嵌入式系统是指集成了特定功能的计算机系统,通常被嵌入到其他设备中,并与其他系统相互交互。

嵌入式系统采用了专用的硬件和软件,通常设计用来执行特定的任务,如控制操作、传感和测量、媒体播放等。

这些系统广泛应用于工业自动化、交通运输、医疗设备、家庭电器等领域,成为现代社会不可或缺的一部分。

然而,嵌入式系统也存在一些缺点。

嵌入式系统的优点1. 低成本嵌入式系统通常采用优化的硬件和软件设计,以达到高效能和低成本的目的。

由于专门的硬件设备和精简的软件编程,嵌入式系统可以更加精确地控制和管理特定任务,从而实现高效而优质的性能。

此外,由于嵌入式系统通常集成在其他设备中,可以减少硬件成本和占用空间,使生产商能够更加轻松地将成本控制在成本范围内。

2. 可靠性高嵌入式系统通常需要长时间的运行,因此对可靠性和质量的要求很高。

专门的硬件和软件设计使得嵌入式系统可以抵抗各种环境干扰和故障,以减少系统崩溃和操作失误的风险。

此外,嵌入式系统的优化设计使得它们更加稳定,减少软硬件崩溃的几率,从而使运维成本更低。

3. 优质的性能表现嵌入式系统通常调整为某种特定任务,因此它们可以对制造商的性能要求进行完全的优化。

这些系统可以使用定制化的软件和驱动程序,以最大限度地利用硬件的性能潜力。

由于简单的软件设计和紧凑的硬件设计,嵌入式系统通常比PC和服务器等大型计算机系统具有更高的性能和能源效率。

嵌入式系统的缺点1. 不可扩展性由于嵌入式系统采用了专用的硬件和软件设计,因此它们通常不能容易地进行扩展或升级。

这意味着一旦设计和生产完成,就很难更改和升级系统中的组件和软件。

这可以导致短期内甚至长期内的问题。

2. 硬件配置限制在最初的硬件和软件设计中,嵌入式系统就被配置为执行特定的任务。

如果生产商需要更改系统的目的或加入新的功能,就会面临硬件配置限制的问题,因为嵌入式系统可能无法处理新的需求。

这意味着系统必须重新设计,并重新实施和生产,这将增加成本。

嵌入式系统的优点和缺点

嵌入式系统的优点和缺点

嵌入式操作系统的优点一
1)可裁剪性。

支持开放性和可伸缩性的体系结构。

2)强实时性。

EOS实时性一般较强,可用于各种设备控制中
3)统一的接口。

提供设备统一的驱动接口。

4)操作方便、简单、提供友好的图形GUI和图形界面,追求易学易用。

提供强大的网络功能,支持TCP/IP协议及其他协议,提供TCP/UDP/IP/PPP 协议支持及统一的MAC访问层接口,为各种移动计算设备预留接口。

5)强稳定性,弱交互性。

嵌入式系统一旦开始运行就不需要用户过多的干预、这就要负责系统管理的EOS具有较强的稳定性。

嵌入式操作系统的用户接口一般不提供操作命令,它通过系统的调用命令向用户程序提供服务。

6)固化代码。

在嵌入式系统中,嵌入式操作系统和应用软件被固化在嵌入式系统计算机的ROM中。

7)更好的硬件适应性,也就是良好的移植性。

嵌入式操作系统的优点二
嵌入式微处理器和嵌入式操作系统为特征的嵌入式计算平台使计算进入了后PC时代。

嵌入式系统的小体积、高可靠能够满足实现野战和恶劣环境下的便携虚拟仪器的需要。

基于嵌入式计算平台,设计虚拟仪器系统成为构建测试系统的新思路。

嵌入式操作系统的优点三
与通用型计算机系统相比,嵌入式系统功耗低、可靠性高;功能强大、性能价格比高;实时性强,支持多任务;占用空间小,效率高;面向特定应用,可根据需要灵活定制。

嵌入式系统的缺点一系统资源有限
二内核小,处理能力有限,实现的功能有限
三软件对硬件的依赖性高,软件的可移植性差
四对操作系统的可靠性要求较高。

几种嵌入式实时操作系统的分析与比较

几种嵌入式实时操作系统的分析与比较

⼏种嵌⼊式实时操作系统的分析与⽐较VxWorks、µClinux、µC/OS-II和eCos是4种性能优良并被⼴泛应⽤的实时操作系统。

本⽂通过对这4种操作系统的主要性能进⾏分析与⽐较,归纳出它们的选型依据和适⽤领域。

1 4种操作系统的介绍(1)VxWorksVxWorks是美国WindRiver公司的产品,是⽬前嵌⼊式系统领域中应⽤很⼴泛,市场占有率⽐较⾼的嵌⼊式操作系统。

VxWorks实时操作系统由400多个相对独⽴、短⼩精悍的⽬标模块组成,⽤户可根据需要选择适当的模块来裁剪和配置系统;提供基于优先级的任务调度、任务间同步与通信、中断处理、定时器和内存管理等功能,内建符合POSIX(可移植操作系统接⼝)规范的内存管理,以及多处理器控制程序;并且具有简明易懂的⽤户接⼝,在核⼼⽅⾯甚⾄町以微缩到8 KB。

(2) µC/OS-IIµC/OS-II是在µC-OS的基础上发展起来的,是美国嵌⼊式系统专家Jean J.Labrosse⽤C语⾔编写的⼀个结构⼩巧、抢占式的多任务实时内核。

µC/OS-II 能管理64个任务,并提供任务调度与管理、内存管理、任务间同步与通信、时间管理和中断服务等功能,具有执⾏效率⾼、占⽤空间⼩、实时性能优良和可扩展性强等特点。

(3)µClinuxµClinux是⼀种优秀的嵌⼊式Linux版本,其全称为micro-control Linux,从字⾯意思看是指微控制Linux。

同标准的Linux相⽐,µClinux的内核⾮常⼩,但是它仍然继承了Linux操作系统的主要特性,包括良好的稳定性和移植性、强⼤的⽹络功能、出⾊的⽂件系统⽀持、标准丰富的API,以及TCP/IP⽹络协议等。

因为没有MMU内存管理单元,所以其多任务的实现需要⼀定技巧。

(4)eCoseCos(embedded Configurable operating system),即嵌⼊式可配置操作系统。

操作系统的实时系统与嵌入式系统

操作系统的实时系统与嵌入式系统

操作系统的实时系统与嵌入式系统操作系统(Operating System)是计算机系统中的一个重要组成部分,它负责管理和控制计算机硬件和软件资源,为应用程序提供良好的运行环境。

在众多的操作系统类型中,实时系统和嵌入式系统是两个特殊的领域,它们具有独特的特点和应用场景。

本文将详细介绍操作系统中的实时系统和嵌入式系统,并探讨它们的区别以及各自的特点。

一、实时系统实时系统是一种对时间要求非常严格的系统。

它需要在规定的时间内完成某种任务,并能够保证任务的响应时间不超过预定的时间限制。

实时系统广泛应用于航空航天、交通控制、医疗设备、工业自动化等领域,其中最典型的实时系统是飞行控制系统。

实时系统分为硬实时系统和软实时系统。

硬实时系统要求任务必须在严格的时间限制内完成,一旦超过了规定的时间限制,系统将会出现严重的后果。

例如飞行控制系统,如果任务在规定的时间内无法完成,可能会导致飞机失控或者发生事故。

相比之下,软实时系统对时间限制要求相对较宽松,可以适当地容忍一些时间延迟,但仍需保证任务能在约定的时间范围内完成。

实时系统的核心问题是任务调度。

为了保证任务的及时响应和完成,实时系统采用了各种任务调度算法,例如周期性调度算法、优先级调度算法等。

这些调度算法能够根据任务的重要性和时间限制,合理地安排任务的执行次序,从而提高了实时系统的可靠性和效率。

二、嵌入式系统嵌入式系统是一种特殊的计算机系统,它被嵌入到其他设备或系统内部,与之密切结合。

嵌入式系统广泛应用于智能手机、家电、汽车电子、工业控制等领域。

与通用计算机系统相比,嵌入式系统通常具有体积小、功耗低、实时性强等特点。

嵌入式系统的特点决定了它需要特定的操作系统来管理和控制。

嵌入式操作系统通常具有快速启动、高效运行、低功耗等特性。

同时,嵌入式操作系统通常会针对特定设备和需求进行定制化开发,以适应不同嵌入式系统的要求。

常见的嵌入式操作系统包括嵌入式Linux、嵌入式Windows、FreeRTOS等。

μCOS-Ⅱ的主要特点_μCOS-II实时操作系统概述

μCOS-Ⅱ的主要特点_μCOS-II实时操作系统概述

μCOS-Ⅱ的主要特点_μCOS-II实时操作系统概述1.源代码开放嵌入式实时操作系统μC/OS-II公开全部的程序清单。

绝大部分μC/OS-II的源代码是用移植性很强的ANSI C编写的,和微处理器硬件相关的那部分是用汇编语言编写的。

汇编语言编写的部分已经压缩到最低限度,使得μC/OS-II便于移植到其他微处理器上。

由于代码的开放性,使用者可以清楚地了解该操作系统各个方面的设计细节,通过自己修改源代码,来构造符合应用需求的操作系统环境。

2.可移植性μC/OS-II可以移植到许多微处理器上,条件是只要该微处理器有堆栈指针,有CPU内部寄存器入栈、出栈指令。

另外,使用C编译器必须支持内嵌汇编(inline assembly)或者该C语言可扩展、连接模块,使得关中断、开中断能在C语言程序中实现。

μC/OS可以在绝大多数8位、16位、32位以至64位微处理器、微控制器、数字信号处理器(DSP)上运行。

3. 可固化性μC/OS-Ⅱ是为嵌入式应用而设计的,这就意味着,只要有固化手段(C编译、连接、下载和固化),μC/OS-II就可以嵌入到产品中成为当中的一部分。

4.可裁剪性在实际应用中,可以只使用μC/OS-II应用程序需要的那些系统服务。

也就是说某产品可以只使用几个μC/OS-II功能调用,而另一个产品则使用了几乎所有μC/OS-II的功能。

这样可以减少产品中的μC/OS-II所需的存储空间(RAM和 ROM)。

这种可裁剪性是靠条件编译实现的。

只要在用户的应用程序中(用#def ine constants语句)定义那些μC/OS-II中的功能是应用程序需要的就可以了。

5.抢先式μC/OS-II是抢先式的实时内核。

这就意味着μC/OS-II总是运行就绪条件下优先级最高的任务。

大多数商业内核都是抢先式的,μC/OS-II在性能上和它们类似。

6.多任务μC/OS-Ⅱ可以管理64个任务,然而,目前这一版本保留8个给系统,应用程序最多可以有56个任务。

嵌入式操作系统ucos与linux比较

嵌入式操作系统ucos与linux比较

ucos2与linux的比较随着嵌入式计算机技术的迅猛发展,嵌入式操作系统的应用领域逐步扩大,嵌入式计算机已经深入到人类日常生活和生产的各个角落。

这次通过阅读相关资料,进一步加深了对嵌入式操作系统的了解,以下着重对ucos2和linux进行比较,谈谈对嵌入式操作系统的理解。

首先linux和ucos都是免费使用,源代码公开的操作系统,可供用户自由进行裁剪,添加,移植。

Linux是分时多任务多用户操作系统,ucos是实时多任务操作系统。

两者都可运行于多种平台,适应性好,linux不仅可以运行于32位机,也可运行于64位机,单核,多核也同样适用。

uCOS 2已经移植到近40多种处理器体系上,涵盖了从8位到64位各种CPU(包括DSP)。

内核Ucos内核包括操作系统初始化、操作系统运行、中断进出的前导、时钟节拍、任务调度、事件处理等多部分,能够维持系统基本工作的部分都在这里。

而linux内核包括进程管理,内存管理,设备管理,网络管理四部分。

Ucos没有提供输入输出管理,文件系统,网络等服务。

这些功能可由用户自行添加实现。

Ucos内核支持抢占,即在进行内核服务函数时,允许被中断服务中断,并且中断结束后可以重新进行任务调度。

Linux是非抢占式内核,实时性差。

当进程运行在用户态时,可以被优先级更高的进程抢占,但当他进入核心态时,优先级再高也不能抢占它。

实时性实时任务分为软实时和硬实时,硬实时对响应时间要求较高,且时间不被满足时会导致致命的错误,软实时随对响应时间有要求,但不是强制,不会给系统造成致命错误。

Ucos是一个基于优先级调度的抢占式的实时内核,不仅内核支持抢占,同时支持任务的抢占式调度,优先级低的任务可以被高优先级任务抢占,也可被中断服务抢占。

这就保证了系统可以尽可能快的对外部事件做出响应。

通用Linux主要考虑调度的公平性和吞吐量等指标,尽管系统可以通过把实时事件赋予高优先级的方法来实时响应实时事件,但效果有限,对于响应时间要求比较高的硬实时任务,无法满足要求。

嵌入式操作系统与实时系统的区别与应用

嵌入式操作系统与实时系统的区别与应用

嵌入式操作系统与实时系统的区别与应用嵌入式操作系统和实时系统是嵌入式系统开发中经常使用的两种技术。

它们具有不同的特点和适用范围,下面将分别介绍它们的区别以及应用。

一、嵌入式操作系统1.定义:嵌入式操作系统是专门为嵌入式系统开发的一种操作系统,它可以通过固化到ROM或Flash中的嵌入式芯片实现对系统资源的有效管理和利用。

2.特点:a. 灵活性高:嵌入式操作系统具有可裁剪性,用户可以根据应用需求选择需要的功能模块。

b. 易维护性好:嵌入式操作系统可以通过模块化的方式进行开发和维护,方便软件开发团队进行合作。

c. 存储资源占用小:嵌入式操作系统通常占用的存储资源相对较少,运行效率较高。

3.应用领域:a. 智能家居:如智能门锁、智能温控等设备中常使用嵌入式操作系统进行资源管理。

b. 工业控制:在工业自动化领域,嵌入式操作系统常被用于控制器和监控设备中,实现对工艺过程的管理和控制。

c. 汽车电子:嵌入式操作系统广泛应用于汽车电子系统,如车载娱乐系统、车载导航系统等。

二、实时系统1.定义:实时系统是指按照一定规定时间要求处理任务,并能够满足任务处理的时间要求的计算机系统。

2.特点:a. 时间性要求高:实时系统对任务的响应时间和处理时间有严格要求。

b. 可靠性要求高:实时系统要求系统能够保证任务按照规定的时间要求完成。

c. 可预测性要求高:实时系统需要提前预测任务的处理时间和资源占用,以便能够满足任务的实时性要求。

3.应用领域:a. 军事系统:实时系统在军事装备、指挥控制系统等领域中得到广泛应用,以满足任务的实时性要求。

b. 医疗设备:如心脏起搏器、呼吸机等医疗设备对实时性要求非常高,需要实时系统来保证任务的及时处理。

c. 航空航天:在飞行控制系统、导航系统等领域,实时系统用于保证任务的及时响应,确保飞行安全。

综上所述,嵌入式操作系统和实时系统在嵌入式系统开发中有着不同的应用场景和特点。

嵌入式操作系统通常用于对资源进行管理和利用,其灵活性高、易维护性好和存储资源占用小的特点使其在智能家居、工业控制和汽车电子等领域得到广泛应用。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

嵌入式实时操作系统ucos ii的优劣势分析
引言
早在20世纪60年代,就已经有人开始研究和开发嵌入式操作系统。

但直到最近,它才在国内被越来越多的提及,在通信、电子、自动化等需要实时处理的领域所曰益显现的重要性吸引了人们越来越多的注意力。

但是,人们所谈论的往往是一些著名的商业内核,诸如VxWorks、PSOS等。

这些商业内核性能优越,但价格昂贵,主要用于16位和32位处理器中,针对国内大部分用户使用的51系列8位单片机,可以选择免费的ucos ii。

ucos ii的特点
1.ucos ii是由Labrosse先生编写的一个开放式内核,最主要的特点就是源码公开。

这一点对于用户来说可谓利弊各半,好处在于,一方面它是免费的,另一方面用户可以根据自己的需要对它进行修改。

缺点在于它缺乏必要的支持,没有功能强大的软件包,用户通常需要自己编写驱动程序,特别是如果用户使用的是不太常用的单片机,还必须自己编写移植程序。

2.ucos ii是一个占先式的内核,即已经准备就绪的高优先级任务可以剥夺正在运行的低优先级任务的CPU使用权。

这个特点使得它的实时性比非占先式的内核要好。

通常我们都是在中断服务程序中使高优先级任务进入就绪态(例如发信号),这样退出中断服务程序后,将进行任务切换,高优先级任务将被执行。

拿51单片机为例,比较一下就可以发现这样做的好处。

假如需要用中断方式采集一批数据并进行处理,在传统的编程方法中不能在中断服务程序中进行复杂的数据处理,因为这会使得关中断时间过长。

所以经常采用的方法是置一标志位,然后退出中断。

由于主程序是循环执行的,所以它总有机会检测到这一标志并转到数据处理程序中去。

但是因为无法确定发生中断时程序到底执行到了什么地方,也就无法判断要经过多长时间数据处理程序才会执行,中断响应时间无法确定,系统的实时性不强。

如果使用μC/OS-II的话,只要把数据处理程序的优先级设定得高一些,并在中断服务程序中使它进入就绪态,中断结束后数据处理程序就会被立即执行。

这样可以把中断响应时间限制在一定的范围内。

对于一些对中断响应时间有严格要求的系统,这是必不可少的。

但应该指出的是如果数据处理程序简单,这样做就未必合适。

因为ucos ii要求在中断服务程序末尾使用OSINTEXIT函数以判断是否进行任务切换,这需要花费一定的时间。

3.ucos ii和大家所熟知的Linux等分时操作系统不同,它不支持时间片轮转法。

ucos ii是一个基于优先级的实时操作系统,每个任务的优先级必须不同,分析它的源码会发现,ucos ii把任务的优先级当做任务的标识来使用,如果优先级相同,任务将无法区分。

进入就绪态的优先级最高的任务首先得到CPU的使用权,只有等它交出CPU的使用权后,其他任务才可以被执行。

所以它只能说是多任务,不能说是多进程,至少不是我们所熟悉的那种多进程。

显而易见,如果只考虑实时性,它当然比分时系统好,它可以保证重要任务总是优先占有CPU。

但是在系统中,重要任务毕竟是有限的,这就使得划分其他任务的优先权变成了一个让人费神的问题。

另外,有些任务交替执行反而对用户更有利。

例如,用单
片机控制两小块显示屏时,无论是编程者还是使用者肯定希望它们同时工作,而不是显示完一块显示屏的信息以后再显示另一块显示屏的信息。

这时候,要是ucos ii即支持优先级法又支持时间片轮转法就更合适了。

4.ucos ii对共享资源提供了保护机制。

正如上文所提到的,ucos ii是一个支持多任务的操作系统。

一个完整的程序可以划分成几个任务,不同的任务执行不同的功能。

这样,一个任务就相当于模块化设计中的一个子模块。

在任务中添加代码时,只要不是共享资源就不必担心互相之间有影响。

而对于共享资源(比如串口),ucos ii也提供了很好的解决办法。

一般情况下使用的是信号量的方法。

简单地说,先创建一个信号量并对它进行初始化。

当一个任务需要使用一个共享资源时,它必须先申请得到这个信号量,而一旦得到了此信号量,那就只有等使用完了该资源,信号量才会被释放。

在这个过程中即使有优先权更高的任务进入了就绪态,因为无法得到此信号量,也不能使用该资源。

这个特点的好处显而易见,例如当显示屏正在显示信息的时候,外部产生了一个中断,而在中断服务程序中需要显示屏显示其他信息。

这样,退出中断服务程序后,原有的信息就可能被破坏了。

而在μC/OS-II中采用信号量的方法时,只有显示屏把原有信息显示完毕后才可以显示新信息,从而可以避免这个现象。

不过,采用这种方法是以牺牲系统的实时性为代价的。

如果显示原有信息需要耗费大量时间,系统只好等待。

从结果上看,等于延长了中断响应时间,这对于未显示信息是报警信息的情况,无疑是致命的。

发生这种情况,在μC/OS-II中称为优先级反转,就是高优先级任务必须等待低优先级任务的完成。

在上述情况下,在两个任务之间发生优先级反转是无法避免的。

所以在使用ucos ii时,必须对所开发的系统了解清楚,才能决定对于某种共享资源是否使用信号量。

ucos ii在单片机使用中的一些特点
1.在单片机系统中嵌入ucos ii将增强系统的可靠性,并使得调试程序变得简单。

以往传统的单片机开发工作中经常遇到程序跑飞或是陷入死循环。

可以用看门狗解决程序跑飞问题,而对于后一种情况,尤其是其中牵扯到复杂数学计算的话,只有设置断点,耗费大量时间来慢慢分析。

如果在系统中嵌入 ucos ii 的话,事情就简单多了。

可以把整个程序分成许多任务,每个任务相对独立,然后在每个任务中设置超时函数,时间用完以后,任务必须交出 CPU的使用权。

即使一个任务发生问题,也不会影响其他任务的运行。

这样既提高了系统的可靠性,同时也使得调试程序变得容易。

2.在单片机系统中嵌入ucos ii将增加系统的开销。

现在所使用的51单片机,一般是指87C51或者89C51,其片内都带有一定的RAM和 ROM。

对于一些简单的程序,如果采用传统的编程方法,已经不需要外扩存储器了。

如果在其中嵌入ucos ii的话,在只需要使用任务调度、任务切换、信号量处理、延时或超时服务的情况下,也不需要外扩ROM了,但是外扩RAM是必须的。

由于ucos ii是可裁减的操作系统,其所需要的RAM大小就取决于操作系统功能的多少。

举例来说,μC/OS-II允许用户定义最大任务数。

由于每建立一个任务,都要产生一个与之相对应的数据结构TCB,该数据结构要占用很大一部分内存空间。

所以在定义最大任务数时,一定要考虑实际情况的需要。

如果定得过大,势必会造成不必要的
浪费。

嵌入ucos ii以后,总的RAM需求可以由如下表达式得出:
RAM总需求=应用程序的RAM需求+内核数据区的RAM需求+(任务栈需求+最大中断嵌套栈需求)·任务数
所幸的是,μC/OS-II可以对每个任务分别定义堆栈空间的大小,开发人员可根据任务的实际需求来进行栈空间的分配。

但在RAM容量有限的情况下,还是应该注意一下对大型数组、数据结构和函数的使用,别忘了,函数的形参也是要推入堆栈的。

3.ucos ii的移植也是一件需要值得注意的工作。

如果没有现成的移植实例的话,就必须自己来编写移植代码。

虽然只需要改动两个文件,但仍需要对相应的微处理器比较熟悉才行,最好参照已有的移植实例。

另外,即使有移植实例,在编程前最好也要阅读一下,因为里面牵扯到堆栈操作。

在编写中断服务程序时,把寄存器推入堆栈的顺序必须与移植代码中的顺序相对应。

4.和其他一些著名的嵌入式操作系统不同,ucos ii在单片机系统中的启动过程比较简单,不像有些操作系统那样,需要把内核编译成一个映像文件写入ROM中,上电复位后,再从ROM中把文件加载到RAM中去,然后再运行应用程序。

ucos ii的内核是和应用程序放在一起编译成一个文件的,使用者只需要把这个文件转换成HEX格式,写入ROM中就可以了,上电后,会像普通的单片机程序一样运行。

结语
由以上介绍可以看出,ucos ii具有免费、使用简单、可靠性高、实时性好等优点,但也有移植困难、缺乏必要的技术支持等缺点,尤其不像商用嵌入式系统那样得到广泛使用和持续的研究更新。

但开放性又使得开发人员可以自行裁减和添加所需的功能,在许多应用领域发挥着独特的作用。

当然,是否在单片机系统中嵌入ucos ii应视所开发的项目而定,对于一些简单的、低成本的项目来说,就没必要使用嵌入式操作系统了。

相关文档
最新文档