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

📄 main.c

📁 一个uC/OS-II的simplest edition
💻 C
字号:

#include <stdio.h>
#include "includes.h"


#define STACK_SIZE		512
#define N_TASKS			3				


OS_STK	TaskStk[N_TASKS][STACK_SIZE];


void TestA( void* pdata );
void TestB( void* pdata );
void TestC( void* pdata );

void	OSTickISR();

int main()
{
	/*
	OSCpuInit();
	fprintf( stderr, "OSCpuInit OK ...\n" );
	*/
	
	OSInit();
	fprintf( stderr, "OSInit OK ...\n" );
	puts( "wooo!" );


	fprintf( stderr, "Test Ptr: 0x%08x\n", TestA );
	fprintf( stderr, "main Ptr: 0x%08x\n", main );
	fprintf( stderr, "OSTaskCreate Ptr: 0x%08x\n",  OSTaskCreate  );
	fprintf( stderr, "OSTaskStkInit Ptr: 0x%08x\n", OSTaskStkInit );
	fprintf( stderr, "OSStart Ptr: 0x%08x\n", OSStart );
	fprintf( stderr, "OSTickISR Ptr: 0x%08x\n", OSTickISR );
	fprintf( stderr, "OSStartHighRdy Ptr: 0x%08x\n", OSStartHighRdy );
	fprintf( stderr, "OS_Sched Ptr: 0x%08x\n", OS_Sched );
	fprintf( stderr, "&TaskStk[0][STACK_SIZE] Ptr: 0x%08x\n", &TaskStk[0][STACK_SIZE] );

	
	
	OSTaskCreate( TestA, (void*)0, &TaskStk[0][STACK_SIZE-1], 2 );		/* prio = 2 */
	OSTaskCreate( TestB, (void*)0, &TaskStk[1][STACK_SIZE-1], 3 );		/* prio = 3 */
	OSTaskCreate( TestC, (void*)0, &TaskStk[2][STACK_SIZE-1], 3 );		/* prio = 3 */
	
	OSStart();
	
	/* NEVER EXECUTED */
}


void delay( int time )
{
	int i, j, k;
	for ( k = 0; k < time; ++k )
		for ( i = 0; i < 10000; ++i )
			for ( j = 0; j < 10000; ++j )
				;
}


int
write(int file, char *ptr, int len);

void TestA( void* pdata )
{
	char str[] = "A0.";
	char *p = &str[1];
	
	for (;;)
	{
		(*p)++;
		if ( *p > '9' )
		{
			OSTaskSuspend( OS_PRIO_SELF );
			*p = '0';
		}
		
		write( 0, str, 3 );
		
		delay(1);
	}
}

void TestB( void* pdata )
{
	char str[] = "B0.";
	char *p = &str[1];
	
	for (;;)
	{
		(*p)++;
		if ( *p > '9' )
		{
			OSTaskResume( 2 );
			*p = '0';
		}
		
		write( 0, str, 3 );
		
		delay(1);
	}
}


void TestC( void* pdata )
{
	char str[] = "C0.";
	char *p = &str[1];
	
	for (;;)
	{
		(*p)++;
		if ( *p > '9' )
		{
			OSTaskResume( 2 );
			*p = '0';
		}
		
		write( 0, str, 3 );
		
		delay(1);
	}
}

⌨️ 快捷键说明

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