UCOSIII移植笔记(三)

这篇博客详细介绍了UCOSIII操作系统在任务管理方面的内容,包括任务的创建、挂起、删除和调度。文章从UCOSIII的启动和初始化开始,阐述了任务状态、任务控制块、任务堆栈以及任务就绪表的概念和操作。通过实例解析了如何创建任务堆栈和初始化任务,同时提到了优先级位映射表在任务调度中的作用。
摘要由CSDN通过智能技术生成

此篇博文主要讲述UCOSIII的任务管理功能。
多任务操作系统最主要的就是对任务的管理,包括任务的创建、挂起、删除和调度等。关于UCOSIII任务的创建、挂起、删除和调度可以查看本人另一篇博文。

一、UCOSIII的启动和初始化

将UCOSIII移植到工程之后,就可以启动UCOSIII了,在使用UCOSIII的时候我们需要按照一定的顺序初始化并打开UCOSIII,顺序如下:

  • 第一步,是调用CPU_Init()初始化UCOSIII
  • 第二步,创建任务
    一般情况下,我们在main函数里只创建一个start_task()任务,其它的任务都在start_task()中创建,创建任务的函数是OSTaskCreate()函数。
    注意在调用OSTaskCreate()函数创建任务的时候,一定要调用OS_CRITICAL_ENTER()函数进入临界区,任务创建以后,要调用OS_CRITICAL_EXIT()函数退出临界区。
  • 第三步,调用OSStart()函数来开启UCOSIII

    下面是一个例子:

    OSInit(&err);       //初始化UCOSIII
    OS_CRITICAL_ENTER();//进入临界区
    //创建开始任务
    OSTaskCreate((OS_TCB    * )&StartTaskTCB,       //任务控制块
                 (CPU_CHAR  * )"start task",        //任务名字
                 (OS_TASK_PTR )start_task,          //任务函数
                 (void      * )0,                   //传递给任务函数的参数
                 (OS_PRIO     )START_TASK_PRIO,     //任务优先级
                 (CPU_STK   * )&START_TASK_STK[0],  
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值