⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 main.c

📁 移植ucos-ii到arm7tdmi核
💻 C
字号:
#include	"../CONFIG/includes.h"              

#define TASK_STACK_SIZE 1024

unsigned *swi_vec = (unsigned *)0x08;
unsigned *swi_vec1 = (unsigned *)0x18;
extern void SwiFirstHandler(void);
extern void IsrIRQ(void);

unsigned Install_Handler( unsigned routine, unsigned *vector )
{
    unsigned vec, old_vec;

    vec = (routine - (unsigned)vector - 8) >> 2;
    if (vec & 0xff000000)
    {
        printf("Handler greater than 32MBytes from vector");
    }
    vec = 0xea000000 | vec;     /* OR in 'branch always' code */

    old_vec = *vector;
    *vector = vec;
    return (old_vec);
}



//Task1
OS_STK Task1_Stack[TASK_STACK_SIZE]= {0, };
void Task1_Task(void *Id);
#define Task1_PRIO       12

//Task2
OS_STK Task2_Stack[TASK_STACK_SIZE]= {0, };
void Task2_Task(void *Id);
#define Task2_PRIO       14

//Task3
OS_STK Task3_Stack[TASK_STACK_SIZE]= {0, };
void Task3_Task(void *Id);
#define Task3_PRIO       16

//Task4
OS_STK Task4_Stack[TASK_STACK_SIZE]= {0, };
void Task4_Task(void *Id);
#define Task4_PRIO       18

void Task1_Task(void *Id)
{
	int i;

	while(1)
	{
		i++;
		OS_ENTER_CRITICAL();
	    printf("Task1 is active!\n");
	    OS_EXIT_CRITICAL();
		OSTimeDly(1000);
	}
}
void Task2_Task(void *Id)
{
	int i;

	while(1)
	{
		i++;
		OS_ENTER_CRITICAL();
	    printf("	Task2 is active!\n");
	    OS_EXIT_CRITICAL();
		OSTimeDly(2000);
	}
}
void Task3_Task(void *Id)
{
	int i;

	while(1)
	{
		i++;
		OS_ENTER_CRITICAL();
    	printf("		Task3 is active!\n");
    	OS_EXIT_CRITICAL();
		OSTimeDly(3000);
	}
}


void Task4_Task(void *Id)
{
	int i;

	while(1)
	{
		i++;
		OS_ENTER_CRITICAL();
    	printf("			Task4 is active!\n");
    	OS_EXIT_CRITICAL();
		OSTimeDly(3000);
	}
}



int Main()
{
	Install_Handler( (unsigned) SwiFirstHandler, swi_vec );
	Install_Handler( (unsigned) IsrIRQ, swi_vec1 );	
	OSInit();

	//Create Tasks
	OSTaskCreate(Task1_Task, (void *)0, (OS_STK *)&Task1_Stack[TASK_STACK_SIZE-1],  Task1_PRIO);
  	OSTaskCreate(Task2_Task, (void *)0, (OS_STK *)&Task2_Stack[TASK_STACK_SIZE-1],  Task2_PRIO);
  	OSTaskCreate(Task3_Task, (void *)0, (OS_STK *)&Task3_Stack[TASK_STACK_SIZE-1],  Task3_PRIO);
   	OSTaskCreate(Task4_Task, (void *)0, (OS_STK *)&Task4_Stack[TASK_STACK_SIZE-1],  Task4_PRIO);
  
 
	
	/* Start uCOS-II */
	OSStart();
	return 0;
}                              


⌨️ 快捷键说明

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