📄 test.c
字号:
/**********************************************************************************************************
* uC/OS-II
* The Real-Time Kernel
*
* (c) Copyright 1992-2002, Jean J. Labrosse, Weston, FL
* All Rights Reserved
*
* EXAMPLE #1
**********************************************************************************************************/
//#include "includes.h" //change by cmj ,includes => config
#include "config.h"
/**********************************************************************************************************
* CONSTANTS
**********************************************************************************************************/
#define TASK_STK_SIZE 128 /* Size of each task's stacks (# of WORDs) */
/********************************************************************************************************
* VARIABLES
*********************************************************************************************************/
OS_STK TaskStk[TASK_STK_SIZE]; /* Tasks stacks */
OS_STK TaskStartStk[TASK_STK_SIZE]; /*这里只有两个任务,每个任务对应一个任务堆栈!*/
/**********************************************************************************************************
* FUNCTION PROTOTYPES(任务函数申明)
**********************************************************************************************************/
void Task(void *data); /* Function prototypes of tasks */
void TaskStart(void *data); /* Function prototypes of Startup task */
/**********************************************************************************************************
* MAIN
**********************************************************************************************************/
//void main (void) //change bu cmj
int main (void)
{
OSInit(); /* Initialize uC/OS-II */
OSTaskCreate(TaskStart, (void *)0, &TaskStartStk[TASK_STK_SIZE - 1], 0);
OSStart(); /* Start multitasking */
}
/**********************************************************************************************************
* STARTUP TASK
**********************************************************************************************************/
void TaskStart (void *pdata)
{
#if OS_CRITICAL_METHOD == 3 /* Allocate storage for CPU status register */
OS_CPU_SR cpu_sr;
#endif
pdata = pdata; /* Prevent compiler warning */
TargetInit(); //add by cmj//目标板初始化代码,在需要的地方调用 //????为什么这里需要??????
OSTaskCreate(Task, (void *)0, &TaskStk[TASK_STK_SIZE - 1], 1);
OSTaskDel(0); //任务执行完后,可以用OSTaskDel(优先级);来挂起相应的任务!
}
void Task (void *pdata)
{
uint32 LEDCON=0x00002000;
pdata = pdata;
IODIR = LEDCON;
for (;;) {
IOSET =LEDCON;
OSTimeDlyHMSM(0, 0, 0, 100); /* Wait one second */
IOCLR = LEDCON;
OSTimeDlyHMSM(0, 0, 0, 100);
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -