www.pudn.com > ShfuCOS.rar > 44btest.c


#include  
#include  
#include	"..\ucos_ii\ucos_ii.h"  /* uC/OS interface */ 
#include "..\inc\option.h" 
#include "..\inc\44b.h" 
#include "..\inc\44blib.h" 
#include "..\inc\def.h" 
#include	"../inc/target.h" 
 
//#include "..\inc\cache.h" 
//#include "..\inc\lcd.h" 
//#include "..\inc\lcdlib.h" 
//#include "..\inc\glib.h" 
//#include "..\inc\clcd.h" 
//#include "..\inc\adc.h" 
//#include "..\inc\uart.h" 
//#include "..\inc\power.h" 
//#include "..\inc\dma.h" 
#include "..\inc\timer.h" 
//#include "..\inc\sio.h" 
//#include "..\inc\rtc.h" 
//#include "..\inc\etc.h" 
//#include "..\inc\iic.h" 
//#include "..\inc\eint.h" 
//#include "..\inc\flash.h" 
//#include "..\inc\iis.h" 
//#include "..\inc\stop.h" 
//#include "..\inc\idle.h" 
//#include "..\inc\extdma.h" 
//#include "..\inc\nwait.h" 
//#include "..\inc\Am29f800.h" 
 
//task stack size 
#ifdef SEMIHOSTED 
	#define	TASK_STACK_SIZE	(SEMIHOSTED_STACK_NEEDS+64) 
#else 
	#define		TASK_STACK_SIZE	10*1024 
#endif 
/* Global Variable */ 
#define STACKSIZE 64 
unsigned int Stack1[STACKSIZE]; 
unsigned int Stack2[STACKSIZE]; 
unsigned int Stack3[STACKSIZE]; 
unsigned int StackMain[STACKSIZE]; 
 
void AutoTest(void); 
void Isr_Init(void); 
void HaltUndef(void); 
void HaltSwi(void); 
void HaltPabort(void); 
void HaltDabort(void); 
 
//*************************************************************************** 
extern char Image$$RO$$Limit[]; 
extern char Image$$RO$$Base[]; 
extern char Image$$RW$$Limit[]; 
extern char Image$$RW$$Base[]; 
extern char Image$$ZI$$Limit[]; 
extern char Image$$ZI$$Base[]; 
//*************************************************************************** 
void Task1(void *Id) 
{ 
	for(;;) 
	{ 
		Uart_SendByte('1'); 
		OSTimeDly(1000); 
	} 
} 
 
void Task2(void *Id) 
{ 
	for(;;) 
	{ 
		Uart_SendByte('2'); 
		OSTimeDly(600); 
	} 
} 
 
void Task3(void *Id) 
{ 
	for(;;) 
	{ 
		Uart_SendByte('3'); 
		OSTimeDly(300); 
	} 
} 
/***************************************************************************/ 
void TaskStart(void *i) 
{ 
	char Id1 = '1'; 
	char Id2 = '2'; 
	char Id3 = '3';	 
	ARMStartTimer(); 
	OSStatInit(); 
	 
	OSTaskCreate(Task1, (void *)&Id1, &Stack1[STACKSIZE - 1], 5); 
	OSTaskCreate(Task2, (void *)&Id2, &Stack2[STACKSIZE - 1], 6); 
	OSTaskCreate(Task3, (void *)&Id3, &Stack3[STACKSIZE - 1], 7); 
   	OSTaskDel(OS_PRIO_SELF); 
} 
/**************************************************************************** 
【功能说明】 
****************************************************************************/ 
void About( void ) 
{ 
    Uart_Printf( "\n" ); 
    Uart_Printf( "**********************************************************************\n" ) ; 
	Uart_Printf( "\tS3C44B0X demo开发板\n" ); 
	Uart_Printf( "\t   NEU-INFO\n\n" ); 
 
    Uart_Printf( "\t Image$$RO$$Base  = %x\n", Image$$RO$$Base ); 
	Uart_Printf( "\t Image$$RO$$Limit = %x\n", Image$$RO$$Limit ); 
	Uart_Printf( "\t Image$$RW$$Base  = %x\n", Image$$RW$$Base ); 
	Uart_Printf( "\t Image$$RW$$Limit = %x\n", Image$$RW$$Limit ); 
    Uart_Printf( "\t Image$$ZI$$Base  = %x\n", Image$$ZI$$Base ); 
    Uart_Printf( "\t Image$$ZI$$Limit = %x\n", Image$$ZI$$Limit ); 
    Uart_Printf( "**********************************************************************\n" ) ; 
    Uart_Printf( "\n" ); 
    Uart_Printf("\t★NEU-INFO S3C44B0X-BootLoader★\n"); 
	Uart_Printf("\t\tBy Sun Hefei  2006.07.28\n"); 
 
} 
//*************************************************************************** 
 
 
void Main(void) 
{ 
	ARMTargetInit(); 
 
    Timer_PWM_Led();		//LED输出PWM信号 
 
    //ChangePllValue( 24, 2, 1 );		//修改系统主频为4倍频 
    //系统晶振为8MHz,4倍频系统运行在32MHz 
	About() ;		//输出测试程序相关信息 
	 
 
	//Uart_Printf("Now uC/OS II is running..................................\n"); 
 
    //Isr_Init(); 
    OSInit(); 
    OSTimeSet(0); 
    Delay(5); 
    //OSTaskCreate(Task1, (void *)0, &Stack1[STACKSIZE - 1], 5); 
	//OSTaskCreate(Task2, (void *)0, &Stack2[STACKSIZE - 1], 6); 
	//OSTaskCreate(Task3, (void *)0, &Stack3[STACKSIZE - 1], 7); 
 
	OSTaskCreate(TaskStart,(void *)0, &StackMain[STACKSIZE - 1], 1); 
    
	/* Start the  system running */ 
	ARMTargetStart(); 
    /* start the system */ 
	OSStart(); 
    /* never reached */ 
} 
 
 
 
void Isr_Init(void) 
{ 
    pISR_UNDEF=(unsigned)HaltUndef; 
    pISR_SWI  =(unsigned)HaltSwi; 
    pISR_PABORT=(unsigned)HaltPabort; 
    pISR_DABORT=(unsigned)HaltDabort; 
 
    //rINTCON=0x1;	  // Vectored Int. IRQ enable,FIQ disable     
    rINTCON=0x5;	  // Non-vectored,IRQ enable,FIQ disable     
 
    rINTMOD=0x0;	  // All=IRQ mode 
    rINTMSK=BIT_GLOBAL;	  // All interrupt is masked. 
} 
 
void HaltUndef(void) 
{ 
    Uart_Printf("Undefined instruction exception!!!\n"); 
    while(1) 
    { 
    	Led_Set( 0x00 )	;		// 
    	Delay(500) ;		// 
    	Led_Set( 0x0f )	;		// 
    	Delay(500) ;		// 
    } 
} 
 
void HaltSwi(void) 
{ 
    Uart_Printf("SWI exception!!!\n"); 
    while(1) 
    { 
    	Led_Set( 0x00 )	;		// 
    	Delay(500) ;		// 
    	Led_Set( 0x0f )	;		// 
    	Delay(500) ;		// 
    } 
} 
 
void HaltPabort(void) 
{ 
    Uart_Printf("Pabort exception!!!\n"); 
    while(1) 
    { 
    	Led_Set( 0x00 )	;		// 
    	Delay(500) ;		// 
    	Led_Set( 0x0f )	;		// 
    	Delay(500) ;		// 
    } 
} 
 
void HaltDabort(void) 
{ 
    Uart_Printf("Dabort exception!!!\n"); 
    while(1) 
    { 
    	Led_Set( 0x00 )	;		// 
    	Delay(500) ;		// 
    	Led_Set( 0x0f )	;		// 
    	Delay(500) ;		// 
    } 
}