uCOS-II系统概述

一、概述

1. 关于RTOS系统

    UCOS系统属于RTOS操作系统,FreeRTOS也属于RTOS操作系统。

2. 前后台系统

    以前编写裸跑程序时,main里面一个循环和ISR构成一套程序,也统称为前后台系统,前台程序就是ISR中断服务程序,后台程序就是main函数里面的程序,后台程序可以被前台程序打断。

3. 实时性

    UCOS系统属于实时操作系统,实时分为硬实时和软实时,硬实时是绝对的实时,不允许超时,而软实时没有像硬实时那么严格。RTOS最大的特性应该就是实时性了。

4. 多任务管理能力

    RTOS的内核具备多任务管理能力,个任务调度、优先级管理。UCOS属于一种经典的RTOS,它的内核属于可剥夺型内核,即一个任务可以剥夺其他任务的CPU使用权,运行就绪任务中优先级最高的任务。

5. ucos可裁剪

    这样可以根据不同硬件平台定制ucos。

二、uCOS-II系统移植

   1. 源码结构

     把uCOS-II源码大致分为三个部分,与处理器无关的代码,与处理相关的代码 ,与应用程序相关的代码:

    上图中与处理器无关的代码,就是系统核心代码,移植时不需要做任何改动;

    与处理器相关的代码,在移植时需要根据不同型号的处理器做修改;

    与应用程序相关的代码主要用于用户根据自己需要对UCOSII进行裁剪或其他设置,比如os_cfg.h里面定义的OS_TICKS_PER_SEC就会根据不同的处理器更改,这样就能设置UCOSII的时钟节拍为多少ms。同时还可以设置OS_MAX_TASKS的值,设置包括空闲任务和统计任务在内的最大支持任务数,空闲任务和统计任务是优先级最低的两个任务。

2. 创建任务

    (1)创建任务时,需要传入任务优先级、任务堆栈大小等参数。任务堆栈,就是存储器中的连续存储空间。为了满足任务切换和响应中断时保存CPU 寄存器中的内容以及任务调用其他函数时的需要,每个任务都有自己的堆栈。在创建任务的时候,
任务堆栈是任务创建的一个重要入口参数。

    (2)创建任务的两个函数为OSTaskCreat 和OSTaskCreateExt

      UCOSII还有很多关于任务的函数,比如任务挂起或删除或改优先级等。

    (3)任务创建后,只有调用了OSStart函数,系统和所有的任务才开始运行。

3. 临界区

    在应用程序中经常有一些代码段必须不受任何干扰地连续运行,这样的代码段叫做临界段(或临界区)。因此,为了使临界段在运行时不受中断所打断,在临界段代码前必须用关中断指令使CPU 屏蔽中断请求,而在临界段代码后必须用开中断指令解除屏蔽使得CPU 可以响应中断请求。UCOSII 提供OS_ENTER_CRITICAL 和OS_EXIT_CRITICAL 两个宏来实现,这两个宏需要我们在移植UCOSII 的时候实现。因为临界段代码不能被中断打断,将严重影响系统的实时性,所以临界段代码越短越好。

猜你喜欢

转载自blog.csdn.net/fengel_cs/article/details/104299629