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

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

?? mmconecard.c

?? How to control MMC interface under SZ platform
?? C
?? 第 1 頁 / 共 2 頁
字號:

 Post Condition   : VOID

******************************************************************************/
int MMCRawWrite( DEVICE *devp, int cylinder, int head, int sector,
                   int nsects, void *bufp )
{
    return( SYS_ERR );/* raw_write SHALL NOT BE CALLED BECAUSE THIS IS HDD FORMAT */
}

/******************************************************************************

 Function Name    : MMCTimeStamp( U16 *time )
	                  
 Input Parameters : U16 *time  Buffer to store data,time
 
 Output Parameters: VOID

 Value returned   : VOID

 Description      : Interface functions between USFiles and MMC driver. 
 					Time Stamp

 Cautions         : Public function.
 
 Prev Condition   : VOID

 Post Condition   : VOID

******************************************************************************/
void MMCTimeStamp( U16 *time )
{
    _MMCTimeSet( time );
    
}

/******************************************************************************

 Function Name    : MMCDiskChange( DEVICE *devp )
	                  
 Input Parameters : DEVICE *devp                Device Table
 
 Output Parameters: VOID

 Value returned   : int            0: NO,  1: YES

 Description      : Interface functions between USFiles and MMC driver. 
 					Media Change Yes/NO

 Cautions         : 
 
 Prev Condition   : VOID

 Post Condition   : VOID

******************************************************************************/
int MMCDiskChange( DEVICE *devp )
{
    U8    card_no;
    MMC_STATUS  ret;

    card_no = 0;
    ret = 0;
    /*----------------------------------------------------------------------*/
    /*  ACQUIRE THE CARD NUMBER                                             */
    /*----------------------------------------------------------------------*/
    card_no = (devp->unit_no & ~MMC_UNIT_NO);
    /*----------------------------------------------------------------------*/
    /*  CONFIRM THE CARD STATUS                                             */
    /*----------------------------------------------------------------------*/
    if ( ret = _MMCGetStatus( card_no, &_gCardInfo ) )
    {
        TRACE("ERR_MEDIA_DSKCHG\n");
        return(ERR_MEDIA_DSKCHG );/* MEDIA CHANGE; YES */
    }
    else
    {
        return( 0 );/* MEDIA CHANGE; NO */
    }
}

/******************************************************************************

 Function Name    : MMCIoctl(U16 Key,P_VOID pAgu,P_U32 pSize)
	                  
 Input Parameters : U16 	key       key value
 					P_VOID pAgu       
 					P_U32  pSize
 
 Output Parameters: VOID

 Value returned   : SYS_OK      operation success 
 					SYS_ERR     meet error

 Description      : Interface functions between DM and MMC driver. 

 Cautions         : 
 
 Prev Condition   : VOID

 Post Condition   : VOID

******************************************************************************/
STATUS MMCIoctl(U16 Key,P_VOID pAgu,P_U32 pSize)
{
	switch(Key)
	{
		//case KEY_SYS_MSG:
			 return SYS_OK;
	}
	return SYS_ERR;
}

/******************************************************************************

 Function Name    : _MMCErrorConvert(MMC_STATUS status)
	                  
 Input Parameters :	MMC_STATUS status
 
 Output Parameters: VOID

 Value returned   : See FlsMmcInterface.h
 
 Description      : Interface functions between DM and MMC driver. 

 Cautions         : Only use MMCRead and MMCWrite  
 
 Prev Condition   : VOID

 Post Condition   : VOID

******************************************************************************/
int _MMCErrorConvert(MMC_STATUS status)
{
	if(status&MMC_READ_TIMEOUT)
	{	TRACE("Error: ERR_MEDIA_READTIMEOUT\n");
		return ERR_MEDIA_READTIMEOUT;
	}	
	
	if(status&(MMC_CMD_TIMEOUT|MMC_ILLEGAL_ERROR_MASK))
	{	
		TRACE("Error: ERR_MEDIA_DSKCHG\n");
		return ERR_MEDIA_DSKCHG;
	}
	if(status&0x80000000)
	{	TRACE("Error: ERR_MEDIA_OUTOFRANGE\n");
		return ERR_MEDIA_OUTOFRANGE;
	}
	if(status&MMC_INVALID_CARD_NO)
	{	TRACE("Error: ERR_MEDIA_OUTOFRANGE\n");
		return ERR_MEDIA_OUTOFRANGE;
	}	
	if(status&0x400000000)
	{	TRACE("Error: ERR_MEDIA_ADDRESS\n");
		return ERR_MEDIA_ADDRESS;
	}
	if(status&0x040000000)
	{	
		TRACE("Error: ERR_MEDIA_WRTPRT\n");
		return ERR_MEDIA_WRTPRT;
	}
	if(status!=0)
	{	TRACE("Error: ERR_MEDIA_GENEALERROR\n");
		return ERR_MEDIA_GENEALERROR;
	}
}

#define BLOCK_NUM 400	
int MMCLargerDataTest()
{
	DEVICE dev;
	int i;
	PCFM_BUFFER pcfm;
	U8 *pbuff;	
	U8 x;
	
	pbuff=_MemMalloc(MMC_BLOCK_SIZE*BLOCK_NUM);
	
	pcfm.nsects=1;
	pcfm.userbuf=pbuff;
	pcfm.devp=&dev;
	dev.unit_no=MMC_UNIT_NO;
	printf("Wait for two minutes\n");

	if(MMCInit(&dev))
		printf("Init Failed\n");

	srand(9876);
	for(i=0;i<MMC_BLOCK_SIZE*BLOCK_NUM;i++)
	{
		pbuff[i]=rand();
	}
		
	
	printf("Test lareg data single block read\write\n");
	printf("Wait for 2 mins\n");


	for(i=0;i<BLOCK_NUM;i++)
	{
		if(MMCWrite(i,&pcfm))
		{	printf("Write failed %d\n",i);
			return 2;
		}
		pcfm.userbuf+=MMC_BLOCK_SIZE;
	}
	printf("Write Finished\n");
	pcfm.userbuf=pbuff;
	
	for(i=0;i<BLOCK_NUM;i++)
	{
		if(MMCRead(i,&pcfm))
		{	
			printf("Read Failed %d\n",i);
			return 3;
		}
		pcfm.userbuf+=MMC_BLOCK_SIZE;
	}
	printf("Read Finished\n");
	srand(9876);
	for(i=0;i<BLOCK_NUM*MMC_BLOCK_SIZE;i++)
	{
		x=rand();
		if(x!=pbuff[i])
		{
			printf("Data Varify failed %d\n Error 0x%X,correct 0x%X\n",i,pbuff[i],x);
			return 4;
		}
	}
	if(i==BLOCK_NUM*MMC_BLOCK_SIZE)
		printf("Data Varify success\n");
		
	printf("Large data single block read\write finised\n");
	
	printf("Test Large Data Multi Block Read\Write\n");
	printf("Wait for 2 mins\n");
	
	pcfm.nsects=BLOCK_NUM;
	pcfm.userbuf=pbuff;
	
	srand(76);
	for(i=0;i<MMC_BLOCK_SIZE*BLOCK_NUM;i++)
	{
		pbuff[i]=rand();
	}
	
	if(MMCWrite(0,&pcfm))
		printf("Write Multi block Error\n");
		
	for(i=0;i<MMC_BLOCK_SIZE*BLOCK_NUM;i++)
		pbuff[i]=0;
		
	if(MMCRead(0,&pcfm))
		printf("Finish Multi Read Error\n");
		
	srand(76);
	for(i=0;i<MMC_BLOCK_SIZE*BLOCK_NUM;i++)	
	{
		x=rand();
		if(pbuff[i]!=x)
		{
			printf("Data Varified failed\n");
			break;
		}
	}
	if(i==MMC_BLOCK_SIZE*BLOCK_NUM)
		printf("Data Varified successed\n");	
		
	printf("Finish Large Data Multi Block Read\Write\n");
	return 0;
}
//MMC General Tesk. Must have enough stack. 
int MMCGeneralTest()
{
	
	DEVICE dev;
	U8 buff1[1024];
	U8 x;
	int i;
	PCFM_BUFFER pcfm;
	pcfm.nsects=1;
	pcfm.userbuf=buff1;
	pcfm.devp=&dev;
	dev.unit_no=MMC_UNIT_NO;
	
	if(MMCInit(&dev))
		printf("Init failed");
	else
		printf("Init Succes\n");

	srand(1234); //set  starting point for generating a series of pseudorandom integers.
	
	for(i=0;i<1024;i++)
		buff1[i]=rand(); //set rand data
		
	printf("Test Sing Read and Write\n"); //test single read and write command
	
	if(MMCWrite(0,&pcfm))
		printf("Write Error\n");
	else
		printf("Write Success\n");
		
	pcfm.userbuf=buff1+512;
	
	if(MMCWrite(1,&pcfm))
		printf("Write Error\n");
	else
		printf("Write Success\n");
		
	for(i=0;i<1024;i++)
		buff1[i]=0;
		
	pcfm.userbuf=buff1;
	pcfm.nsects=1;
	if(MMCRead(0,&pcfm))
		printf("Read Error\n");
	else
		printf("Read Success\n");

	pcfm.userbuf=buff1+512;
	pcfm.nsects=1;
	if(MMCRead(1,&pcfm))
		printf("Read Error\n");
	else
		printf("Read Success\n");


	srand(1234);
	for(i=0;i<1024;i++)
	{	x=rand();
		if(buff1[i]!=x)
		{
			printf("Data varify error %d\n",i);
			break;
		}
	}
	if(i==1024)
		printf("Data varify success\n");

	printf("Test Multi Block Read/Write\n");
	
	srand(5678);
	for(i=0;i<1024;i++)
		buff1[i]=rand();
	
	pcfm.userbuf=buff1;
	pcfm.nsects=2;
	if(MMCWrite(10,&pcfm))
		printf("Write Failed\n");
	else
		printf("Write Success\n");
	
	for(i=0;i<1024;i++)
		buff1[i]=0;
		
	pcfm.userbuf=buff1;	
	pcfm.nsects=2;
	if(MMCRead(10,&pcfm))
		printf("Read Failed\n");
	else
		printf("Read Success\n");
		
	srand(5678);
	for(i=0;i<1024;i++)
	{
		x=rand();
		if(buff1[i]!=x)
		{
			printf("Data varify failed %d\n",i);
			break;
		}
	}
	if(i==1024)
		printf("Data verify success\n");
	
	printf("Finish General test\n");	
	return 0;
}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
国产视频一区在线观看| 日本中文字幕一区| 日本免费新一区视频| av中文字幕不卡| 日韩一二三区视频| 亚洲一区二区三区中文字幕| 精品一区二区久久久| 在线综合+亚洲+欧美中文字幕| 国产精品日产欧美久久久久| 国产在线精品一区二区三区不卡 | 18涩涩午夜精品.www| 日韩av一区二区在线影视| 99在线精品一区二区三区| 久久在线观看免费| 日本大胆欧美人术艺术动态| 欧美无砖砖区免费| 亚洲精品日日夜夜| 成人sese在线| 国产精品无圣光一区二区| 精品一区二区三区不卡| 日韩午夜av一区| 日韩成人av影视| 欧美情侣在线播放| 午夜精品久久久久影视| 在线亚洲欧美专区二区| 亚洲欧美日韩中文字幕一区二区三区| 国产精品一卡二卡在线观看| 精品乱人伦小说| 精品一区在线看| 久久视频一区二区| 国产伦精品一区二区三区在线观看| 欧美精品日韩精品| 日韩电影在线一区二区三区| 555夜色666亚洲国产免| 日本欧美一区二区三区乱码| 欧美日韩成人在线一区| 丝袜a∨在线一区二区三区不卡 | 亚洲国产人成综合网站| 白白色亚洲国产精品| 国产精品久久久久天堂| 99久久精品国产精品久久| 成人免费一区二区三区在线观看| 91视频免费观看| 亚洲成人综合视频| 日韩欧美在线一区二区三区| 韩国女主播一区| 国产肉丝袜一区二区| 91丨porny丨在线| 亚洲影视在线观看| 91精品国产高清一区二区三区| 日韩和欧美一区二区三区| 欧美一二三区在线观看| 国产一区二区在线看| 国产精品蜜臀在线观看| 欧美性xxxxxx少妇| 免费看欧美美女黄的网站| 2021中文字幕一区亚洲| 成人做爰69片免费看网站| 亚洲色图在线播放| 91精品国产色综合久久不卡电影| 韩国女主播一区| 亚洲欧美日韩人成在线播放| 在线不卡欧美精品一区二区三区| 久久99国内精品| 国产精品久久久久aaaa樱花| 91国产福利在线| 国产一区啦啦啦在线观看| 亚洲精品水蜜桃| 日韩欧美亚洲国产精品字幕久久久 | 国产精品麻豆视频| 欧美日韩在线一区二区| 国产精品99久久久久久似苏梦涵| 悠悠色在线精品| 久久久久久亚洲综合| 欧美性色综合网| 国产91清纯白嫩初高中在线观看| 一区二区三国产精华液| 久久久久久久网| 777奇米四色成人影色区| 成人高清视频在线| 欧美96一区二区免费视频| 亚洲欧美一区二区在线观看| 精品久久久久久久久久久久包黑料| proumb性欧美在线观看| 久久国产精品第一页| 亚洲综合自拍偷拍| 国产精品蜜臀av| 久久久久高清精品| 欧美一级二级三级乱码| 欧美色区777第一页| 99r精品视频| 国产91对白在线观看九色| 美女视频黄久久| 日韩国产精品久久| 亚洲综合男人的天堂| 国产精品视频一区二区三区不卡| 欧美电视剧在线观看完整版| 欧美午夜精品一区| 91影视在线播放| 夫妻av一区二区| 国产真实乱子伦精品视频| 日本一区中文字幕| 亚洲电影中文字幕在线观看| 亚洲欧美韩国综合色| 亚洲人妖av一区二区| 国产精品素人一区二区| 国产亚洲一区二区三区| 久久精品一区二区三区四区| 欧美tickling挠脚心丨vk| 91精品国产综合久久久久久 | 精品成人a区在线观看| 欧美一区二区三区四区久久| 在线不卡的av| 日韩一区二区三区av| 91精品国产高清一区二区三区| 在线成人av网站| 日韩区在线观看| 精品奇米国产一区二区三区| 精品女同一区二区| 欧美精品一区二区三区很污很色的 | 激情综合色播五月| 美女视频免费一区| 国产乱人伦偷精品视频免下载| 国产一区二区日韩精品| 国产剧情一区二区三区| 国产超碰在线一区| 99这里只有精品| 色婷婷精品久久二区二区蜜臀av| 91精品1区2区| 欧美日韩大陆一区二区| 精品久久久久久久人人人人传媒| 精品国产免费人成电影在线观看四季 | 国产精品国产三级国产aⅴ原创| 日本一区二区三区在线不卡| 国产精品视频yy9299一区| 亚洲免费高清视频在线| 丝瓜av网站精品一区二区 | 2020国产精品| 日本一区二区视频在线| 亚洲靠逼com| 日本不卡视频在线| 成人免费毛片高清视频| 在线看日本不卡| 欧美成人一区二区三区在线观看| 国产午夜精品久久久久久免费视 | 91久久精品日日躁夜夜躁欧美| 欧美精品vⅰdeose4hd| 久久影院午夜论| 亚洲综合另类小说| 激情五月播播久久久精品| 色综合婷婷久久| 久久综合九色综合欧美98| 国产精品无码永久免费888| 亚洲女同ⅹxx女同tv| 午夜久久电影网| 国产成人在线视频播放| 欧美日韩精品欧美日韩精品一 | 亚洲一区二区在线播放相泽| 奇米在线7777在线精品| 北条麻妃国产九九精品视频| 日韩一区二区免费电影| 亚洲欧洲国产日本综合| 秋霞电影一区二区| 色哟哟精品一区| 久久久久久**毛片大全| 午夜av一区二区三区| 99麻豆久久久国产精品免费优播| 91麻豆精品国产自产在线| 成人欧美一区二区三区1314| 国产剧情av麻豆香蕉精品| 欧美日韩黄色影视| 中文在线免费一区三区高中清不卡| 日本视频在线一区| 在线观看国产91| 国产精品久久看| 国产suv精品一区二区883| 日韩亚洲欧美在线观看| 亚洲成人在线网站| 91天堂素人约啪| 国产精品白丝在线| 国产成人综合自拍| 久久综合九色综合97_久久久| 丝袜美腿亚洲综合| 欧美专区在线观看一区| 综合网在线视频| 成人视屏免费看| 国产精品精品国产色婷婷| 国产乱淫av一区二区三区| 日韩欧美视频在线| 青青草国产成人99久久| 欧美日韩高清一区二区| 一区二区三区色| 色婷婷av一区二区三区大白胸| 国产精品国产自产拍高清av王其| 国产不卡免费视频| 日本一区免费视频| 波多野结衣精品在线| 亚洲欧洲av一区二区三区久久| 成人激情视频网站| 中文字幕一区二区不卡|