亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? dma.c

?? Hello I Send som Source Code Aboat LPC2000
?? C
字號:
/*****************************************************************************
 *   dma.c:  DMA module file for NXP LPC23xx/24xx Family Microprocessors
 *
 *   Copyright(C) 2006, NXP Semiconductor
 *   All rights reserved.
 *
 *   History
 *   2006.07.20  ver 1.00    Prelimnary version, first Release
 *
******************************************************************************/
#include "LPC23xx.h"                        /* LPC23xx/24xx definitions */
#include "type.h"
#include "irq.h"
#include "mci.h"
#include "dma.h"

#if MCI_DMA_ENABLED

/******************************************************************************
** Function name:		DMAHandler
**
** Descriptions:		DMA interrupt handler for MCI
**
** parameters:			None
** Returned value:		None
** 
******************************************************************************/
void DMAHandler (void) __irq 
{
  DWORD regVal;
  static DWORD DMATCCount, DMAErrCount;

  regVal = GPDMA_INT_TCSTAT;
  if ( regVal )
  {
	DMATCCount++;
	GPDMA_INT_TCCLR |= regVal;
  } 

  regVal = GPDMA_INT_ERR_STAT;
  if ( regVal )
  {
	DMAErrCount++;
	GPDMA_INT_ERR_CLR |= regVal;
  } 
  VICVectAddr = 0;		/* Acknowledge Interrupt */
}

/******************************************************************************
** Function name:		DMA_Init
**
** Descriptions:		Setup GPDMA clock and install interrupt handler		
**
** parameters:			None			
** Returned value:		TRUE or FALSE, FALSE if ISR can't be installed.		
** 
******************************************************************************/
DWORD DMA_Init(void)
{
  PCONP |= (1 << 29);	/* Enable GPDMA clock */

  /* clear all interrupts on channel 0 and 1 */
  GPDMA_INT_TCCLR = 0x03;
  GPDMA_INT_ERR_CLR = 0x03;

  GPDMA_CONFIG = 0x01;	/* Enable DMA channels, little endian */
  while ( !(GPDMA_CONFIG & 0x01) );    
		
  if ( install_irq( GPDMA_INT, (void *)DMAHandler, HIGHEST_PRIORITY ) == FALSE )
  {
	return( FALSE );
  }
  return( TRUE );
}   

/******************************************************************************
** Function name:		DMA_Move
**
** Descriptions:		Setup GPDMA for MCI DMA transfer
**						including mode, M2P or M2M, or P2M,
**						src and dest. address, control reg. etc.		
**
** parameters:			Channel number, DMA mode			
** Returned value:		TRUE or FALSE		
** 
******************************************************************************/
DWORD DMA_Move( DWORD ChannelNum, DWORD DMAMode )
{
  /* USB RAM is used for test.
  Please note, Ethernet has its own SRAM, but GPDMA can't access
  that. GPDMA can access USB SRAM and IRAM. Ethernet DMA controller can 
  access both IRAM and Ethernet SRAM. */
  if ( ChannelNum == 0 )
  {
	GPDMA_INT_TCCLR = 0x01;   
	GPDMA_INT_ERR_CLR = 0x01;
	if ( DMAMode == M2M )
	{
	  /* Ch0 is set for M2M tranfer from AHB1 to AHB2 SRAM */
	  GPDMA_CH0_SRC = DMA_SRC;
	  GPDMA_CH0_DEST = DMA_DST;
	  /* Terminal Count Int enable */
	  GPDMA_CH0_CTRL = (DMA_SIZE & 0x0FFF) | (0x04 << 12) | (0x04 << 15) 
			| (0x02 << 18) | (0x02 << 21) | (1 << 26) | (1 << 27) | 0x80000000;	
	}
	else if ( DMAMode == M2P )
	{
	  /* Ch0 set for M2P transfer from mempry to MCI FIFO. */
	  GPDMA_CH0_SRC = DMA_SRC;
	  GPDMA_CH0_DEST = DMA_MCIFIFO;
	  /* The burst size is set to 8, the size is 8 bit too. */
	  /* Terminal Count Int enable */
	  GPDMA_CH0_CTRL = (DMA_SIZE & 0x0FFF) | (0x04 << 12) | (0x02 << 15)
			| (0x02 << 18) | (0x02 << 21) | (1 << 26) | 0x80000000;
	}
	else if ( DMAMode == P2M )
	{
	  /* Ch0 set for P2M transfer from MCI FIFO to memory. */
	  GPDMA_CH0_SRC = DMA_MCIFIFO;
	  GPDMA_CH0_DEST = DMA_DST;
	  /* The burst size is set to 8, the size is 8 bit too. */
	  /* Terminal Count Int enable */
	  GPDMA_CH0_CTRL = (DMA_SIZE & 0x0FFF) | (0x02 << 12) | (0x04 << 15)
			| (0x02 << 18) | (0x02 << 21) | (1 << 27) | 0x80000000;
	}
	else
	{
	  return ( FALSE );
	}
  }
  else if ( ChannelNum == 1 )
  {   
	GPDMA_INT_TCCLR = 0x02;   
	GPDMA_INT_ERR_CLR = 0x02;
	if ( DMAMode == M2M )
	{
	  /* Ch1 is set for M2M tranfer */
	  GPDMA_CH1_SRC = DMA_SRC;
	  GPDMA_CH1_DEST = DMA_DST;
	  /* Terminal Count Int enable */
	  GPDMA_CH1_CTRL = (DMA_SIZE & 0x0FFF) | (0x04 << 12) | (0x04 << 15) 
			| (0x02 << 18) | (0x02 << 21) | (1 << 26) | (1 << 27) | 0x80000000;	
	}
	else if ( DMAMode == M2P )
	{
	  /* Ch1 set for M2P transfer from memory to MCI FIFO. */
	  GPDMA_CH1_SRC = DMA_SRC;
	  GPDMA_CH1_DEST = DMA_MCIFIFO;
	  /* The burst size is set to 8, the size is 8 bit too. */
	  /* Terminal Count Int enable */
	  GPDMA_CH1_CTRL = (DMA_SIZE & 0x0FFF) | (0x04 << 12) | (0x02 << 15)
			| (0x02 << 18) | (0x02 << 21) | (1 << 26) | 0x80000000;
	}
	else if ( DMAMode == P2M )
	{
	  /* Ch1 set for P2M transfer from MCI_FIFO to memory. */
	  GPDMA_CH1_SRC = DMA_MCIFIFO;
	  GPDMA_CH1_DEST = DMA_DST;
	  /* The burst size is set to 8, the size is 8 bit too. */
	  /* Terminal Count Int enable */
	  GPDMA_CH1_CTRL = (DMA_SIZE & 0x0FFF) | (0x02 << 12) | (0x04 << 15)
			| (0x02 << 18) | (0x02 << 21) | (1 << 27) | 0x80000000;
	}
	else
	{
	  return ( FALSE );
	}
  }
  else
  {
	return ( FALSE );
  }
	
  GPDMA_CONFIG = 0x01;	/* Enable DMA channels, little endian */
  while ( !(GPDMA_CONFIG & 0x01) );    
  return (TRUE);
}

#endif

/******************************************************************************
**                            End Of File
******************************************************************************/

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
欧美一卡二卡在线| 亚洲午夜激情网页| 久久免费美女视频| 久久夜色精品一区| 精品国产一区二区精华| 欧美mv和日韩mv的网站| 精品成人在线观看| 久久久久久久久蜜桃| 欧美国产日产图区| 成人免费在线播放视频| 亚洲天堂精品视频| 亚洲电影欧美电影有声小说| 日韩专区欧美专区| 狠狠色狠狠色综合日日91app| 国产主播一区二区| 国产成人免费网站| 91蝌蚪porny| 欧美视频一区二| 欧美一区二区播放| 久久精品一二三| 最新国产精品久久精品| 夜夜嗨av一区二区三区| 日韩国产欧美在线视频| 精品一区二区成人精品| 国产成人av一区二区| www.色综合.com| 91久久免费观看| 在线电影国产精品| 日韩精品一区在线观看| 欧美国产日韩亚洲一区| 一区二区三区在线免费观看| 日本亚洲最大的色成网站www| 国产综合色视频| 91视频在线观看免费| 欧美色国产精品| 精品粉嫩超白一线天av| 亚洲欧美日韩电影| 首页亚洲欧美制服丝腿| 国产成人h网站| 欧美日韩一区二区欧美激情 | 久久精品在线免费观看| 亚洲桃色在线一区| 蜜臀av性久久久久蜜臀aⅴ| 国产成人精品网址| 91福利在线观看| 欧美大片日本大片免费观看| 中文字幕亚洲欧美在线不卡| 日韩av在线播放中文字幕| 丁香婷婷深情五月亚洲| 欧美日韩一级黄| 欧美高清一级片在线观看| 午夜精品福利一区二区三区蜜桃| 国产中文字幕一区| 欧美视频在线一区| 日本一区二区成人在线| 日韩精品一二区| www.色精品| 精品国产123| 亚洲成国产人片在线观看| 成人免费视频一区二区| 91麻豆精品国产91久久久久久久久 | 日韩精品乱码免费| 成人免费看视频| 欧美一区二区三区视频免费播放| 中文字幕欧美激情| 久久激情综合网| 欧美性极品少妇| 国产精品视频观看| 免费欧美在线视频| 欧洲生活片亚洲生活在线观看| 欧美精品一区二区三区高清aⅴ | 最新不卡av在线| 韩国v欧美v日本v亚洲v| 欧美日韩一区在线| 亚洲欧洲精品一区二区三区 | 精品国产欧美一区二区| 亚洲午夜私人影院| proumb性欧美在线观看| 久久精品视频免费观看| 久久狠狠亚洲综合| 91精品一区二区三区在线观看| 亚洲精品菠萝久久久久久久| 丰满少妇久久久久久久| 精品国产一区二区三区av性色| 日韩vs国产vs欧美| 欧美乱妇一区二区三区不卡视频| 亚洲色欲色欲www| 成人99免费视频| 亚洲国产精品成人综合| 国产精品一色哟哟哟| 欧美xxxx在线观看| 麻豆精品一区二区三区| 欧美一级夜夜爽| 日本美女一区二区三区视频| 欧美日韩精品欧美日韩精品| 亚洲亚洲精品在线观看| 色香蕉成人二区免费| 中文字幕日本不卡| www.成人网.com| 国产精品三级在线观看| 国产成人久久精品77777最新版本| 久久网这里都是精品| 国产一区二区三区最好精华液| 日韩免费观看2025年上映的电影 | 色天使色偷偷av一区二区| 亚洲欧洲99久久| 成人精品视频.| 中文成人综合网| fc2成人免费人成在线观看播放| 欧美经典三级视频一区二区三区| 国产91精品一区二区麻豆亚洲| 国产精品丝袜91| 97久久精品人人做人人爽50路| 中文字幕中文在线不卡住| 成人爱爱电影网址| 亚洲免费毛片网站| 欧美午夜精品久久久久久孕妇| 亚洲电影第三页| 欧美高清视频在线高清观看mv色露露十八 | 欧美在线视频日韩| 亚洲成人tv网| 日韩欧美久久一区| 国产乱人伦精品一区二区在线观看 | 欧美一区二区三区视频| 蜜桃精品在线观看| 久久嫩草精品久久久精品一| 高潮精品一区videoshd| 日韩毛片在线免费观看| 欧美色视频一区| 蜜桃传媒麻豆第一区在线观看| 久久久久久黄色| 91小视频在线观看| 午夜精品久久久久影视| www国产亚洲精品久久麻豆| 不卡欧美aaaaa| 亚洲国产人成综合网站| 日韩免费视频线观看| 成人免费视频国产在线观看| 一区二区三区中文字幕电影| 日韩亚洲欧美成人一区| 国产成人在线视频免费播放| 亚洲男人的天堂在线aⅴ视频| 3d动漫精品啪啪| 国产盗摄视频一区二区三区| 亚洲精选一二三| 日韩一级欧美一级| 不卡一区在线观看| 日韩av在线播放中文字幕| 亚洲国产高清不卡| 欧美福利电影网| 国产成人精品免费网站| 亚洲午夜影视影院在线观看| 久久精品视频免费| 欧美日韩成人综合在线一区二区| 国产麻豆成人传媒免费观看| 尤物av一区二区| 国产亚洲精品资源在线26u| 色狠狠桃花综合| 狠狠色综合日日| 亚洲午夜在线电影| 欧美激情自拍偷拍| 欧美精品v国产精品v日韩精品 | 日韩一区二区高清| 99久久精品99国产精品 | 欧美日韩精品电影| 成人丝袜高跟foot| 日韩va欧美va亚洲va久久| 亚洲天堂精品视频| 久久久久久久久免费| 欧美欧美欧美欧美| av午夜精品一区二区三区| 美女mm1313爽爽久久久蜜臀| 亚洲精品视频在线看| 久久蜜桃一区二区| 91精品在线麻豆| 欧美性猛片aaaaaaa做受| 成av人片一区二区| 国产在线国偷精品免费看| 午夜欧美在线一二页| 1024国产精品| 国产视频一区二区在线观看| 日韩欧美一级在线播放| 欧美日韩在线综合| 91蜜桃免费观看视频| 国产成人精品综合在线观看 | 成人av在线一区二区三区| 激情综合五月婷婷| 美女视频一区二区| 亚洲va在线va天堂| 亚洲激情图片qvod| 综合久久久久久| 国产精品久久看| 国产精品欧美经典| 国产日韩高清在线| 久久精品一区二区三区不卡牛牛 | 日日夜夜一区二区| 亚洲国产精品久久久久婷婷884| 亚洲色图视频网站| 亚洲日本护士毛茸茸| 亚洲图片你懂的|