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

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

?? at29c040x.c

?? 這個是一個帶有IC卡
?? C
字號:
/****************************************Copyright (c)**************************************************
**                      
**                          
**                               
**
**--------------File Info-------------------------------------------------------------------------------
** File name:			AT29C04X.h
** Last modified Date:  
** Last Version:		1.0
** Descriptions:		讀寫ATMEL FLASH
**
**------------------------------------------------------------------------------------------------------
** Created by:			潘妙青
** Created date:		2008-2-26
** Version:				1.0
** Descriptions:		The original version
**
**------------------------------------------------------------------------------------------------------
** Modified by:
** Modified date:
** Version:
** Descriptions:
**
********************************************************************************************************/
#include "config.h"
#include "delay.h"

#define __SRC
#include "AT29C040X.h"
#undef __SRC

#define FLASH_BASE_ADDR		0x82000000
#define MAX_SECTOR_NUMBER	2048
#define SECTOR_SIZE			256
#define TWC					1

void delay_20ms(void)
{
	int i;
	
	for(i = 0;i < 2;i++)
		delay_10ms();
}

void delay_flash()
{
	int i;
	
	for(i = 0; i< TWC; i++)
		delay_10ms();
}

/****************************************************************************
* 名稱:flash_SDP_enable()
* 功能:使能SDP功能
* 入口參數:
* 出口參數:
****************************************************************************/
void flash_SDP_enable(void)
{
	uint8 *flash_addr = NULL;
	
	flash_addr = (uint8 *)(FLASH_BASE_ADDR + 0x5555);
	*flash_addr = 0xAA;
	flash_addr = (uint8 *)(FLASH_BASE_ADDR + 0x2AAA);
	*flash_addr = 0x55;
	flash_addr = (uint8 *)(FLASH_BASE_ADDR + 0x5555);
	*flash_addr = 0xA0;
}

/****************************************************************************
* 名稱:entry_id_mode()
* 功能:進入ID模式
* 入口參數:
* 出口參數:
****************************************************************************/
void entry_id_mode(void)
{
	uint8 *flash_addr = NULL;
	
	flash_addr = (uint8 *)(FLASH_BASE_ADDR + 0x5555);
	*flash_addr = 0xAA;
	flash_addr = (uint8 *)(FLASH_BASE_ADDR + 0x2AAA);
	*flash_addr = 0x55;
	flash_addr = (uint8 *)(FLASH_BASE_ADDR + 0x5555);
	*flash_addr = 0x90;
}

/****************************************************************************
* 名稱:leave_id_mode()
* 功能:退出ID模式
* 入口參數:
* 出口參數:
****************************************************************************/
void leave_id_mode(void)
{
	uint8 *flash_addr = NULL;
	
	flash_addr = (uint8 *)(FLASH_BASE_ADDR + 0x5555);
	*flash_addr = 0xAA;
	flash_addr = (uint8 *)(FLASH_BASE_ADDR + 0x2AAA);
	*flash_addr = 0x55;
	flash_addr = (uint8 *)(FLASH_BASE_ADDR + 0x5555);
	*flash_addr = 0xF0;
}

/****************************************************************************
* 名稱:Init_Flash()
* 功能:初始化FLASH
* 入口參數:
* 出口參數:
****************************************************************************/
int Init_Flash(void)
{
	uint8 flash_id;
	uint8 *flash_addr = NULL;
	
	entry_id_mode();		//進入讀ID模式
	delay_20ms();
	
	flash_addr = (uint8 *)(FLASH_BASE_ADDR + 0x0001);	//ID地址為0X0001
	flash_id = *flash_addr;
	
	leave_id_mode();		//退出讀ID模式
	delay_20ms();
	
	if(flash_id != 0xa4)
		return -1;

/*	
	switch(flash_id)
	{
		case 0x5b:
			sector_size = 512;		//29C040
			twc = 1;
			break;
		case 0xa4:
			sector_size = 256;		//29C040A
			twc = 1;
			break;
		case 0x3b:
			secotr_size = 512;		//29LV040
			twc = 2;
			break;	
		case 0xc4:
			sector_size = 256;		//29LV040A
			twc = 2;
			break;	
		default:
			sector_size = 0;
			twc = 0;		
	}
*/	
	return 0;
}

/****************************************************************************
* 名稱:Write_Flash_Sector()
* 功能:寫數據到一扇區中
* 入口參數:FlashAddr(0x82000000-0x8207FFFF) / length of data is sector_size
*			sector:0-2047
* 出口參數:
****************************************************************************/
int Write_Flash_Sector(uint8 sector, uint8 *data)
{
	int i;
	uint8 *addr = (uint8 *)(FLASH_BASE_ADDR + sector * SECTOR_SIZE);
	
	flash_SDP_enable();		//使能SDP功能,保護數據
	
	for(i = 0; i < SECTOR_SIZE; i++)
		*(addr + i) = *(data + i);
		
	delay_flash();			//DELAY 10ms	
	return 0;	
}

/****************************************************************************
* 名稱:Write_Flash()
* 功能:寫SRAM數據到FLASH中
* 入口參數:FlashAddr(0x82000000-0x8207FFFF)
* 出口參數:
****************************************************************************/
int Write_Flash(uint32 FlashAddr, uint8 *data, int datalen)
{
	int i;
	uint8 sector,offset;
	uint8 sector_buf[SECTOR_SIZE];
	uint8 check_buf[SECTOR_SIZE];
	
	if(data == NULL || datalen == 0)
		return -1;
		
	if(datalen > FlashAddr - FLASH_BASE_ADDR)		//越界
		return -1;	
	
	sector = (FlashAddr - FLASH_BASE_ADDR) >> 8;	//計算起始扇區號
	offset = FlashAddr & 0xFF;						//計算扇區內偏移
	
	while(datalen > 0) {
		Read_Flash((FLASH_BASE_ADDR + sector * SECTOR_SIZE),sector_buf, SECTOR_SIZE);	//讀取當前扇區
		for( i = 0; (i < SECTOR_SIZE - offset) && (datalen > 0); i++, datalen--) {
			data += i;
			sector_buf[offset + i] = *data;
		}	
			
		Write_Flash_Sector(sector, sector_buf);			//寫入一扇區
		
		Read_Flash((FLASH_BASE_ADDR + sector * SECTOR_SIZE),check_buf, SECTOR_SIZE);
		for(i = 0; i < SECTOR_SIZE; i++) {				//驗證
			if(*(check_buf + i) != *(sector_buf + i))
				return -1;
		}
		offset = 0;	
		sector++;
	}	
	
	return 0;
}

/****************************************************************************
* 名稱:Read_Flash()
* 功能:讀取一扇區數據到SRAM中
* 入口參數:FlashAddr(0x82000000-0x8207FFFF)
* 出口參數:
****************************************************************************/
int Read_Flash(uint32 FlashAddr, uint8 *buf, int buflen)
{
	int i;
	uint8 *flash_addr = (uint8 *)FlashAddr;
	
	if(buf == NULL || buflen == 0)
		return -1;
		
	if(buflen > FlashAddr - FLASH_BASE_ADDR)		// 越界
		return -1;
		
	for(i = 0; i < buflen; i++)
		*(buf + i) = *(flash_addr + i);
		
	return 0;		
}


?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
亚洲影院在线观看| 久久综合久久久久88| 亚洲另类一区二区| 色域天天综合网| 亚洲一区二区三区中文字幕 | 日韩亚洲电影在线| 麻豆91在线观看| 久久久国际精品| 91视频你懂的| 亚洲高清视频中文字幕| 日韩一区二区高清| 国产一区二区三区在线观看免费 | 中文字幕乱码久久午夜不卡| 国产91综合一区在线观看| 国产精品福利在线播放| 在线亚洲欧美专区二区| 免费观看成人鲁鲁鲁鲁鲁视频| 日韩三区在线观看| 国产91清纯白嫩初高中在线观看| 1区2区3区国产精品| 欧美日韩一区二区在线观看| 麻豆成人91精品二区三区| 中文字幕国产精品一区二区| 91国偷自产一区二区开放时间 | 欧美成人国产一区二区| 成人毛片在线观看| 亚洲成人免费在线| 中文字幕av不卡| 91.com在线观看| 成人性生交大片| 首页国产欧美久久| 国产精品色一区二区三区| 欧美三级在线视频| 成人爽a毛片一区二区免费| 亚洲大片精品永久免费| 日本一区二区三区免费乱视频| 欧亚一区二区三区| 国产福利一区二区三区在线视频| 亚洲精品免费在线播放| 国产精品国产三级国产| 欧美性色欧美a在线播放| 国产一区二区视频在线| 亚洲成av人片一区二区| 亚洲国产精品成人综合 | 欧美成人在线直播| 99精品1区2区| 国产剧情一区在线| 天天色 色综合| 一区二区视频在线| 欧美激情综合在线| 日韩女优毛片在线| 欧美日韩一区不卡| 99久久综合国产精品| 韩国三级中文字幕hd久久精品| 亚洲一区二区在线免费观看视频 | 国产一区二区三区电影在线观看| 亚洲高清久久久| 亚洲欧美一区二区三区国产精品 | 日本一区二区三区高清不卡| 欧美电影免费提供在线观看| 欧美视频在线一区二区三区| 99久久久免费精品国产一区二区 | 一区二区在线免费观看| 中文字幕第一区第二区| 精品国产一区二区三区忘忧草| 欧美日韩一区三区| 精品视频一区二区三区免费| 97aⅴ精品视频一二三区| 波多野结衣的一区二区三区| 福利一区在线观看| 国产精品77777| 久久er精品视频| 看国产成人h片视频| 日韩av中文字幕一区二区三区| 亚洲国产三级在线| 亚洲一级片在线观看| 亚洲精品国产第一综合99久久| 亚洲免费在线视频一区 二区| 中文字幕亚洲区| 亚洲男女一区二区三区| 亚洲欧美日韩成人高清在线一区| 一区在线观看免费| 1024成人网| 亚洲欧美一区二区三区久本道91| 亚洲人妖av一区二区| 亚洲色图在线视频| 亚洲曰韩产成在线| 蜜乳av一区二区| 国产一区二三区好的| 国产毛片精品视频| av在线一区二区| 欧美亚洲另类激情小说| 欧美日韩成人综合| 欧美tk—视频vk| 国产夜色精品一区二区av| 欧美国产精品v| 成人欧美一区二区三区| 亚洲一二三四在线| 午夜久久久久久久久| 美美哒免费高清在线观看视频一区二区| 奇米影视在线99精品| 国产福利一区二区三区视频在线 | 国产欧美一区二区三区在线看蜜臀 | 成人app软件下载大全免费| a级精品国产片在线观看| 91麻豆国产福利精品| 欧美精品一级二级| 久久综合久久综合久久综合| 亚洲私人影院在线观看| 日韩国产欧美在线观看| 国产精品中文欧美| 在线免费一区三区| 2023国产一二三区日本精品2022| 亚洲欧洲日韩av| 午夜国产精品影院在线观看| 国产一区二区三区在线观看免费视频 | 国产精品三级在线观看| 亚洲午夜久久久久| 国产一区二区电影| 91福利资源站| 欧美国产日韩一二三区| 午夜久久久久久久久久一区二区| 国产成人精品亚洲日本在线桃色| 欧美影片第一页| 久久一夜天堂av一区二区三区| 亚洲精品一二三四区| 韩国女主播一区| 欧美精品亚洲一区二区在线播放| 日本一区二区不卡视频| 奇米亚洲午夜久久精品| 91麻豆产精品久久久久久 | 成人天堂资源www在线| 日韩一级高清毛片| 亚洲人成亚洲人成在线观看图片| 美日韩一区二区| 欧美这里有精品| 国产精品午夜免费| 蜜臀av一区二区在线观看| 色综合久久久网| 2024国产精品| 久久精品理论片| 欧美日韩精品一区二区| 亚洲欧美自拍偷拍| 国产激情一区二区三区| 欧美一二三在线| 亚洲一二三四在线观看| 99久久精品国产一区| 欧美激情综合在线| 国产精品综合av一区二区国产馆| 欧美日韩国产美女| 亚洲精品国产一区二区精华液| 国产高清精品久久久久| 久久久久久久久久看片| 激情综合五月天| 欧美一区午夜精品| 日韩激情在线观看| 欧美一区二区三区思思人| 亚洲高清免费观看| 欧美性大战久久| 亚洲在线视频免费观看| 在线视频综合导航| 夜夜嗨av一区二区三区网页| 91麻豆国产自产在线观看| 综合亚洲深深色噜噜狠狠网站| 成人自拍视频在线| 中文在线一区二区| 成人性色生活片免费看爆迷你毛片| 国产亚洲欧美日韩日本| 国产在线播精品第三| 精品久久久久久最新网址| 久久成人18免费观看| 精品久久久久99| 国产毛片精品国产一区二区三区| 久久先锋影音av鲁色资源网| 国产中文字幕一区| 国产亚洲人成网站| 波多野结衣亚洲| 亚洲精品国产视频| 欧美日韩在线播放三区四区| 日日夜夜一区二区| 欧美成人精品福利| 成人午夜视频免费看| 亚洲特黄一级片| 欧美日韩国产综合草草| 久久99精品国产| 国产日韩欧美亚洲| 91蝌蚪porny九色| 午夜天堂影视香蕉久久| 欧美一级艳片视频免费观看| 国产综合色视频| 国产精品短视频| 欧美人动与zoxxxx乱| 国内成人免费视频| 亚洲日本韩国一区| 欧美高清视频在线高清观看mv色露露十八| 日韩国产在线观看| 中文字幕av资源一区| 欧美日韩亚洲综合一区| 国产剧情一区二区| 一区二区三区日本|