一起学UCOS(一)、UcosII简介

一起学UCOS(一)、UcosII简介

标签(空格分隔):一起学UCOS

一、UCOSII简介

    uC/OS II(Micro Control Operation System Two)是一个可以基于ROM运行的、可裁减的、抢占式、实时多任务内核,具有高度可移植性,特别适合于微处理器和控制器,是和很多商业操作系统性能相当的实时操作系统(RTOS)。为了提供最好的移植性能,uC/OS II最大程度上使用ANSI C语言进行开发,并且已经移植到近40多种处理器体系上,涵盖了从8位到64位各种CPU(包括DSP)。 uC/OS II可以简单的视为一个多任务调度器,在这个任务调度器之上完善并添加了和多任务操作系统相关的系统服务,如信号量、邮箱等。其主要特点有公开源代码,代码结构清晰、明了,注释详尽,组织有条理,可移植性好,可裁剪,可固化。内核属于抢占式,最多可以管理60个任务。从1992年开始,由于高度可靠性、移植性和安全性,uC/OS II已经广泛使用在从照相机到航空电子产品的各种应用中。
    μC/OS-II实时多任务操作系统内核。它被广泛应用于微处理器、微控制器和数字信号处理器。 μC/OS-II 的前身是μC/OS,最早出自于1992 年美国嵌入式系统专家Jean J.Labrosse 在《嵌入式系统编程》杂志的5 月和6 月刊上刊登的文章连载,并把μC/OS 的源码发布在该杂志的B B S 上。
    详细介绍可以查看百度百科[UCOS][1]

二、UCOSII V2.91的改变

1.最大任务数的改变

    Ucosii在V2.80之前最大支持63个任务,从V2.80开始任务数最大可达到255个。也就是说OSRdyTbl[]变为16*16的矩阵了。
    为了兼容之前的版本,当OS_CFG.H中的OS_LOWEST_PRIO小于等于63时,UCOSII使用8*8的OSRdyTbl[],这时候与之前版本一致;当OS_LOWEST_PRIO大于63时,UCOSII使用16*16的矩阵。

2.支持软定时器

    从V2.81开始支持软定时器功能,新增加文件os_tmr.c.

3.增加OSEventPendMulti()函数

    从V2.86开始增加OSEventPendMulti()函数,该函数作用是当有事件组里的时间发生或者时间到了,那么执行任务;否则,挂起任务。该函数在os_core.c中。
    函数原型为:
    INT16U OSEventPendMulti( OS_EVENT **pevents_pend,
                             OS_EVENT **pevents_rdy,
                             void **pmsgs_rdy,
                             INT16U timeout,
                             INT8U *perr); 
     timeout:为0,代表没有永不超时

4.增加OS_TaskReturn()函数

    V2.89中增加OS_TaskReturn()函数。
    ucosii中是不允许任务返回的。如果任务错误的返回了,OS_TaskReturn()函数catch错误并删除出错的任务。
    OS_TaskReturn()通过调用OSTaskReturnHook()进而调用App_TaskreturnHook()来实现具体功能。

     本文同步更新与本人自搭博客[点我点我][2]http://linuxue.com/196.html

你可能感兴趣的:(ucosii,一起学ucos)