?? ex1l.c
字號(hào):
/*
*********************************************************************************************************
* uC/OS-II
* The Real-Time Kernel
*
* (c) Copyright 1992-1998, Jean J. Labrosse, Plantation, FL
* All Rights Reserved
*
* V2.00
*
* EXAMPLE #1
*********************************************************************************************************
*/
#include "includes.h"
/*
*********************************************************************************************************
* CONSTANTS
*********************************************************************************************************
*/
#define TASK_STK_SIZE 512 /* Size of each task's stacks (# of WORDs) */
#define N_TASKS 2 /* Number of identical tasks */
/*
*********************************************************************************************************
* VARIABLES
*********************************************************************************************************
*/
OS_STK TaskStk[N_TASKS][TASK_STK_SIZE]; /* Tasks stacks */
OS_STK TaskStartStk[TASK_STK_SIZE];
/*
*********************************************************************************************************
* FUNCTION PROTOTYPES
*********************************************************************************************************
*/
void Task1(void *data); /* Function prototypes of tasks */
void Task2(void *data); /* Function prototypes of tasks */
void TaskStart(void *data); /* Function prototypes of Startup task */
/*$PAGE*/
/*
*********************************************************************************************************
* MAIN
*********************************************************************************************************
*/
extern OS_STK OSTaskIdleStk[OS_TASK_IDLE_STK_SIZE]; /* Idle task stack */
void C_Entry(void)
{
SendStr("C_Entry...\n");
OSInit(); /* Initialize uC/OS-II */
OSTaskCreate(TaskStart, (void *)0, (void *)&TaskStartStk[TASK_STK_SIZE - 1], 0);
OSStart(); /* Start multitasking */
}
/*$PAGE*/
/*
*********************************************************************************************************
* STARTUP TASK
*********************************************************************************************************
*/
void TaskStart (void *data)
{
char s[100];
SendStr("TaskStart!!\n");
OS_EXIT_CRITICAL(); /* Timer Enable */
OSStatInit(); /* Initialize uC/OS-II's statistics */
OSTaskCreate(Task1,"Task1",(void *)&TaskStk[0][TASK_STK_SIZE - 1],1);
OSTaskCreate(Task2,"Task2",(void *)&TaskStk[1][TASK_STK_SIZE - 1],2);
for (;;) {
sprintf(s, "Running Task : %5d\n", OSTaskCtr); /* Display #tasks running */
SendStr(s);
sprintf(s, "Cpu Usage : %3d\n", OSCPUUsage); /* Display CPU usage in % */
SendStr(s);
/* Display #context switches per second */
sprintf(s, "Context Switches per Sec : %5d\n", OSCtxSwCtr);
SendStr(s);
OSCtxSwCtr = 0;
OSTimeDlyHMSM(0, 0, 1, 0); /* Wait one second */
}
}
/*$PAGE*/
/*
*********************************************************************************************************
* TASKS
*********************************************************************************************************
*/
void Task1(void *data)
{
for (;;) {
SendStr((char *)data);
OSTimeDly(160);
}
}
void Task2(void *data)
{
for (;;) {
SendStr((char *)data);
OSTimeDly(150);
}
}
?? 快捷鍵說明
復(fù)制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號(hào)
Ctrl + =
減小字號(hào)
Ctrl + -