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

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

?? flashdev.c

?? 可移到ucos上的文件系統
?? C
字號:
/* This file contains all of the flash support code that does not need
   to be relocated to RAM.  Two separate files (flash.c and flashpic.c)
   are maintained because under certain compilers, they may need to be
   compiled with different options to be made position independent.

   NOTE: THESE FUNCTIONS ARE NOT RE-ENTRANT!!!  All of the FLASH routines
   assume they can copy themselves into the array FlashFunc[]; hence, only
   one operation can be active at any time.
*/
#include "cpu.h"
#include "flashdev.h"
#include "flash.h"
#include "config.h"
#include "genlib.h"

#if INCLUDE_FLASH

typedef unsigned char uchar;
typedef unsigned short ushort;
typedef unsigned long ulong;
typedef volatile unsigned char vuchar;
typedef volatile unsigned short vushort;
typedef volatile unsigned long vulong;
typedef volatile unsigned int vuint;
typedef volatile int vint;

/*m
extern int FLASHERASE();
extern int ENDFLASHERASE();
extern int FLASHWRITE();
extern int ENDFLASHWRITE();
extern int FLASHEWRITE();
extern int ENDFLASHEWRITE();
extern int FLASHTYPE();
extern int ENDFLASHTYPE();
*/
#define printf mprintf

extern int FLASHERASE(struct flashinfo *,int);
extern int ENDFLASHERASE(void);
extern int FLASHWRITE(struct flashinfo *,unsigned char *,unsigned char *,long);
extern int ENDFLASHWRITE(void);
extern int FLASHEWRITE(struct flashinfo *,unsigned char *,unsigned char *,long);
extern int ENDFLASHEWRITE(void);
extern int FLASHTYPE(struct flashinfo *);
extern int ENDFLASHTYPE(void);

/* FlashXXXFbuf[]:
   These arrays will contain the flash operation function that is executing.
   Recall that to operate on the flash, you cannot be executing out of it.
   The flash functions are copied here, then executed through the function
   pointer flashfunc which is set to point to FlashFunc.
*/
ulong    FlashTypeFbuf[FLASHFUNCSIZE];
ulong    FlashEraseFbuf[FLASHFUNCSIZE];
ulong    FlashWriteFbuf[FLASHFUNCSIZE];
ulong    FlashEwriteFbuf[FLASHFUNCSIZE];

/*
extern int flashtype(struct flashinfo *);
extern int flasherase(struct flashinfo *,int);
extern int flashwrite(struct flashinfo *,unsigned char *,unsigned char *,long);
extern int flashewrite(struct flashinfo *,unsigned char *,unsigned char *,long);
*/

/* FlashBank[]:
   This structure contains all of the information that must be made available
   to the various flash operation commands.  It is initialized by flashtype()
   and used thereafter by the other operations.
*/
struct	flashinfo FlashBank[FLASHBANKS];

/* FlashNamId[]:
   Used to correlate between the ID and a string representing the name
   of the flash device.
*/
struct flashdesc FlashNamId[] = {
	{ SGS29F040,	"SGS-29F040" },
	{ SGS29LV040,	"SGS-29LV040" },
	{ AMD29F040,	"AMD-29F040" },
	{ AMD29F010,	"AMD-29F010" },
	{ AMD29LV040,	"AMD-29LV040" }
};

struct sectorinfo sinfo040[8];
int FlashBankInit(struct flashinfo *,int);
extern int sectorProtect();

/* FlashInit():
   Initialize data structures for each bank of flash...
*/
int
FlashInit(void)
{
	int		snum;
	struct	flashinfo *fbnk;

	snum = 0;
	FlashCurrentBank = 0;

	/* Copy functions to ram space... */
	/* Note that this MUST be done when cache is disabled to assure that */
	/* the RAM is occupied by the designated block of code. */

	if (flashopload((ulong *)FLASHTYPE,(ulong *)ENDFLASHTYPE,
		FlashTypeFbuf,sizeof(FlashTypeFbuf)) < 0)
		return(-1);
	if (flashopload((ulong *)FLASHERASE,(ulong *)ENDFLASHERASE,
		FlashEraseFbuf,sizeof(FlashEraseFbuf)) < 0)
		return(-1);
	if (flashopload((ulong *)FLASHEWRITE,(ulong *)ENDFLASHEWRITE,
		FlashEwriteFbuf,sizeof(FlashEwriteFbuf)) < 0)
		return(-1);
	if (flashopload((ulong *)FLASHWRITE,(ulong *)ENDFLASHWRITE,
		FlashWriteFbuf,sizeof(FlashWriteFbuf)) < 0)
		return(-1);


	fbnk = &FlashBank[0];
	fbnk->base = (unsigned char *)FLASH_BANK0_BASE_ADDR;
	fbnk->width = FLASH_BANK0_WIDTH;
	
	//mfbnk->fltype = (int(*)())FlashTypeFbuf;			/* flashtype(). */
	//mfbnk->flerase = (int(*)())FlashEraseFbuf;		/* flasherase(). */
	//mfbnk->flwrite = (int(*)())FlashWriteFbuf;		/* flashwrite(). */
	//mfbnk->flewrite = (int(*)())FlashEwriteFbuf;		/* flashewrite(). */

	fbnk->fltype = (int(*)(struct flashinfo *))FlashTypeFbuf;			/* flashtype(). */
	fbnk->flerase = (int(*)(struct flashinfo *,int))FlashEraseFbuf;		/* flasherase(). */
	fbnk->flwrite = (int(*)(struct flashinfo *,unsigned char *,unsigned char *,long))FlashWriteFbuf;		/* flashwrite(). */
	fbnk->flewrite = (int(*)(struct flashinfo *,unsigned char *,unsigned char *,long))FlashEwriteFbuf;		/* flashewrite(). */
	
	fbnk->sectors = sinfo040;
	snum += FlashBankInit(fbnk,snum);
	sectorProtect(FLASH_PROTECT_RANGE,1);
	return(0);
}

/* FlashBankInit():
   Initialize flash structures and determine flash device type.
*/
int
FlashBankInit(struct flashinfo *fbnk, int snum)
{
	int	i, ssize;


	flashtype(fbnk);
	switch(fbnk->id) {
		case AMD29LV040:
		case SGS29LV040:
		case SGS29F040:
		case AMD29F040:
			fbnk->sectorcnt = 8;
			ssize = 0x10000 * fbnk->width;
			fbnk->end = fbnk->base + (0x80000 * fbnk->width) - 1;
			break;
		case AMD29F010:
			fbnk->sectorcnt = 8;
			ssize = 0x4000 * fbnk->width;
			fbnk->end = fbnk->base + (0x20000 * fbnk->width) - 1;
			break;
		default:
			printf("Flash device id 0x%lx unknown\n", fbnk->id);
			return(-1);
	}
	for(i=0;i<fbnk->sectorcnt;i++) {
		fbnk->sectors[i].snum = snum+i;
		fbnk->sectors[i].size = ssize;
		fbnk->sectors[i].begin = fbnk->base + (i*ssize);
		fbnk->sectors[i].end = fbnk->sectors[i].begin + ssize - 1;
		fbnk->sectors[i].protected = 0;
	}
	return(8);
}

#endif

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
国产欧美一区二区精品性| 欧美顶级少妇做爰| 久久激情五月激情| 无吗不卡中文字幕| 天天射综合影视| 午夜精品久久久久久久久久| 亚洲尤物在线视频观看| 亚洲一区二区黄色| 无码av免费一区二区三区试看| 亚洲午夜精品在线| 天天综合色天天综合| 日韩av在线播放中文字幕| 蜜桃av一区二区三区电影| 国内精品国产三级国产a久久| 国精产品一区一区三区mba视频| 精品一区二区综合| 国产在线视频不卡二| 成人免费观看av| 在线免费av一区| 日韩一区二区三区观看| 久久美女艺术照精彩视频福利播放| 久久这里只精品最新地址| 国产精品久久久久婷婷| 亚洲激情校园春色| 日韩不卡免费视频| 国产黑丝在线一区二区三区| av一二三不卡影片| 欧美美女喷水视频| 久久免费视频一区| 亚洲欧美国产三级| 青草国产精品久久久久久| 国产成人在线观看免费网站| 色综合视频一区二区三区高清| 欧美色图天堂网| 久久久噜噜噜久久人人看| 亚洲免费视频成人| 激情欧美日韩一区二区| 91网站黄www| 777色狠狠一区二区三区| 久久久久久亚洲综合影院红桃| 亚洲欧美一区二区三区极速播放 | 中文字幕在线不卡视频| 亚洲午夜久久久久久久久久久 | 日韩av一区二区三区四区| 国产精品88888| 欧美日韩亚洲综合在线| 国产欧美日本一区二区三区| 亚洲福利电影网| 不卡的av在线播放| 精品剧情v国产在线观看在线| 亚洲精品免费看| 国产91富婆露脸刺激对白| 欧美一区二区黄| 亚洲午夜在线视频| bt欧美亚洲午夜电影天堂| 久久综合九色综合欧美就去吻| 亚洲国产视频一区| 99久久综合精品| 亚洲人成精品久久久久久| 国产综合色产在线精品| 欧美人妇做爰xxxⅹ性高电影| 国产精品久久久久久亚洲毛片| 免费在线看成人av| 欧美理论片在线| 亚洲网友自拍偷拍| 日本韩国欧美一区二区三区| 国产精品蜜臀av| 国产精品一区二区在线观看不卡| 日韩精品专区在线影院观看| 日韩精品电影在线观看| 欧美日韩国产bt| 亚洲成人av电影在线| 欧美午夜影院一区| 亚洲成av人片一区二区三区| 色94色欧美sute亚洲13| 亚洲最色的网站| 欧美亚洲动漫另类| 亚洲一区二区成人在线观看| 欧美午夜精品理论片a级按摩| 亚洲欧美二区三区| 日本道色综合久久| 亚洲成人综合视频| 在线综合视频播放| 日本午夜精品视频在线观看| 91精品国产一区二区三区香蕉 | 日韩精品一区二区三区四区| 美腿丝袜亚洲一区| 亚洲精品一区二区三区在线观看| 国产真实乱偷精品视频免| 亚洲一区二区在线观看视频 | 欧美日韩高清影院| 日韩中文欧美在线| 欧美精品一区二区三区很污很色的 | 精品在线你懂的| 欧美韩国日本综合| 91视频一区二区三区| 亚洲国产综合91精品麻豆| 91精品国产综合久久福利软件 | 久久久久国产精品人| 国产成人午夜电影网| 亚洲欧美在线aaa| 欧美午夜精品理论片a级按摩| 蜜桃视频在线观看一区| 亚洲国产精品精华液2区45| 色婷婷av一区二区三区之一色屋| 日日夜夜一区二区| 精品成a人在线观看| aaa欧美大片| 五月激情综合网| 国产日韩欧美精品综合| 日本韩国精品一区二区在线观看| 图片区小说区国产精品视频| 337p粉嫩大胆色噜噜噜噜亚洲| 不卡高清视频专区| 日韩二区在线观看| 亚洲欧洲成人精品av97| 欧美一区二区三区免费视频| 成人高清免费观看| 免费看黄色91| 一二三区精品视频| 久久久午夜精品| 欧美挠脚心视频网站| 成人久久久精品乱码一区二区三区| 亚洲一区二区在线视频| 国产欧美日韩视频在线观看| 51精品国自产在线| 91视频精品在这里| 粉嫩绯色av一区二区在线观看| 三级亚洲高清视频| 亚洲精品国产成人久久av盗摄| 久久日韩精品一区二区五区| 欧美视频中文一区二区三区在线观看| 国产精品一区一区| 蜜乳av一区二区| 性感美女久久精品| 一区二区三区 在线观看视频| 国产午夜精品一区二区三区四区| 欧美麻豆精品久久久久久| 成人午夜看片网址| 国产乱码精品一区二区三区五月婷| 亚洲v中文字幕| 亚洲精品伦理在线| 国产精品国产馆在线真实露脸 | 石原莉奈在线亚洲二区| 亚洲综合小说图片| 亚洲日本在线天堂| 国产欧美精品一区二区色综合朱莉 | 色婷婷综合激情| 91网站黄www| 色激情天天射综合网| 一本久久综合亚洲鲁鲁五月天 | 国产精品91一区二区| 国产毛片精品国产一区二区三区| 欧美96一区二区免费视频| 日韩激情一区二区| 香蕉成人伊视频在线观看| 亚洲妇女屁股眼交7| 亚洲va韩国va欧美va| 亚洲国产综合91精品麻豆| 亚洲一区二区三区国产| 亚洲一二三四区不卡| 亚洲国产精品麻豆| 五月激情综合网| 美女www一区二区| 紧缚捆绑精品一区二区| 国产麻豆一精品一av一免费| 国产福利一区二区三区视频| 国产成人8x视频一区二区| av激情成人网| 欧美在线你懂得| 日韩一区二区三区在线| 久久久久久久久蜜桃| 亚洲欧美在线高清| 亚洲夂夂婷婷色拍ww47| 美女网站视频久久| 国产suv一区二区三区88区| 92精品国产成人观看免费| 欧美日韩国产bt| 久久精品人人做人人爽97| 亚洲三级在线免费观看| 婷婷一区二区三区| 国产麻豆日韩欧美久久| 91精品福利视频| 日韩精品一区二区三区视频| 国产精品美日韩| 日韩电影在线观看网站| 高清在线不卡av| 4438x亚洲最大成人网| 亚洲国产成人午夜在线一区| 亚洲一区二区三区中文字幕| 国内精品伊人久久久久影院对白| 91天堂素人约啪| 欧美成人女星排名| 亚洲欧美另类在线| 国产最新精品免费| 欧美私模裸体表演在线观看| 国产亚洲综合性久久久影院| 性欧美疯狂xxxxbbbb| 99国产精品久久| 欧美精品一区二区三区很污很色的 |