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

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

?? flash.c

?? 友善mini2440嵌入式
?? C
字號:
/* * (C) Copyright 2000-2004 * Wolfgang Denk, DENX Software Engineering, wd@denx.de. * * See file CREDITS for list of people who contributed to this * project. * * This program is free software; you can redistribute it and/or * modify it under the terms of the GNU General Public License as * published by the Free Software Foundation; either version 2 of * the License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 59 Temple Place, Suite 330, Boston, * MA 02111-1307 USA */#include <common.h>#include <nios.h>flash_info_t flash_info[CFG_MAX_FLASH_BANKS];/*--------------------------------------------------------------------*/void flash_print_info (flash_info_t * info){	int i, k;	unsigned long size;	int erased;	volatile unsigned char *flash;	printf ("  Size: %ld KB in %d Sectors\n",		info->size >> 10, info->sector_count);	printf ("  Sector Start Addresses:");	for (i = 0; i < info->sector_count; ++i) {		/* Check if whole sector is erased */		if (i != (info->sector_count - 1))			size = info->start[i + 1] - info->start[i];		else			size = info->start[0] + info->size - info->start[i];		erased = 1;		flash = (volatile unsigned char *) info->start[i];		for (k = 0; k < size; k++) {			if (*flash++ != 0xff) {				erased = 0;				break;			}		}		/* Print the info */		if ((i % 5) == 0)			printf ("\n   ");		printf (" %08lX%s%s", info->start[i], erased ? " E" : "  ",			info->protect[i] ? "RO " : "   ");	}	printf ("\n");}/*-------------------------------------------------------------------*/int flash_erase (flash_info_t * info, int s_first, int s_last){	volatile CFG_FLASH_WORD_SIZE *addr = (CFG_FLASH_WORD_SIZE *) (info->start[0]);	volatile CFG_FLASH_WORD_SIZE *addr2;	int prot, sect;	unsigned oldpri;	ulong start;	/* Some sanity checking */	if ((s_first < 0) || (s_first > s_last)) {		printf ("- no sectors to erase\n");		return 1;	}	prot = 0;	for (sect = s_first; sect <= s_last; ++sect) {		if (info->protect[sect]) {			prot++;		}	}	if (prot) {		printf ("- Warning: %d protected sectors will not be erased!\n",			prot);	} else {		printf ("\n");	}#ifdef DEBUG	for (sect = s_first; sect <= s_last; sect++) {		printf("- Erase: Sect: %i @ 0x%08x\n", sect,  info->start[sect]);	}#endif	/* NOTE: disabling interrupts on Nios can be very bad since it	 * also disables the LO_LIMIT exception. It's better here to	 * set the interrupt priority to 3 & restore it when we're done.	 */	oldpri = ipri (3);	/* It's ok to erase multiple sectors provided we don't delay more	 * than 50 usec between cmds ... at which point the erase time-out	 * occurs. So don't go and put printf() calls in the loop ... it	 * won't be very helpful ;-)	 */	for (sect = s_first; sect <= s_last; sect++) {		if (info->protect[sect] == 0) {	/* not protected */			addr2 = (CFG_FLASH_WORD_SIZE *) (info->start[sect]);			*addr = 0xaa;			*addr = 0x55;			*addr = 0x80;			*addr = 0xaa;			*addr = 0x55;			*addr2 = 0x30;			/* Now just wait for 0xff & provide some user			 * feedback while we wait. Here we have to grant			 * timer interrupts. Otherwise get_timer() can't			 * work right. */			ipri(oldpri);			start = get_timer (0);			while (*addr2 != 0xff) {				udelay (1000 * 1000);				putc ('.');				if (get_timer (start) > CFG_FLASH_ERASE_TOUT) {					printf ("timeout\n");					return 1;				}			}			oldpri = ipri (3); /* disallow non important irqs again */		}	}	printf ("\n");	/* Restore interrupt priority */	ipri (oldpri);	return 0;}/*----------------------------------------------------------------------- * Copy memory to flash, returns: * 0 - OK * 1 - write timeout * 2 - Flash not erased */int write_buff (flash_info_t * info, uchar * src, ulong addr, ulong cnt){	vu_char *cmd = (vu_char *) info->start[0];	vu_char *dst = (vu_char *) addr;	unsigned char b;	unsigned oldpri;	ulong start;	while (cnt) {		/* Check for sufficient erase */		b = *src;		if ((*dst & b) != b) {			printf ("%02x : %02x\n", *dst, b);			return (2);		}		/* Disable interrupts other than window underflow		 * (interrupt priority 2)		 */		oldpri = ipri (3);		*cmd = 0xaa;		*cmd = 0x55;		*cmd = 0xa0;		*dst = b;		/* Verify write */		start = get_timer (0);		while (*dst != b) {			if (get_timer (start) > CFG_FLASH_WRITE_TOUT) {				ipri (oldpri);				return 1;			}		}		dst++;		src++;		cnt--;		ipri (oldpri);	}	return (0);}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
日韩欧美国产综合一区| 93久久精品日日躁夜夜躁欧美| 欧美三级电影在线看| 亚洲色图制服诱惑| 一本大道久久a久久综合婷婷| 亚洲丝袜另类动漫二区| 91黄视频在线| 日本最新不卡在线| 久久久亚洲精品石原莉奈| av一区二区三区在线| 亚洲蜜臀av乱码久久精品蜜桃| 欧美性生活影院| 久久精品国产一区二区| 久久精品夜色噜噜亚洲aⅴ| 不卡视频一二三| 亚洲一区二区三区视频在线播放| 制服丝袜亚洲播放| 国产综合成人久久大片91| 中文字幕一区二区三区精华液 | 欧美日韩成人高清| 美女mm1313爽爽久久久蜜臀| 久久精品视频在线免费观看| 色偷偷久久一区二区三区| 日韩高清不卡一区二区三区| 国产清纯在线一区二区www| 色猫猫国产区一区二在线视频| 日韩精品亚洲专区| 中文字幕欧美激情一区| 欧美日韩免费一区二区三区 | 欧美久久婷婷综合色| 国产真实乱对白精彩久久| 亚洲精品午夜久久久| 欧美一区二区视频在线观看2020| 国产91清纯白嫩初高中在线观看| 亚洲国产日韩综合久久精品| 久久五月婷婷丁香社区| 欧美三级电影一区| 国产91丝袜在线播放| 日本三级亚洲精品| 亚洲综合小说图片| 国产精品蜜臀av| 欧美成人性福生活免费看| jizzjizzjizz欧美| 极品少妇xxxx精品少妇| 亚洲国产日韩精品| 国产精品色哟哟| 精品国产露脸精彩对白| 欧美中文一区二区三区| 成人动漫一区二区三区| 蜜臀久久99精品久久久画质超高清| 日韩美女视频一区| 中文字幕乱码日本亚洲一区二区| 91精品国产欧美一区二区| 色综合咪咪久久| 99热国产精品| 国产成人精品影视| 黄色成人免费在线| 日本免费新一区视频| 亚洲成av人片| 亚洲主播在线播放| 最新中文字幕一区二区三区| 国产欧美一区二区精品秋霞影院| 日韩欧美三级在线| 欧美高清性hdvideosex| 欧美三区在线视频| 在线看日韩精品电影| av中文字幕亚洲| jlzzjlzz欧美大全| 91视频免费看| 成人亚洲精品久久久久软件| 国内精品伊人久久久久影院对白| 日本人妖一区二区| 免费高清视频精品| 日本91福利区| 精品一区二区三区视频在线观看| 日韩国产在线观看| 日韩精品电影在线| 欧美aⅴ一区二区三区视频| 亚洲成av人综合在线观看| 午夜不卡在线视频| 日韩国产高清影视| 久久国产精品色婷婷| 国产制服丝袜一区| 成人在线综合网站| 本田岬高潮一区二区三区| 91在线观看下载| 91国产视频在线观看| 欧美日韩精品欧美日韩精品一 | 亚洲免费大片在线观看| 亚洲一二三区在线观看| 亚洲一二三四在线观看| 日韩激情视频网站| 国产麻豆一精品一av一免费 | 久久er精品视频| 成人免费看片app下载| 99r精品视频| 欧美三级三级三级爽爽爽| 欧美大尺度电影在线| 久久久91精品国产一区二区精品| 国产精品视频在线看| 亚洲精品乱码久久久久久日本蜜臀| 亚洲国产视频直播| 九色porny丨国产精品| 成人av网在线| 欧美乱妇一区二区三区不卡视频| 欧美大片日本大片免费观看| 国产精品萝li| 日本一区中文字幕| 懂色一区二区三区免费观看| 日本道精品一区二区三区| 欧美一区二区三级| 国产精品色婷婷| 蜜桃视频在线一区| 99久久婷婷国产综合精品电影 | 国产精品每日更新| 午夜精彩视频在线观看不卡| 国产综合久久久久久久久久久久| 91丨国产丨九色丨pron| 91精品国产综合久久精品性色| 国产欧美精品一区二区三区四区| 一区二区三区毛片| 精品一区二区影视| 欧美午夜精品久久久久久超碰 | 北条麻妃国产九九精品视频| 91精品午夜视频| 亚洲欧洲av在线| 久久精品99国产精品| 一本一道波多野结衣一区二区| 欧美一区二区黄| 一区二区三区在线不卡| 国产精品一卡二卡| 91麻豆精品国产综合久久久久久| 国产精品乱码妇女bbbb| 久久精品国产亚洲aⅴ| 日本韩国精品一区二区在线观看| 欧美成人午夜电影| 日一区二区三区| 一本久久a久久免费精品不卡| 国产欧美日韩视频在线观看| 日韩av电影天堂| 91精彩视频在线| 亚洲欧美日韩在线不卡| 国产精品一二三四| 日韩欧美激情四射| 日本中文字幕一区二区有限公司| 91麻豆6部合集magnet| 欧美国产乱子伦| 国产不卡在线视频| 久久久亚洲精品石原莉奈| 日本成人在线看| 欧美在线观看视频在线| 亚洲欧美成人一区二区三区| 国产自产视频一区二区三区| 日韩视频123| 青青草国产精品亚洲专区无| 欧美性生活一区| 亚洲国产精品久久人人爱| 91国产精品成人| 亚洲黄色录像片| 色综合天天综合网天天狠天天| 中文字幕精品综合| 成人性生交大片免费看在线播放 | 国产日韩欧美综合在线| 九九视频精品免费| 91 com成人网| 日韩激情一区二区| 精品欧美乱码久久久久久1区2区 | 国产成人亚洲综合a∨猫咪| 精品盗摄一区二区三区| 久久成人羞羞网站| 久久色在线观看| 国产精品88av| 国产精品久久久久久久久久免费看 | 日本午夜一本久久久综合| 91精品国产色综合久久不卡电影 | 亚洲欧洲另类国产综合| aa级大片欧美| 综合激情成人伊人| 欧美色涩在线第一页| 日韩电影在线免费观看| 欧美久久久久久久久久| 免费看日韩a级影片| 精品日韩av一区二区| 国产成人av一区二区三区在线| 中文字幕第一区第二区| 91丨九色丨蝌蚪富婆spa| 亚洲国产欧美在线| 日韩精品中文字幕在线不卡尤物 | 国产精品午夜电影| 色综合久久久久综合体桃花网| 亚洲一区视频在线| 精品久久人人做人人爱| 成人丝袜18视频在线观看| 悠悠色在线精品| 日韩一二三四区| 大胆欧美人体老妇| 一区二区三区久久| 欧美精品一区二区三区在线| 99久久婷婷国产综合精品| 视频一区中文字幕|