www.pudn.com > DMAjian.rar > TARGET.C


/* 
;************************************************************************************************************ 
;*				        				北京精仪达盛科技有限公司 
;*                                     	     研    发    部 
;* 
;*                                 	     http://www.techshine.com 
;* 
;*--------------------------------------------- 文件信息 ----------------------------------------------------                                       
;* 
;* 文件名称 : Main.c	 
;* 文件功能 : 该文件为S3C2410硬件平台主程序。 
;* 补充说明 :  
;*-------------------------------------------- 最新版本信息 ------------------------------------------------- 
;* 修改作者 : ARM开发小组 
;* 修改日期 : 2005/08/1 
;* 版本声明 : V1.0.1 
;*-------------------------------------------- 历史版本信息 ------------------------------------------------- 
;* 文件作者 : ARM开发小组 
;* 创建日期 : 2004/04/20 
;* 版本声明 : v1.0.0 
;*----------------------------------------------------------------------------------------------------------- 
;*----------------------------------------------------------------------------------------------------------- 
;************************************************************************************************************ 
;*/ 
 
#include  
#include  
#include "..\..\Application\inc\config.h" 
#include "Uart_driver.h" 
/* 
************************************************************************************************************* 
-   
- 程序段说明 : 以下函数为各异常模式服务子程序。设成死循环是为调试用,一旦发生此类异常,程序便跳入异常模式服务 
-              子程序,终止程序运行。 
- 
************************************************************************************************************* 
*/ 
 
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); 
} 
 
/* 
************************************************************************************************************* 
- 
-                                   程序段说明 : 以下函数均为初始化函数 
-             
************************************************************************************************************* 
*/ 
 
/* 
************************************************************************************************************* 
- 函数名称 : Dma_ISR 
- 函数说明 : DMA中断服务程序 
- 输入参数 : 无 
- 输出参数 : 无 
************************************************************************************************************* 
*/ 
void __irq Dma_ISR( void ) 
{  
    //Uart_Printf("Dma_ISR"); 
   	rSRCPND |= BIT_DMA0; 
   	rINTPND |= BIT_DMA0; 
} 
 
/* 
************************************************************************************************************* 
- 函数名称 : DmaINT_Init(void) 
- 函数说明 : DMA中断初始化 
- 输入参数 : 无 
- 输出参数 : 无 
************************************************************************************************************* 
*/ 
void DmaINT_Init(void){ 
    if ((rINTPND & BIT_DMA0)) { 
    	rSRCPND |= BIT_DMA0; 
    } 
    pISR_DMA0 = (int)Dma_ISR; 
    rINTMSK  &= ~(BIT_DMA0);  //开中断;     
} 
 
/* 
************************************************************************************************************* 
- 函数名称 : Exep_S3cint_Init(void) 
- 函数说明 : 异常及中断控制器的初始化 
- 输入参数 : 无 
- 输出参数 : 无 
************************************************************************************************************* 
*/ 
void Isr_Init(void) 
{ 
    pISR_UNDEF  = (unsigned)HaltUndef; 
    pISR_SWI    = (unsigned)HaltSwi; 
    pISR_PABORT = (unsigned)HaltPabort; 
    pISR_DABORT = (unsigned)HaltDabort; 
     
    rINTMOD     = 0x0;                     //All=IRQ mode 
    rINTMSK     = BIT_ALLMSK;              //All interrupt is masked. 
    rINTSUBMSK  = BIT_SUB_ALLMSK;          //All sub-interrupt is masked. <- April 01, 2002 SOP 
} 
 
 
/* 
************************************************************************************************************* 
- 函数名称 : TargetInit(void) 
- 函数说明 : 目标板初始化程序,主函数中只需调用此函数,即可完成目标板的初始化 
- 输入参数 : 无 
- 输出参数 : 无 
************************************************************************************************************* 
*/ 
void Target_Init(void) 
{ 
	MMU_Init(); 
	ChangeClockDivider(1,1);          // 1:2:4     
	ChangeMPllValue(0xa1,0x3,0x1);    // FCLK=202.8MHz   
    Isr_Init(); 
    Port_Init(); 
     
	Uart_Init(0,115200); 
    Uart_Select(0);  
     
    DmaINT_Init();  
        
}