www.pudn.com > ARM+SL811.rar > Main.c


#include  
#include  
#include  
#include "..\target\option.h" 
#include "..\target\44b.h" 
#include "..\target\44blib.h" 
#include "..\target\def.h" 
 
 
void Isr_Init(void); 
void HaltUndef(void); 
void HaltSwi(void); 
void HaltPabort(void); 
void HaltDabort(void); 
extern void SL811Main(void); 
 
void * function[][2]= 
{ 
	 
	(void *)SL811Main,			"HOST USB TEST(sl811)", 
	0,0 
}; 
 
/*******************main function*************************/ 
void Main(void) 
{ 
    int i; 
 
    rSYSCFG=CACHECFG; 
     
    //__rt_lib_init(); 	//for ADS 1.0 
 
    Port_Init(); 
    Isr_Init(); 
 
    Uart_Init(0,115200); 
	 
    
    Uart_Select(0); 
    Delay(0);  //calibrate Delay() 
	Beep(0x01); 
	Led_Display(0xf); 
	Uart_Printf("\n---------------------------------------------------------------"); 
	Beep(0x00); 
	Uart_Printf("\nOEM name   :     LiYuTai Elec.Co.,Ltd.			               "); 
	Uart_Printf("\nWebsite    :     www.hzlitai.com.cn                             "); 
	Uart_Printf("\nEmail      :     lyt_tech@yahoo.com.cn                          "); 
	Uart_Printf("\nFunction   :     ARMSYS44b0's SL811 Test Program                 "); 
	Uart_Printf("\nUART config:     115.2kbps,8Bit,NP,UART0                        "); 
	Uart_Printf("\n---------------------------------------------------------------"); 
	Uart_Printf("\nS3C44B0X Test Program Ver 2.0 rSYSCFG=0x%x MCLK=%dHz\n",rSYSCFG,MCLK); 
    while(1) 
    { 
		i=0; 
      	Uart_Printf("\nThe function list to test :\n"); 
	while(1) 
	{   //display menu 
		 
	    Uart_Printf("%2d:%s",i+1,function[i][1]); 
	    i++; 
	    if((int)(function[i][0])==0) 
	    { 
		Uart_Printf("\n"); 
		break; 
	    } 
	    if((i%4)==0) 
		Uart_Printf("\n"); 
	} 
	Led_Display(0x0); 
	Uart_Printf("\nSelect the function to test?"); 
	 
	i=Uart_GetIntNum(); 
	i--; 
	Uart_Printf("\n"); 
	if(i>=0 && (i<(sizeof(function)/8)) )  
	    ( (void (*)(void)) (function[i][0]) )(); 
    } 
} 
 
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); 
} 
 
void HaltSwi(void) 
{ 
    Uart_Printf("SWI exception!!!\n"); 
    while(1); 
} 
 
void HaltPabort(void) 
{ 
    Uart_Printf("Pabort exception!!!\n"); 
    while(1); 
} 
 
void HaltDabort(void) 
{ 
   Uart_Printf("Dabort exception!!!\n"); 
    while(1); 
}