www.pudn.com > DMAjian.rar > Main.c


/* 
;************************************************************************************************************ 
;*				        				北京精仪达盛科技有限公司 
;*                                     	     研    发    部 
;* 
;*                                 	     http://www.techshine.com 
;* 
;*--------------------------------------------- 文件信息 ----------------------------------------------------                                       
;* 
;* 文件名称 : Main.c	 
;* 文件功能 : 该文件为S3C2410硬件平台主程序。 
;* 补充说明 :  
;*-------------------------------------------- 最新版本信息 ------------------------------------------------- 
;* 修改作者 : ARM开发小组 
;* 修改日期 : 2005/08/1 
;* 版本声明 : V1.0.1 
;*-------------------------------------------- 历史版本信息 ------------------------------------------------- 
;* 文件作者 : ARM开发小组 
;* 创建日期 : 2004/04/20 
;* 版本声明 : v1.0.0 
;*----------------------------------------------------------------------------------------------------------- 
;*----------------------------------------------------------------------------------------------------------- 
;************************************************************************************************************ 
;*/ 
 
#include  
#include "..\INC\config.h" 
#define  SEND_DATA   (*(volatile unsigned char *) 0x30200000) 
#define  SEND_ADDR    ((volatile unsigned char *) 0x30200000) 
  
void Main(void){ 
	volatile unsigned char* p = SEND_ADDR; 
	int i; 
 
	Target_Init(); 
	Delay(1000); 
	 
	SEND_DATA = 0x41; 
	for (i = 0; i < 128; i++){ 
	    *p++ = 0x41 + i; 
	} 
 
	 
    /*Uart设置成DMA形式*/ 
    rUCON0 = rUCON0 & 0xff3 | 0x8; 
     
    /****** DMA0 Initialize *****/ 
 
    rDISRC0 = (U32)(SEND_ADDR); 
    rDISRCC0 = (0<<1)|(0<<0); //Src=AHB,Increment 
     
    rDIDST0 = (U32)UTXH0;  // Tx FIFO address 
    rDIDSTC0 = (1<<1)|(1<<0); //Dst=APB,Fixed; 
     
    rDCON0 = (0<<31)|(0<<30)|(1<<29)|(0<<28)|(0 << 27) | (1 << 24) | (1 << 23) | (1 << 22) | (0 << 20) | (50); 
        //handshake,Sync=APB,IntEn,   unit,   single,     dst=UART0,  HwReqMode,  NoAutoReload,Halfword, 
     
    rDMASKTRIG0 = (1<<1); 	//DMA0En 
 
//*************************************************/ 
	while(1); 
}