main.c

来自「uCOS-II 在ARM7上的移植源代码,我在up-netarm3000已经测试」· C语言 代码 · 共 59 行

C
59
字号
#include"..\ucos-ii\includes.h"               /* uC/OS interface */
#include <string.h>
#include"uhal.h"

#pragma import(__use_no_semihosting_swi)  // ensure no functions that use semihosting 

///******************任务定义***************///
OS_STK SYS_Task_Stack[STACKSIZE]= {0, }; //system task刷新任务堆栈
#define SYS_Task_Prio				1
void SYS_Task(void *Id);

OS_STK Task1_Stack[STACKSIZE]={0, }; 
void Task1(void *Id);
#define Task1_Prio     12

OS_STK Task2_Stack[STACKSIZE]= {0, }; 
void Task2(void *Id); 
#define  Task2_Prio       13

int main(void)
{

	ARMTargetInit();        // do target (uHAL based ARM system) initialisation //
	OSInit();  
	OSTaskCreate(SYS_Task,  (void *)0,  (OS_STK *)&SYS_Task_Stack[STACKSIZE-1],  SYS_Task_Prio);
	OSTaskCreate(Task2,  (void *)0,  (OS_STK *)&Task2_Stack[STACKSIZE-1],  Task2_Prio);
	OSTaskCreate(Task1,  (void *)0,  (OS_STK *)&Task1_Stack[STACKSIZE-1],  Task1_Prio  );
	OSStart();              // start the game //
	// never reached //
	return 0;
}//main

void Task1(void *Id)     
{
	for(;;){
		Uart_Printf("run task1\n");
		OSTimeDly(1000);
	}
}

void Task2(void *Id)
{
	for (;;)
	{
		Uart_Printf("run task2\n");
		OSTimeDly(2000);
	}
}

void SYS_Task(void *Id)
{   OSRunning=TRUE;          //使能多任务切换
	uHALr_InstallSystemTimer();
	Uart_Printf("start system task.\n");
	for (;;)
	{
		OSTimeDly(10000);
	}
}

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?