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

? 歡迎來(lái)到蟲(chóng)蟲(chóng)下載站! | ?? 資源下載 ?? 資源專(zhuān)輯 ?? 關(guān)于我們
? 蟲(chóng)蟲(chóng)下載站

?? lib_flash_at49.c

?? 使用JTAG口對(duì)AT91R40008芯片進(jìn)行FLASH編程的程序
?? C
?? 第 1 頁(yè) / 共 2 頁(yè)
字號(hào):
//*----------------------------------------------------------------------------int flash_at49_check_sector_erased ( flash_word *sector_addr,int size)//* Begin{    int     i ;    flash_word  read_data ;    //* For each word of the sector    for ( i = 0 ; i < (size/2) ; i ++ )    {        //* Check erased value reading, if not        if (( read_data = *(sector_addr + i)) != (flash_word)0xFFFF )        {            return ( FALSE ) ;        }        //* Endif    }    //* Endfor    //* Return True    return ( TRUE ) ;}//* End//*----------------------------------------------------------------------------//* Function Name       : flash_at49_check_flash_erased//* Object              : check if all sector are erased//* Input Parameters    : <flash> Flash descriptor//*                       <sector_addr> base sector address//* Output Parameters   : if data sector erase TRUE or FALSE//*----------------------------------------------------------------------------/*int flash_at49_check_flash_erased ( FlashAt49BVDef *flash, flash_word *addr_base )//* Begin{    int         i ;    flash_word  read_data ;    int         size = flash->flash_size ;    //* For each word of the flash    for ( i = 0 ; i < (size/2) ; i ++ )    {        //* Check erased value reading, if not        if (( read_data = *(addr_base + i)) != (flash_word)0xFFFF )        {            //*  return False            return ( FALSE ) ;        }        //* Endif    }    //* Endfor    //* Return True    return ( TRUE ) ;}*///* End//*----------------------------------------------------------------------------//* Function Name       : flash_at49_erase_flash//* Object              : ERASE FLASH//* Input Parameters    : <flash> Flash descriptor//*                       <base_address> base sector address//* Output Parameters   : if data sector erase TRUE or FALSE//*----------------------------------------------------------------------------/*int flash_at49_erase_flash ( FlashAt49BVDef *flash,flash_word *base_addr )//* Begin{    int     trial = 0;    int     cmpt;    int     status= TRUE;    //* While flash is not erased or too much erasing performed    while (( flash_at49_check_flash_erased ( flash, base_addr ) == FALSE ) &&           ( trial++ < NB_TRIAL_ERASE ))    {        //* Enter Sector Erase Sequence codes        *(base_addr + FLASH_SEQ_ADD1) = FLASH_CODE1;        *(base_addr + FLASH_SEQ_ADD2) = FLASH_CODE2;        *(base_addr + FLASH_SEQ_ADD1) = ERASE_SECTOR_CODE1;        *(base_addr + FLASH_SEQ_ADD1) = FLASH_CODE1;        *(base_addr + FLASH_SEQ_ADD2) = FLASH_CODE2;        *(base_addr + FLASH_SEQ_ADD1) = CHIP_ERASE_CODE;        //* wait        for ( cmpt = 0 ; cmpt < DELAY_ERASE ; cmpt ++ ) ;        //* Wait for Flash Ready after Erase, if timeout        if ( flash_wait_flash_ready ( base_addr,0xFFFF ) == FALSE )        {            //* return False            if ( trial==NB_TRIAL_ERASE) return (FALSE) ;        }        //* Endif    }    //* EndWhile    //* Return True    return ( status ) ;}*///* End//*----------------------------------------------------------------------------//* Function Name       : flash_at49_erase_sector//* Object              : erase flash sector//* Input Parameters    : <base_addr> Flash base address//*                       <sector_addr> Flash sector address//* Output Parameters   : none//*----------------------------------------------------------------------------int  flash_at49_erase_sector ( flash_word *base_addr,flash_word *sector_addr)//* Begin{	u_int i;    //* Enter Sector Erase Sequence codes    *(base_addr + FLASH_SEQ_ADD1) = FLASH_CODE1;    *(base_addr + FLASH_SEQ_ADD2) = FLASH_CODE2;    *(base_addr + FLASH_SEQ_ADD1) = ERASE_SECTOR_CODE1;    *(base_addr + FLASH_SEQ_ADD1) = FLASH_CODE1;    *(base_addr + FLASH_SEQ_ADD2) = FLASH_CODE2;    for(i=0;i<5;i++); //* Wait a minimum of 150 ns      *sector_addr = ERASE_SECTOR_CODE2 ;    //* Wait for Flash Ready after Erase, if timeout    if ( flash_wait_flash_ready ( sector_addr, (flash_word)0xFFFF ) == FALSE )    {          return(FALSE);    }    return(TRUE);}//* End//*----------------------------------------------------------------------------//* Function Name       : flash_at49_write_flash//* Object              : Write short in Flash//* Input Parameters    ://* Output Parameters   : none//*----------------------------------------------------------------------------int flash_at49_write_flash (flash_word *base_addr,flash_word *load_addr,flash_word data){    flash_word  read_data ;    //* Enter Programming code sequence    *(base_addr + FLASH_SEQ_ADD1) = FLASH_CODE1 ;    *(base_addr + FLASH_SEQ_ADD2) = FLASH_CODE2 ;    *(base_addr + FLASH_SEQ_ADD1) = WRITE_CODE ;    *load_addr = data ;    //* Wait for Flash ready after erasing, if timeout    if ( flash_wait_flash_ready ( load_addr, data ) != TRUE )    {        return ( FALSE ) ;    }    //* Endif    //* If Data written does not equal data    if (( read_data = *load_addr ) != data )    {        //* Return False        return ( FALSE );    }    //* Endif    //* Return False    return ( TRUE ) ;}//*----------------------------------------------------------------------------//* Function Name       : flash_at49_erase_write_block//* Object              : check if sector is erased if not erase erase and write//* Input Parameters    : <buffer> data block addressFlash//*                       <size> sector size in byte//* Output Parameters   : if data sector erase TRUE or FALSE//*----------------------------------------------------------------------------//* int flash_at49_erase_write_block ( u_char *buffer,int size)//* Beginint main(){    u_char		data;    u_int   	count, read;    int         sector_found;    int         change_sector;    u_int 			buffer;    int 			size;	led_on(0, LED_3);	led_on(0, LED_4);	led_on(0, LED_5);	led_on(0, LED_6);	led_on(0, LED_16);	led_on(0, LED_17);	led_on(0, LED_18);	led_on(0, LED_19);	/*	for (count = 0; count<17225; count++){			if ((count%2)==0){			led_on(1, LED_3);		} else {			led_on(0, LED_3);		}				while( ((read_dbg_control() & R_BIT) != R_BIT) ); //* Wait a new data to read		tab[count] = read_dbg_data();  //* Get address where to store data				if ((count%2)==0){			led_on(1, LED_4);		} else {			led_on(0, LED_4);		}			}*/			while( ((read_dbg_control() & R_BIT) != R_BIT) ); //* Wait a new data to read	addr_load = (flash_word *)read_dbg_data();  //* Get address where to store data		//*led_on(1, LED_3);	    while( ((read_dbg_control() & R_BIT) != R_BIT) ); //* Wait a new data to read	flash = Get_Flash_Type( read_dbg_data() ); //* Get flash type		//*led_on(1, LED_4);	while( ((read_dbg_control() & R_BIT) != R_BIT) ); //* Wait a new data to read	size = read_dbg_data(); 	//* Get size of data to load								//* Size in bytes		read = TRUE;    //* For each word read from the file    for  ( count =0 ; count < size ; count +=2 )    {	    if (read == TRUE){	    		    	while( ((read_dbg_control() & R_BIT) != R_BIT) ); //* Wait a new data to read	    	buffer = read_dbg_data(); //* size buffer = 32 bits	    	read = FALSE;	    	//*led_on(1, LED_5);	    } else {			buffer = buffer>>16;	    	read = TRUE;	    	//*led_on(0, LED_5);	    }	    //*data = buffer[count];        //*data = (unsigned short) buffer[count] | (unsigned short)buffer[count+1] << 8 ;        data = (flash_word)buffer; //* size data = 16 bits        //* Clear sector found flag        sector_found = FALSE ;        //* Clear Sector change flag        change_sector = FALSE ;        //* While sector not found        while ( sector_found == FALSE )        {            //* If program address lower than current sector address + its size            if (( addr_prg_sector + (flash->flash_org[block].sector_size/2))                > addr_load )            {                //* Flag sector found                sector_found = TRUE ;            }            //* Else            else            {                //* Flag sector change                change_sector = TRUE ;                //* Add current sector size to program address                addr_prg_sector += (flash->flash_org[block].sector_size/2) ;                //* Increment the sector number                nb_sector++ ;                //* If last sector in block tested                if ( nb_sector >= flash->flash_org[block].sector_number )                {                    //* Re-initialize sector number in block                    nb_sector = 0 ;                    //* Increment block number                    block ++ ;                    //* If last block tested                    if ( block >= flash->flash_block_nb )                    {                        //*  Error Address not found in the Flash Address Field Return False                        //* led_on(1, LED_8);                    }                    //* Endif                }                //* Endif            }            //* EndIf        }        //* EndWhile        //* Unflag Erasing        erase = FALSE ;        //* If new sector or first sector        if (( change_sector == TRUE ) || ( first == TRUE ))        {            //* If not first sector            if ( first == FALSE )            {                //* Flag Erasing                erase = TRUE ;            }            //* Else, if first sector            else            {                //* Flag to erase the sector                erase = TRUE ;            }            //* Endif        }        //* Endif        //* If Erasing flagged        if ( erase == TRUE )        {            //* Erase, if Timeout            if ( erase_sector ( addr_base,                                addr_prg_sector,                                flash->flash_org[block].sector_size) != TRUE )            {                //* Return False                //* led_on(1, LED_7);            }            //* Endif        }        //* Endif        //* Write the value read in Flash, if error        if ( flash_at49_write_flash ( addr_base,addr_load, data )!= TRUE )        {            //* Return False            //* led_on(1, LED_6);        }        //* Endif        //* Increment load address        addr_load ++ ;        //* Remove first address to program flag        first = FALSE ;    }    //* EndFor	//* Send the data	while( ((read_dbg_control() & W_BIT) == W_BIT) ); //* Wait a new data to write	write_dbg_data(0xCAFECAFE);	while(1){			led_on(1, LED_5);		for (size=0; size<300000;size++);		led_on(0, LED_5);		for (size=0; size<300000;size++);			}	//*	led_on(1, LED_5);	//*	for (size=0; size<300000;size++);	//*	led_on(0, LED_5);	//*	for (size=0; size<300000;size++);		    //* Return True    //  return ( TRUE ) ;}//* End

?? 快捷鍵說(shuō)明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號(hào) Ctrl + =
減小字號(hào) Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
色综合久久中文字幕综合网| 2欧美一区二区三区在线观看视频 337p粉嫩大胆噜噜噜噜噜91av | 2020国产精品自拍| 日韩视频免费观看高清完整版 | 欧美一区二区人人喊爽| 欧美视频一区在线| 欧美日韩午夜影院| 欧美日韩成人综合| 欧美一区二区三区四区在线观看 | 日韩精品高清不卡| 日本v片在线高清不卡在线观看| 午夜免费欧美电影| 日韩高清不卡一区二区三区| 亚洲成人av免费| 美女一区二区在线观看| 激情综合色综合久久综合| 国产一区二区三区| 国产a精品视频| 99国产精品久久久| 在线精品观看国产| 欧美高清一级片在线| 91精品婷婷国产综合久久竹菊| 欧美mv日韩mv亚洲| 国产欧美一区二区三区在线老狼| 中文字幕日韩一区二区| 亚洲国产美国国产综合一区二区| 日日欢夜夜爽一区| 国产一区二区三区日韩| 成人国产精品免费| 在线一区二区视频| 91麻豆精品国产91久久久更新时间 | 国模冰冰炮一区二区| 成人性视频免费网站| 91浏览器入口在线观看| 欧美男男青年gay1069videost | 在线不卡免费欧美| 精品国产乱码久久久久久久| 国产日本一区二区| 一区二区三区中文字幕精品精品 | 亚洲成人黄色影院| 国产一区二区三区| 91免费在线播放| 精品国产露脸精彩对白 | 亚洲成人av电影在线| 激情综合五月婷婷| 91极品视觉盛宴| 久久亚洲二区三区| 玉米视频成人免费看| 另类的小说在线视频另类成人小视频在线| 国产精品亚洲а∨天堂免在线| 91视频.com| 日韩女优视频免费观看| 综合激情成人伊人| 美女一区二区视频| 在线观看91精品国产入口| 欧美tickle裸体挠脚心vk| 亚洲精品免费看| 国产一区二区三区国产| 欧日韩精品视频| 欧美国产综合色视频| 日韩综合在线视频| 99久久精品免费观看| 欧美r级电影在线观看| 亚洲一卡二卡三卡四卡五卡| 国产精品亚洲人在线观看| 欧美精品一级二级三级| 综合在线观看色| 国产尤物一区二区在线| 欧美日韩黄色影视| 自拍偷拍欧美激情| 国产真实乱子伦精品视频| 欧美三级韩国三级日本三斤| 欧美国产成人精品| 美女一区二区三区| 欧美情侣在线播放| 亚洲摸摸操操av| 国产精品538一区二区在线| 7777精品伊人久久久大香线蕉 | 欧美久久久久久久久中文字幕| 欧美国产欧美综合| 精品亚洲国产成人av制服丝袜 | 久久综合国产精品| 免费高清视频精品| 欧美日产在线观看| 一区二区三区蜜桃网| aaa国产一区| 欧美激情中文不卡| 国产精品91xxx| 精品久久国产97色综合| 青青青伊人色综合久久| 欧美日韩国产高清一区二区| 亚洲三级久久久| 99久久久无码国产精品| 亚洲欧洲av色图| 成人免费va视频| 日本一区二区三区高清不卡| 激情伊人五月天久久综合| 欧美成人在线直播| 老司机免费视频一区二区三区| 91精品国产综合久久婷婷香蕉| 亚洲国产va精品久久久不卡综合| 色婷婷激情一区二区三区| 亚洲日本乱码在线观看| 99re66热这里只有精品3直播| 国产精品久久久久三级| 91污在线观看| 一区二区三区产品免费精品久久75| 99久久久免费精品国产一区二区 | 粉嫩av一区二区三区在线播放 | 日韩影院精彩在线| 日韩一区二区在线观看| 麻豆国产精品视频| 久久久青草青青国产亚洲免观| 韩国女主播成人在线| 久久久久久一二三区| 国产成人精品免费视频网站| 国产精品天天看| 91麻豆高清视频| 亚洲第一激情av| 日韩欧美中文字幕公布| 激情综合色播激情啊| 欧美国产精品专区| aa级大片欧美| 五月天一区二区| 精品国产伦一区二区三区观看体验 | 亚洲五月六月丁香激情| 制服丝袜激情欧洲亚洲| 精品在线观看免费| 中文一区一区三区高中清不卡| 一本一道综合狠狠老| 午夜久久久久久| 精品99一区二区| 99久久免费精品| 日韩av在线播放中文字幕| 久久尤物电影视频在线观看| 成人av在线影院| 亚洲一本大道在线| 欧美videossexotv100| av在线免费不卡| 视频一区中文字幕国产| 国产视频不卡一区| 91国偷自产一区二区开放时间| 肉丝袜脚交视频一区二区| 2020国产精品| 欧美中文字幕一区| 精品一区二区久久| 亚洲欧美成人一区二区三区| 欧美电影在哪看比较好| 国产精品正在播放| 一区二区高清视频在线观看| 日韩精品资源二区在线| 97se亚洲国产综合在线| 麻豆精品一区二区三区| 亚洲免费看黄网站| 日韩欧美二区三区| 色婷婷综合久色| 久久99久久久欧美国产| 亚洲女性喷水在线观看一区| 亚洲精品一区二区三区香蕉| 色av一区二区| 国产精品一区二区在线观看不卡| 亚洲综合在线电影| 久久―日本道色综合久久| 欧美午夜片在线观看| 国产福利91精品| 日韩不卡一二三区| 亚洲精品欧美激情| 亚洲欧美日韩国产中文在线| 精品国产乱子伦一区| 欧美系列亚洲系列| 99热这里都是精品| 国产一区二区三区久久久| 丝袜诱惑制服诱惑色一区在线观看 | 不卡一区二区中文字幕| 蜜桃视频一区二区| 一区二区三区高清在线| 国产欧美精品日韩区二区麻豆天美| 欧美日韩一区在线| 99re这里只有精品首页| 国产精品亚洲午夜一区二区三区| 午夜精品国产更新| 一区二区三区在线观看欧美| 日本一区二区三区dvd视频在线| 欧美一区二区久久| 欧美三级视频在线| av中文字幕一区| 国产69精品久久久久777| 久久99精品久久久久久动态图| 亚洲五码中文字幕| 一区二区三区欧美日韩| 国产精品嫩草99a| 久久久亚洲国产美女国产盗摄 | 日韩精品一区二区三区视频播放| 欧美伊人久久大香线蕉综合69 | 91精品国产欧美日韩| 精品污污网站免费看| 一本到三区不卡视频| 99久久精品国产精品久久| 成人一区在线观看| 国产成人午夜精品5599 |