uC/OS-II学习笔记(1)

                                                                               by WC 7.9.2015

本文假设读者对uC/OS-II和多任务知之甚少,但有一定的C语言和单片机基础。为的是为了从0开始学习uC/OS-II。流程图如下图示:
这里写图片描述

1## 范例1 ##
范例1程序结果
范例一演示uC/OC-II的多任务处理能力。共有10个任务在屏幕上面随机的位置显示一个0~9的数字。每个任务只显示同一个数字。其包含了13个任务,在运行窗口的左下角增加了两个内部任务。注意:context switch指CPU寄存器内容的切换,其实就是任务切换。

LI.1 TEXT.C

#include "includes.h"                                                                        【1】                 
#define  TASK_STK_SIZE           512       /* Size of each task's stacks (# of WORDs)  */    【2】    
#define  N_TASKS                 10       /* Number of identical tasks                 */    【3】                  
OS_STK        TaskStk[N_TASKS][TASK_STK_SIZE];        /* Tasks stacks                  */    【4】 
OS_STK        TaskStartStk[TASK_STK_SIZE];                                                   【5】
char          TaskData[N_TASKS];                  /* Parameters to pass to each task   */    【6】     
OS_EVENT     *RandomSem;
说明:在程序的最后加了索引【?】,L1.1【1】表示程序L.1.1标号1地方的代码.

L1.1【1】:所有的头文件都放在了主控头文件includes.h中,这样写结构简单。后面需要时会继续讲解LI.1中的内容,先看main函数。
L1.1【2】:任务堆栈长度。
L1.1【3】:该程序任务的个数。
L1.1【4】:堆栈空间。
L1.1【5】:栈顶。
L1.1【6】:定义一个数组,存放0~9的ASCII字符。

LI.2 TEXT.C,main()

void  main (void)
{PC_DispClrScr(DISP_FGND_WHITE + DISP_BGND_BLACK);    /* Clear the screen         */1】             OSInit();                                            /* Initialize uC/OS-II      */2】            PC_DOSSaveReturn();  


本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!

相关文章

立即
投稿

微信公众账号

微信扫一扫加关注

返回
顶部