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

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

?? i28f128.c

?? IXP425的BSP代碼
?? C
字號:
#include <stdio.h>#include "tffs/flflash.h"#include "tffs/backgrnd.h"/* support 28f320 28f640 28f128*/#undef CFI_DEBUG #ifdef CFI_DEBUG#define DEBUG_PRINT    printf#else#undef DEBUG_PRINT#endif/* JEDEC ids for this MTD */#define I28F128_FLASH		0x18 		/* device code 28F128 */#define I28F640_FLASH		0x17 		/* device code 28F640 */#define I28F320_FLASH		0x16 		/* device code 28F320 */#define SETUP_ERASE	0x2020#define SETUP_WRITE	0x4040#define CLEAR_STATUS	0x5050#define READ_STATUS	0x7070#define READ_ID 	0x9090#define SUSPEND_ERASE	0xb0b0#define CONFIRM_ERASE	0xd0d0#define	RESUME_ERASE	0xd0d0#define READ_ARRAY	0xffff#define STAT_WSMS	0x0080/* Defintion for Bit macro */#ifndef BIT    #define BIT(bitNumber)		(1 << (bitNumber))#endif /* BIT */static FLStatus i28f128Write(FLFlash vol,			   CardAddress address,			   const void FAR1 *buffer,			   int length,			   FLBoolean overwrite){	unsigned long writeTimeout;	int           i;	FlashWPTR flashPtr;	FlashWPTR ptr;	STATUS retVal;	#ifdef DEBUG_PRINT	DEBUG_PRINT("Debug: Entering i28f128Write function.\n");	DEBUG_PRINT("Debug: address=0x%x, length=%d, overwrite=%d\n", address, length, overwrite);#endif		if ( flWriteProtected(vol.socket) )		return flWriteProtect;			if ((length & 1) || (address & 1))	/* Only write words on word-boundary */		return flBadParameter;			flashPtr = (FlashWPTR) flMap(vol.socket, address);	/* Set timeout to 5 seconds from now */	writeTimeout = flMsecCounter + 5000;	retVal = OK;	ptr = flashPtr;	for (i = 0; i < length ; i += 2, ptr++)	{			unsigned short value;				value = *((FlashWPTR)(buffer + i));				*ptr = SETUP_WRITE;		*ptr = value;				do		{			/*ptr = READ_STATUS;*/			if (flMsecCounter > writeTimeout)			{				retVal = ERROR;				*ptr = CLEAR_STATUS;				break;			}		}while((*ptr & STAT_WSMS) != STAT_WSMS);		if (retVal == ERROR)		{			*ptr = READ_ARRAY;			break;		}					if (*ptr & (BIT(5) | BIT(4) | BIT(3) | BIT(1)))		{			retVal = ERROR;			*ptr = CLEAR_STATUS;		}		if (retVal == ERROR)		{			*ptr = READ_ARRAY;			break;		}				*ptr = READ_ARRAY;	}	if (retVal == ERROR)	{#ifdef DEBUG_PRINT		DEBUG_PRINT("Debug: In i28f128Write, write failed\n");#endif		return flWriteFault;	}			if (tffscmp((void FAR0 *)flashPtr, buffer, length))	{#ifdef DEBUG_PRINT		DEBUG_PRINT("Debug: In i28f128Write, write  data error\n");		{			int i;			/*dump data*/			for (i = 0; i < length/2; i++)			{				unsigned short data;				data = *((unsigned short*)(buffer + i * 2));								DEBUG_PRINT("%x==>%x\n", data, *(flashPtr+i));			}		}#endif		return flWriteFault;	}#ifdef DEBUG_PRINT		DEBUG_PRINT("Debug: In i28f128Write, erase OK\n");#endif	return flOK;	}static FLStatus i28f128Erase (FLFlash  vol,                                int      firstBlock,                                int      numOfBlocks){	unsigned long writeTimeout;	FlashWPTR ptr;	int        i;	STATUS retVal;	#ifdef DEBUG_PRINT	DEBUG_PRINT("Debug: Entering i28f128Erase function.\n");	DEBUG_PRINT("Debug: firstblock=%d, numOfBlocks=%d.\n", firstBlock, numOfBlocks);#endif	if ( flWriteProtected(vol.socket) )		return flWriteProtect;	/* Set timeout to 5 seconds from now */	writeTimeout = flMsecCounter + 5000;	retVal = OK;		for (i = 0;  i < numOfBlocks;  i++)	{		ptr = (FlashWPTR) flMap(vol.socket, (firstBlock + i) * vol.erasableBlockSize);		#ifdef DEBUG_PRINT	DEBUG_PRINT("Debug: Erase ptr=0x%x.\n", ptr);#endif						*ptr = SETUP_ERASE;		*ptr = CONFIRM_ERASE;				do		{			if (flMsecCounter > writeTimeout)			{				retVal = ERROR;				*ptr = CLEAR_STATUS;				break;			}		}while((*ptr & STAT_WSMS) != STAT_WSMS);		if (retVal == ERROR)		{			*ptr = READ_ARRAY;			break;		}				if (*ptr & (BIT(5) | BIT(4) | BIT(3) | BIT(1)))		{			retVal = ERROR;			*ptr = CLEAR_STATUS;		}		if (retVal == ERROR)		{			*ptr = READ_ARRAY;			break;		}				*ptr = READ_ARRAY;	}		if (retVal == ERROR)	{#ifdef DEBUG_PRINT		DEBUG_PRINT("Debug: In i28f128Erase, erase failed\n");#endif		return flWriteFault;	}#ifdef DEBUG_PRINT		DEBUG_PRINT("Debug: In i28f128Erase, erase OK\n");#endif	return flOK;	}FLStatus i28f128Identify(FLFlash vol){	FlashWPTR flashPtr;#ifdef DEBUG_PRINT	DEBUG_PRINT("Debug: Entering i28f128Identify.\n");#endif	flSetWindowBusWidth(vol.socket,16);/* use 16-bits */	flSetWindowSpeed(vol.socket,120);  /* 120 nsec. */	flSetWindowSize(vol.socket,2);	/* 8 KBytes */	flashPtr = (FlashWPTR) flMap(vol.socket,0);  	flashPtr[0] = READ_ARRAY;	flashPtr[1] = READ_ID;	switch (flashPtr[1])	{	case I28F640_FLASH:		vol.type = I28F640_FLASH;		vol.chipSize = 0x800000;#ifdef DEBUG_PRINT		DEBUG_PRINT("Debug: Detect Intel 28f640\n");#endif			break;		case I28F320_FLASH:		vol.type = I28F320_FLASH;		vol.chipSize = 0x400000;#ifdef DEBUG_PRINT		DEBUG_PRINT("Debug: Detect Intel 28f320\n");#endif			break;	case I28F128_FLASH:		vol.type = I28F128_FLASH;		vol.chipSize = 0x1000000;#ifdef DEBUG_PRINT		DEBUG_PRINT("Debug: Detect Intel 28f128\n");#endif			break;	default:#ifdef DEBUG_PRINT		DEBUG_PRINT("Debug: Can't detect flash type\n");#endif			vol.type = NOT_FLASH;#ifdef DEBUG_PRINT		DEBUG_PRINT("Debug: failed to identify 16-bit Intel media.\n");#endif		return flUnknownMedia; 	/* not ours */  		}  		flashPtr[0] = READ_ARRAY;	vol.interleaving = 1;	vol.noOfChips = 1;	vol.erasableBlockSize = 128*1024;	/* Register our flash handlers */	vol.write = i28f128Write;	vol.erase = i28f128Erase;  #ifdef DEBUG_PRINT  	DEBUG_PRINT("Debug: identified 16-bit Intel media.\n");#endif  	return flOK;}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
成人精品免费视频| av网站免费线看精品| 国产精品欧美经典| 欧美一区二区三区四区高清| 成人亚洲精品久久久久软件| 天天色综合天天| 日本一二三四高清不卡| 91精品婷婷国产综合久久竹菊| 成人精品免费视频| 韩国成人在线视频| 香蕉乱码成人久久天堂爱免费| 国产精品美日韩| 精品成人佐山爱一区二区| 欧美嫩在线观看| 91视频国产观看| 国产成人午夜99999| 日本成人中文字幕在线视频| 一区二区三区四区不卡视频| 国产精品网曝门| 久久亚洲精品国产精品紫薇| 欧美日韩国产高清一区二区三区| 91网站在线播放| 成人激情小说乱人伦| 狠狠色丁香九九婷婷综合五月| 五月天国产精品| 亚洲一区二区三区三| 亚洲少妇最新在线视频| 久久久亚洲高清| 久久久一区二区三区| 欧美α欧美αv大片| 日韩三级免费观看| 4438x亚洲最大成人网| 色美美综合视频| 色综合天天性综合| 91小视频在线| 色av成人天堂桃色av| 91美女视频网站| 99精品视频在线观看免费| 丁香网亚洲国际| 成人免费毛片片v| 成人av先锋影音| 91视频免费看| 欧美在线free| 欧美日韩国产一级片| 欧美日韩精品免费| 91精品国产高清一区二区三区| 亚洲国产精品成人综合色在线婷婷| 成人午夜免费av| 高清国产一区二区| 99久久婷婷国产综合精品电影 | 国产在线精品国自产拍免费| 捆绑调教美女网站视频一区| 激情欧美日韩一区二区| 国产精品一区二区91| 成人免费视频app| 色婷婷综合久久久中文字幕| 欧美亚一区二区| 欧美一区二区黄| 久久影院电视剧免费观看| 久久久九九九九| 一区在线播放视频| 一区二区三区四区蜜桃| 日本伊人午夜精品| 国产美女娇喘av呻吟久久| 暴力调教一区二区三区| 在线观看视频91| 日韩欧美亚洲国产精品字幕久久久| 精品福利在线导航| 中文字幕在线播放不卡一区| 亚洲国产一区二区视频| 久久精品国产一区二区| 国产不卡在线一区| 欧美三级欧美一级| 欧美精品一区二区三区高清aⅴ| 欧美激情一区三区| 首页亚洲欧美制服丝腿| 国产经典欧美精品| 欧美综合欧美视频| 久久久青草青青国产亚洲免观| 国产精品久久久久久久第一福利| 亚洲成av人片在线观看无码| 久久精品国产一区二区| 91麻豆免费看片| 日韩免费在线观看| 亚洲欧洲中文日韩久久av乱码| 奇米在线7777在线精品| 不卡在线视频中文字幕| 91精品久久久久久久99蜜桃| 中文字幕免费在线观看视频一区| 亚洲成年人影院| 成人免费av网站| 7777女厕盗摄久久久| 亚洲欧洲成人精品av97| 蜜桃精品在线观看| 在线观看欧美日本| 久久久久亚洲蜜桃| 日本成人超碰在线观看| 色8久久精品久久久久久蜜| 久久无码av三级| 日韩中文字幕av电影| 成人v精品蜜桃久久一区| 国产九九视频一区二区三区| 男女性色大片免费观看一区二区| 9l国产精品久久久久麻豆| 欧美va在线播放| 亚洲午夜一区二区| 91亚洲国产成人精品一区二区三| 精品国产电影一区二区| 日韩福利电影在线观看| 欧美中文字幕一二三区视频| 国产精品免费久久| 国产精一区二区三区| 日韩免费电影网站| 天涯成人国产亚洲精品一区av| 91丨九色丨蝌蚪丨老版| 中国色在线观看另类| 国产麻豆视频精品| 久久亚洲综合色一区二区三区| 欧美aa在线视频| 欧美日韩精品三区| 亚洲成a人v欧美综合天堂下载 | 亚洲欧美日韩一区二区 | 国产欧美日本一区视频| 精彩视频一区二区| 欧美一区二区久久久| 日韩va欧美va亚洲va久久| 欧美三级日韩三级| 亚洲午夜激情av| 日本韩国一区二区| 一区二区三区在线视频观看58| 91毛片在线观看| 一区二区三区资源| 色一情一伦一子一伦一区| 一区二区三区中文字幕电影 | 欧美精品一区二区三区高清aⅴ | 综合中文字幕亚洲| www.欧美日韩国产在线| 国产精品乱码人人做人人爱| 成人动漫一区二区在线| 国产精品毛片a∨一区二区三区| 成人av在线一区二区| 亚洲欧美一区二区视频| 色综合久久综合网97色综合| 一区二区三区精品视频| 欧美三级欧美一级| 免费在线成人网| 26uuu亚洲综合色| 岛国一区二区在线观看| 国产精品成人免费| 色综合一个色综合| 亚洲成人av在线电影| 日韩久久免费av| 成人午夜精品一区二区三区| 国产精品国产a| 欧美日韩一区在线| 久久精品免费观看| 国产精品免费视频网站| 日本韩国欧美一区| 蜜桃视频第一区免费观看| 久久精品免费在线观看| 99久久精品国产麻豆演员表| 一区二区三区在线免费观看 | 久久久久久99久久久精品网站| 成人免费观看av| 亚洲成av人片www| 精品蜜桃在线看| 亚洲影院久久精品| 91免费版在线看| 天天综合网 天天综合色| xnxx国产精品| 一本大道久久a久久精二百| 日韩激情一二三区| 欧美国产丝袜视频| 欧美日韩一级视频| 国产精品1024| 五月天一区二区三区| 欧美精品一区在线观看| 97se亚洲国产综合自在线不卡 | 成人听书哪个软件好| 一区二区三区国产豹纹内裤在线 | 中文字幕亚洲区| 欧美伦理电影网| 成人网页在线观看| 日韩影视精彩在线| 亚洲国产高清在线观看视频| 欧美裸体一区二区三区| 成人免费高清视频| 日本亚洲视频在线| 国产精品美女一区二区在线观看| 欧美高清视频不卡网| 粉嫩嫩av羞羞动漫久久久| 亚洲国产欧美一区二区三区丁香婷| 久久麻豆一区二区| 在线观看91精品国产麻豆| av在线播放不卡| 国产美女精品一区二区三区| 亚洲福利视频三区| 国产精品福利一区| 久久久精品人体av艺术| 欧美裸体bbwbbwbbw|