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

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

?? mcitest.c

?? NXP產品LPC23XX的開發板的源文件
?? C
字號:
/*****************************************************************************
 *   mcitest.c:  main C entry 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"

extern volatile DWORD CardType;

/* Below buffer allocation could be simplier, if the buffer used for DMA and non-DMA 
are shared. Future clear up will be needed. For now, leave as it's. */
#if MCI_DMA_ENABLED
DWORD *src_addr; 
DWORD *dest_addr;
#else
volatile BYTE WriteBlock[BLOCK_LENGTH], ReadBlock[BLOCK_LENGTH];
volatile DWORD TXBlockCounter, RXBlockCounter;
#endif

/******************************************************************************
**   Main Function  main()
******************************************************************************/
int main (void)
{
	DWORD i, j;

	/* Fill block data pattern in write buffer and clear everything 
	in read buffer. */
#if MCI_DMA_ENABLED
	/* on DMA channel 0, source is memory, destination is MCI FIFO. */
	/* On DMA channel 1, source is MCI FIFO, destination is memory. */
	PCONP |= (1 << 29);	/* Enable GPDMA clock */

	src_addr = (DWORD *)DMA_SRC;
	dest_addr = (DWORD *)DMA_DST;
	for ( i = 0; i < DMA_SIZE; i++ )
	{
		*src_addr = i;
		*dest_addr = 0;
		src_addr++;
		dest_addr++;
	}
#else
	for ( i = 0; i < BLOCK_LENGTH; i++ )
	{
		WriteBlock[i] = i;
		ReadBlock[i] = 0;
	}
#endif
	
	/* For the SD card I tested, the minimum required block length is 512 */
	/* For MMC, the restriction is loose, due to the variety of SD and MMC
	card support, ideally, the driver should read CSD register to find the 
	right speed and block length for the card, and set them accordingly.
	In this driver example, it will support both MMC and SD cards, and it
	does read the information by send SEND_CSD to poll the card status,
	however, to simplify the example, it doesn't configure them accordingly
	based on the CSD register value. This is not intended to support all 
	the SD and MMC cards. */
    if ( MCI_Init() != TRUE )
    {
		while( 1 );			/* fatal error */
    }

	if ( (CardType = MCI_CardInit()) == CARD_UNKNOWN )
	{
		while ( 1 );		/* fatal error */
	}

	if ( MCI_Check_CID() != TRUE )
	{
		while ( 1 );		/* fatal error */
	}

	if ( MCI_Set_Address() != TRUE )
	{
		while ( 1 );		/* fatal error */
	}

	if ( MCI_Send_CSD() != TRUE )
	{
		while ( 1 );		/* fatal error */
	}

	if ( MCI_Select_Card() != TRUE )
	{
		while ( 1 );		/* fatal error */
	}

	if ( CardType == SD_CARD )
	{
		MCI_CLOCK |= (1 << 11);		/* Use wide bus for SD */
		for ( i = 0; i < 0x20; i++ );
		if ( MCI_Send_ACMD_Bus_Width( BUS_WIDTH_4BITS ) == FALSE )
		{
			while ( 1 );	/* fatal error */
		}
	}

	if ( MCI_Set_BlockLen( BLOCK_LENGTH ) != TRUE )
	{
		while ( 1 );		/* fatal error */
	}

	for ( i = 0; i < BLOCK_NUM; i++ )
    {
#if !MCI_DMA_ENABLED
		TXBlockCounter = 0;
		RXBlockCounter = 0;
#endif
		if ( MCI_Write_Block( i ) != TRUE )
		{
			while ( 1 );		/* Fatal error */
		}

		/* When TX_ACTIVE is not set, it indicates TX is done from 
		Interrupt_Write_Block, now, Interrupt_Read_Block can start. */
		while ( MCI_STATUS & MCI_TX_ACTIVE );
		/* Note TXEnable() is called in the Interrupt_Write_Block(). */
		MCI_TXDisable();

		if ( MCI_Read_Block( i ) != TRUE )
		{
			while ( 1 );		/* Fatal error */
		}
		/* When RX_ACTIVE is not set, it indicates RX is done from 
		Interrupt_Read_Block, now, validation of RX and TX buffer can start. */
		while ( MCI_STATUS & MCI_RX_ACTIVE );
		/* Note RXEnable() is called in the Interrupt_Read_Block(). */
		MCI_RXDisable();
		
#if MCI_DMA_ENABLED
		src_addr = (DWORD *)DMA_SRC;
		dest_addr = (DWORD *)DMA_DST;	
		for ( j = 0; j < BLOCK_LENGTH; j++ )
		{
			if ( *src_addr != *dest_addr )
			{
				while ( 1 );	/* Data comparison failure, fatal error */
			}
		}
		/* clear read buffer for next comparison */
		for ( j = 0; j < BLOCK_LENGTH; j++ )
		{
			*dest_addr = 0;
		}	 
#else	
		for ( j = 0; j < BLOCK_LENGTH; j++ )
		{
			if ( WriteBlock[j] != ReadBlock[j] )
			{
				while ( 1 );	/* Data comparison failure, fatal error */
			}
		}
		/* clear read buffer for next comparison */
		for ( j = 0; j < BLOCK_LENGTH; j++ )
		{
			ReadBlock[j] = 0;
		}
#endif			 
	}
    return 0;
}

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

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
一片黄亚洲嫩模| 精品国产一区二区三区不卡 | 奇米精品一区二区三区在线观看| 中文字幕一区二区三区在线播放 | 欧美丝袜丝nylons| 色欧美88888久久久久久影院| 成人国产精品免费观看动漫| 国产·精品毛片| 国产成a人无v码亚洲福利| 国产精品99久久久久久似苏梦涵| 久久精品国产网站| 激情久久久久久久久久久久久久久久| 午夜亚洲福利老司机| 午夜免费久久看| 毛片不卡一区二区| 国产精品自在欧美一区| 不卡av在线免费观看| 色综合天天天天做夜夜夜夜做| 一本到三区不卡视频| 欧美午夜精品一区二区三区| 91精品久久久久久久91蜜桃| 日韩欧美国产1| 欧美国产欧美综合| 亚洲精选一二三| 青青草一区二区三区| 国产高清在线精品| 色哟哟国产精品免费观看| 欧美日韩综合不卡| 精品少妇一区二区三区在线播放| 国产欧美一区视频| 亚洲午夜免费电影| 激情深爱一区二区| 99九九99九九九视频精品| 欧美日韩不卡视频| 久久久久国产免费免费| 亚洲天天做日日做天天谢日日欢 | 欧美一区二区三区在线观看| 久久综合色鬼综合色| 亚洲视频一区在线观看| 日韩二区在线观看| 丁香激情综合国产| 欧美人成免费网站| 国产精品欧美极品| 日韩va亚洲va欧美va久久| 丁香婷婷综合网| 欧美人牲a欧美精品| 亚洲欧美在线另类| 久久成人综合网| 欧美无砖砖区免费| 中文字幕成人在线观看| 日韩精品乱码免费| 91日韩一区二区三区| 精品国产乱码久久久久久久久 | xnxx国产精品| 亚洲成人精品在线观看| 国产91丝袜在线播放0| 欧美日本免费一区二区三区| 国产精品久久久久久久久动漫| 六月婷婷色综合| 欧美艳星brazzers| 1区2区3区欧美| 成人免费毛片aaaaa**| 欧美mv日韩mv国产| 欧美成人一区二区三区在线观看| 伊人性伊人情综合网| 国产成人精品免费看| 精品福利一区二区三区| 奇米亚洲午夜久久精品| 欧美四级电影网| 亚洲综合av网| 色天使久久综合网天天| 中文字幕一区二区三区四区| 成人午夜视频免费看| 久久精品夜色噜噜亚洲aⅴ| 精品一区二区国语对白| 日韩午夜激情视频| 蜜桃一区二区三区四区| 欧美一区二区三区人| 日韩激情一二三区| 欧美电影在线免费观看| 天堂在线亚洲视频| 欧美人伦禁忌dvd放荡欲情| 亚洲大尺度视频在线观看| 在线观看亚洲a| 午夜精品久久久| 6080yy午夜一二三区久久| 亚州成人在线电影| 欧美一区二区视频在线观看| 久久国产精品72免费观看| 精品久久久久99| 国产传媒日韩欧美成人| 日本一区二区三区免费乱视频| 国产91对白在线观看九色| 亚洲欧美色综合| 欧美性淫爽ww久久久久无| 亚洲mv大片欧洲mv大片精品| 日韩免费视频一区二区| 国产酒店精品激情| 中文字幕视频一区| 欧美日韩国产在线观看| 精品在线播放免费| 国产精品高潮呻吟| 欧美视频在线观看一区二区| 蜜芽一区二区三区| 国产欧美视频一区二区三区| 一本一本大道香蕉久在线精品| 午夜视频在线观看一区二区 | 不卡视频一二三| 一区二区三区国产精品| 日韩亚洲欧美中文三级| 成人午夜视频网站| 五月婷婷久久丁香| 久久精品人人做| 欧美在线制服丝袜| 国产精品一线二线三线| 亚洲精品成人天堂一二三| 日韩亚洲欧美中文三级| 3d成人动漫网站| 国产精品456| 午夜精品久久久久久久| 久久日韩精品一区二区五区| 91视频.com| 国产伦精一区二区三区| 一区二区三区日韩精品| 久久亚洲精品小早川怜子| 欧洲精品一区二区| 丁香啪啪综合成人亚洲小说| 日本不卡123| 亚洲精品成a人| 国产日韩视频一区二区三区| 51精品视频一区二区三区| 99re在线精品| 国产成人一级电影| 日韩黄色免费网站| 亚洲精品国产无天堂网2021| 久久久影院官网| 日韩一级大片在线| 欧美日精品一区视频| 97超碰欧美中文字幕| 国产精一区二区三区| 麻豆精品精品国产自在97香蕉| 亚洲美女偷拍久久| 中文字幕制服丝袜一区二区三区 | 成人一区二区三区中文字幕| 日产国产欧美视频一区精品| 亚洲一区二区三区四区在线| 中文字幕一区二区5566日韩| 日本一区二区在线不卡| 久久综合99re88久久爱| 精品裸体舞一区二区三区| 欧美高清视频一二三区 | 欧美中文字幕一区二区三区| 成人爱爱电影网址| 不卡视频一二三| 成人av小说网| 91理论电影在线观看| 成人精品国产免费网站| 高清在线观看日韩| 豆国产96在线|亚洲| 国产裸体歌舞团一区二区| 国产一区二区三区四区五区美女| 久久99精品久久久久婷婷| 久久精品免费观看| 久久99国产精品久久99| 激情欧美日韩一区二区| 国产自产v一区二区三区c| 国产一区二区影院| 国产suv一区二区三区88区| 高清不卡一二三区| 不卡欧美aaaaa| 色av综合在线| 欧美精品三级在线观看| 欧美成人综合网站| 日本一区二区成人在线| 亚洲欧美日韩在线不卡| 亚洲国产精品尤物yw在线观看| 亚洲高清免费一级二级三级| 免费久久99精品国产| 国产成人丝袜美腿| 91老师国产黑色丝袜在线| 精品视频一区二区不卡| 欧美成人欧美edvon| 国产精品人妖ts系列视频| 亚洲少妇屁股交4| 丝袜美腿亚洲一区二区图片| 国模娜娜一区二区三区| 成人黄色av电影| 欧美日韩不卡在线| 国产免费久久精品| 日韩专区中文字幕一区二区| 国产一本一道久久香蕉| 色综合久久精品| 久久午夜羞羞影院免费观看| 亚洲卡通动漫在线| 国产一区二区导航在线播放| 在线免费精品视频| 国产日韩欧美制服另类| 亚洲成人黄色影院| 成人一区二区三区中文字幕| 欧美一区二区三区在线观看|