μC/OS-II 创建一个任务的流程

Posted Zackary.Liu

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了μC/OS-II 创建一个任务的流程相关的知识,希望对你有一定的参考价值。

1. 声明任务的优先级、任务堆栈的大小及任务函数

#define LED_TASK_PRIO                   6
#define LED_STK_SIZE                    64

void led_task(void *pdata);

2. 分配任务堆栈缓冲区

OS_STK LED_TASK_STK[LED_STK_SIZE];

3. 初始化 OS

OSInit();   
    -->
    OS_InitRdyList();                            
    OS_InitTCBList();                       
    OS_InitEventList();  
    OS_InitTaskIdle(); 
    OS_InitTaskStat();
    ......

初始化系统中重要的链表及两个系统任务(空闲和统计任务)等操作

4. 任务的创建

OSTaskCreate(led_task,(void *)0,(OS_STK*)&LED_TASK_STK[LED_STK_SIZE-1],LED_TASK_PRIO);  
    -->
    配置任务链表及初始化任务堆栈等操作

5. 启动 OS

OSStart();
    -->
    系统启动,开始实现各任务的调度工作

到此,μCOS-II 系统的初始化及启动工作已经完成,系统会进入运行状态。

以上是关于μC/OS-II 创建一个任务的流程的主要内容,如果未能解决你的问题,请参考以下文章

μC/OS-II 任务的同步与通信 --- 消息队列

μC/OS-II的实验内容简介

μC/OS-II 信号量集

μC/OS-II中使用软件定时器

嵌入式实时操作系统μC/OS II

μC/OS-II在Microblaze上的移植与使用专题--“安富利杯”赛灵思FPGA设计技巧与应用创新博文大赛参赛作品