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

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關(guān)于我們
? 蟲蟲下載站

?? bfsa_nandflash.c

?? ATMEL arm7 USB 模擬串口
?? C
字號:
//  ----------------------------------------------------------------------------
//          ATMEL Microcontroller Software Support  -  ROUSSET  -
//  ----------------------------------------------------------------------------
//  DISCLAIMER:  THIS SOFTWARE IS PROVIDED BY ATMEL "AS IS" AND ANY EXPRESS OR
//  IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
//  MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT ARE
//  DISCLAIMED. IN NO EVENT SHALL ATMEL BE LIABLE FOR ANY DIRECT, INDIRECT,
//  INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
//  LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA,
//  OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
//  LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
//  NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
//  EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
//  ----------------------------------------------------------------------------
//* File Name           : bfsa_nandflash.c
//* Object              : bfsa_nandflash routine
//* Creation            :
//* Modif               :
//*----------------------------------------------------------------------------

// Include Standard files
#include <assert.h>
#include <stdlib.h>
#include "board.h"
#include "po_types.h"
#include "flash.h"
#include "bfsa_flash.h"

#include "nand.h"
#include "nand_ids.h"
#include "jffs2.h"

#include "NandFlash.h"

// Backup Block
unsigned char bBlock[SIZEONESECTOR];

extern int nand_rw (struct nand_chip* nand, int cmd,
	    size_t start, size_t len,
	    size_t * retlen, u_char * buf);


//*----------------------------------------------------------------------------
//* \fn    AT91F_ReadMedia
//* \brief Read in Flash size in byte
//* \input Start address (base=AT91C_IFLASH) size (in byte ) and buff address
//*----------------------------------------------------------------------------
void AT91F_ReadMedia(unsigned int Flash_Address, int size, unsigned char *buff)
{
	size_t total, offset = (size_t)(Flash_Address - AT91_SMARTMEDIA_BASE);
	unsigned int offset_block = offset & (NANDFLASH_PAGESIZE - 1);
	  
	// Read Page
	nand_rw(nand_dev_desc + curr_device,
			NANDRW_READ,
			offset & ~(NANDFLASH_PAGESIZE-1),
			NANDFLASH_PAGESIZE,
			&total,
			bBlock);

	po_memcpy((void *)buff,(void *)&bBlock[offset_block], size);
}

//*----------------------------------------------------------------------------
//* \fn    AT91F_Nand_Erase_Needed
//* \brief Write in Flash size in byte
//* \input Start address (base=AT91C_IFLASH) size (in byte ) and buff address
//*----------------------------------------------------------------------------
int AT91F_Nand_Erase_Needed(unsigned char *bBuffer, int size, unsigned int value)
{
	while (size){
		if (*bBuffer++ != (unsigned char)value)
			return TRUE;
			
		size--;
	}
	
	return FALSE;
}

//*----------------------------------------------------------------------------
//* \fn    AT91F_Flash_Write_Address
//* \brief Write in Flash size in byte
//* \input Start address (base=AT91C_IFLASH) size (in byte ) and buff address
//*----------------------------------------------------------------------------
int AT91F_Flash_Write_Address(unsigned int Flash_Address, int size, unsigned char *buff, unsigned char MemSet)
{
	size_t total, offset = Flash_Address - AT91_SMARTMEDIA_BASE;
	int i, count;
	int offset_buffer = offset & (SIZEONESECTOR - 1);
	
	// Read Block
	nand_rw(nand_dev_desc + curr_device,
			NANDRW_READ,
			offset & ~(SIZEONESECTOR-1),
			SIZEONESECTOR,
			&total,
			bBlock);

	if (AT91F_Nand_Erase_Needed(&bBlock[offset_buffer], size, 0xFFFFFFFF))
	{
		// Erase Block
		nand_erase(nand_dev_desc + curr_device, offset & ~(SIZEONESECTOR-1), SIZEONESECTOR, 0);

		// Modify Block
		if (MemSet == FALSE) {
			po_memcpy((void*)&bBlock[offset_buffer], (void*)buff, size);
		} else {
		
			i=offset_buffer;
			// Modify Block
			while (size)
			{
				bBlock[i++] = (unsigned char)*buff;
				size--;
			}		
		}
		
		// Write Block
		return nand_rw(nand_dev_desc + curr_device,
					   NANDRW_WRITE,
					   offset & ~(SIZEONESECTOR-1),
					   SIZEONESECTOR,
					   &total,
					   bBlock) ? FALSE : TRUE;
	}

	if (MemSet == FALSE) {         
		// Write Block
		return nand_rw(nand_dev_desc + curr_device,
					   NANDRW_WRITE,
					   offset,
					   size,
					   &total,
					   buff) ? FALSE : TRUE;
	} else {
		i=offset_buffer;
		count=size;
		// Modify Block
		while (count)
		{
			bBlock[i++] = (unsigned char)*buff;
			count--;
		}
		          
		// Write Block
		return nand_rw(nand_dev_desc + curr_device,
					   NANDRW_WRITE,
					   offset,
					   size,
					   &total,
					   &bBlock[offset_buffer]) ? FALSE : TRUE;
	}
}


?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
亚洲狠狠丁香婷婷综合久久久| 国产最新精品精品你懂的| 亚洲一区二区三区激情| 国产伦精品一区二区三区视频青涩 | 精品国产1区二区| 国产精品国产三级国产aⅴ无密码| 无吗不卡中文字幕| 91麻豆精品在线观看| 久久久久久久综合日本| 日本 国产 欧美色综合| 日本精品裸体写真集在线观看| 国产欧美一区二区三区在线看蜜臀| 日本欧美加勒比视频| 欧美揉bbbbb揉bbbbb| 亚洲日本免费电影| 91在线你懂得| 国产精品对白交换视频| 国产精品综合久久| 精品国产乱码久久久久久图片| 午夜视频一区二区| 欧美日韩一区久久| 午夜视频在线观看一区二区三区| 在线视频综合导航| 亚洲女同一区二区| 91在线丨porny丨国产| 自拍av一区二区三区| 91在线观看视频| 自拍偷拍亚洲激情| 在线亚洲免费视频| 亚洲va欧美va国产va天堂影院| 色哟哟国产精品| 亚洲自拍偷拍网站| 色偷偷久久一区二区三区| 亚洲欧洲av一区二区三区久久| 成人久久视频在线观看| 国产精品久久久久四虎| 92精品国产成人观看免费 | 欧美区在线观看| 偷窥少妇高潮呻吟av久久免费| 欧美日韩国产一二三| 免费看精品久久片| 国产视频一区二区三区在线观看| 粉嫩av一区二区三区在线播放 | 亚洲va韩国va欧美va精品| 欧美性视频一区二区三区| 亚洲在线视频网站| 欧美成人女星排名| 国产馆精品极品| 亚洲精品成人精品456| 欧美性猛片xxxx免费看久爱| 天天免费综合色| 欧美电影免费观看高清完整版在| 久久国产夜色精品鲁鲁99| 国产亚洲精品久| 91黄视频在线| 裸体歌舞表演一区二区| 国产精品久久久久一区二区三区共| 色综合久久99| 黄页视频在线91| 亚洲视频免费在线观看| 7777精品伊人久久久大香线蕉超级流畅 | 久久国产综合精品| 一区在线中文字幕| 欧美精品久久久久久久多人混战| 日本色综合中文字幕| 国产欧美一区二区精品性| 欧美在线观看18| 国产一区二区在线视频| 亚洲一卡二卡三卡四卡| 久久久一区二区| 欧美日韩在线精品一区二区三区激情| 免费观看日韩电影| 亚洲区小说区图片区qvod| 日韩一级片在线播放| www.日本不卡| 免费黄网站欧美| 玉足女爽爽91| 国产校园另类小说区| 欧美日韩情趣电影| 91视频xxxx| 国产乱码精品一区二区三区五月婷 | 国内不卡的二区三区中文字幕 | 欧美一区二区观看视频| 国产99久久久国产精品| 日韩中文字幕1| 亚洲日本va在线观看| 久久久久久久久伊人| 欧美日韩国产美女| 99国产精品99久久久久久| 激情六月婷婷久久| 蜜臀精品久久久久久蜜臀| 亚洲精品欧美二区三区中文字幕| 久久婷婷久久一区二区三区| 777xxx欧美| 欧美三级韩国三级日本一级| 91在线无精精品入口| 成人在线视频一区二区| 韩国女主播成人在线| 蜜桃传媒麻豆第一区在线观看| 亚洲激情图片小说视频| 亚洲欧洲www| 亚洲欧洲精品一区二区精品久久久| 国产欧美一区二区精品性色| 国产亚洲美州欧州综合国| 2021久久国产精品不只是精品| 日韩一二在线观看| 日韩视频一区二区| 日韩午夜在线影院| 日韩一区二区视频| 日韩欧美亚洲另类制服综合在线| 91精品国产乱码久久蜜臀| 在线播放欧美女士性生活| 欧美三级电影精品| 91精品国产综合久久久久久久久久 | 久久久久久免费| 久久久久亚洲蜜桃| 午夜影视日本亚洲欧洲精品| 亚洲成a人v欧美综合天堂| 亚洲午夜精品网| 视频在线观看一区| 免费在线观看一区二区三区| 卡一卡二国产精品| 精久久久久久久久久久| 国产很黄免费观看久久| 成人教育av在线| 在线视频国内一区二区| 欧美午夜免费电影| 欧美一区二区三区四区在线观看| 7777精品伊人久久久大香线蕉| 日韩精品一区二区三区在线观看| 精品理论电影在线观看| 欧美国产精品一区二区三区| 国产精品久久久久9999吃药| 一区二区三区四区乱视频| 亚洲成人免费观看| 久久激情五月婷婷| www.综合网.com| 欧美性三三影院| 精品国产一二三| 国产精品国产馆在线真实露脸 | 高清在线观看日韩| 99视频精品全部免费在线| 欧美亚洲国产bt| 精品电影一区二区| 亚洲欧美视频一区| 日韩影视精彩在线| 国产精品影音先锋| 欧美专区日韩专区| 欧美精品一区二区三区视频| 成人欧美一区二区三区白人| 天堂久久一区二区三区| 国产精品18久久久久久久网站| 91成人网在线| 一级女性全黄久久生活片免费| 奇米精品一区二区三区在线观看 | 欧美午夜在线一二页| 精品成人一区二区三区| 日韩理论片一区二区| 麻豆国产精品官网| 色综合欧美在线视频区| 精品粉嫩aⅴ一区二区三区四区| 亚洲日本乱码在线观看| 国产一区二区网址| 欧美理论电影在线| 亚洲色图色小说| 国产美女精品一区二区三区| 欧美日韩一区高清| 自拍视频在线观看一区二区| 国产精品一二三在| 538prom精品视频线放| 亚洲免费在线观看视频| 国产福利一区在线| 欧美电影免费观看高清完整版在线| 亚洲精品国产无天堂网2021| 国产精品456| 久久网这里都是精品| 秋霞电影网一区二区| 欧美亚洲日本国产| 亚洲伦理在线免费看| 成人免费av在线| 中文字幕不卡在线| 国产精品亚洲专一区二区三区 | 国产一区日韩二区欧美三区| 91麻豆精品国产91久久久久| 亚洲伦理在线免费看| 99久久精品久久久久久清纯| 国产亚洲婷婷免费| 国内精品视频一区二区三区八戒| 欧美一级高清片| 五月激情丁香一区二区三区| 在线观看免费视频综合| 亚洲欧美日韩国产成人精品影院 | 亚洲欧洲制服丝袜| 97久久人人超碰| 最新欧美精品一区二区三区| 波多野结衣的一区二区三区| 中文在线资源观看网站视频免费不卡| 六月丁香综合在线视频| 精品sm在线观看| 国产.精品.日韩.另类.中文.在线.播放 |