📄 main.c
字号:
/*
* File: main.c
*
* uC/OS Real-time multitasking kernel for the ARM processor.
*
*
* Created by XuWei
*
*/
#include "ucos_ii.h" /* uC/OS interface */
#include "../inc/44blib.h"
#include "../inc/44b.h"
#include "../inc/option.h"
#include "../inc/target.h"
#include "string.h"
#define STACKSIZE_H 2048
#define STACKSIZE_L 512
OS_STK Task_0[STACKSIZE_L] = {0, };
OS_STK Task_1[STACKSIZE_L] = {0, };
OS_STK Task_2[STACKSIZE_L] = {0, };
OS_STK Task_3[STACKSIZE_L] = {0, };
void Task1(void *id)
{
while(1)
{
OS_ENTER_CRITICAL();
Uart_Printf("task 1 is working.\n\n");
OS_EXIT_CRITICAL();
OSTimeDly(200);
}
}
void Task2(void *id)
{
while(1)
{
OS_ENTER_CRITICAL();
Uart_Printf("task 2 is working.\n\n");
OS_EXIT_CRITICAL();
OSTimeDly(300);
}
}
void Task3(void *id)
{
while(1)
{
OS_ENTER_CRITICAL();
Uart_Printf("task 3 is working.\n\n");
OS_EXIT_CRITICAL();
OSTimeDly(400);
}
}
void Task_start(void *id)
{ //OSStatInit();
OSTaskCreate(Task1, (void *)0, (OS_STK *)&Task_1[STACKSIZE_L - 1], 2);
OSTaskCreate(Task2, (void *)0, (OS_STK *)&Task_2[STACKSIZE_L - 1], 3);
OSTaskCreate(Task3, (void *)0, (OS_STK *)&Task_3[STACKSIZE_L - 1], 4);
ARMStartTimer();
for(;;)
{
OSTaskDel(OS_PRIO_SELF); //删除自己
}
}
void Main(void)
{
ARMTargetInit();
OSInit();
ARMTargetStart(); //Start the system running
OSTaskCreate(Task_start,(void *)0, (OS_STK *)&Task_0[STACKSIZE_L - 1], 1);
OSStart(); //start the system
/* never reached */
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -