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

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

?? lib_flash_at49.c

?? 有關(guān)ATMEL AT91系列CPU的驅(qū)動(dòng)函數(shù)庫(kù)
?? C
字號(hào):
//*-----------------------------------------------------------------------------//*      ATMEL Microcontroller Software Support  -  ROUSSET  -//*-----------------------------------------------------------------------------//* The software is delivered "AS IS" without warranty or condition of any//* kind, either express, implied or statutory. This includes without//* limitation any warranty or condition with respect to merchantability or//* fitness for any particular purpose, or against the infringements of//* intellectual property rights of others.//*-----------------------------------------------------------------------------//* File Name               : lib_flash_at49.c//* Object                  : FLASH programmer for ://*                             - AT49BV1604/AT49BV1604T//*                             - AT49BV1614/AT49BV1604T//*                             - AT49BV8011/AT49BV8011T//*                             - AT49BV8011/AT49BV8011T//*//* 1.1 06/11/00 JPP        : Creation//*-----------------------------------------------------------------------------//* --------------------------- include file ----------------------------------#include    "lib_flash_at49.h"//* --------------------------- Static function -------------------------------//*----------------------------------------------------------------------------//* Function Name       : Pause//* Object              : wait flash responce//* Input Parameters    : none//* Output Parameters   : none//*----------------------------------------------------------------------------static void Pause(void){    int count;    for (count=0;count < TIME_OUT/10 ;count++)    {        /* Do nothing - just wait */    }}//* --------------------------- Export function -------------------------------//*----------------------------------------------------------------------------//* Function Name       : flash_at49_identify//* Object              : Get the device id//* Input Parameters    : <sart_addr> Flash base address//* Output Parameters   : device_code or 0xFFFF if bad manuf code//*----------------------------------------------------------------------------flash_word flash_at49_identify ( flash_word *base_addr )//* Begin{    flash_word      manuf_code ;    flash_word      device_code ;    Pause();    //* Enter Software Product Identification Mode    *(base_addr + FLASH_SEQ_ADD1) = FLASH_CODE1;    *(base_addr + FLASH_SEQ_ADD2) = FLASH_CODE2;    *(base_addr + FLASH_SEQ_ADD1) = ID_IN_CODE;    //* Read Manufacturer and device code from the device    manuf_code  = *base_addr ;    device_code = *(base_addr + 1) ;    //* Exit Software Product Identification Mode    *(base_addr + FLASH_SEQ_ADD1) = FLASH_CODE1;    *(base_addr + FLASH_SEQ_ADD2) = FLASH_CODE2;    *(base_addr + FLASH_SEQ_ADD1) = ID_OUT_CODE;    if ( manuf_code != ATMEL_MANUFACTURED )    {        return (FLASH_AT49BV_UNKNOW);    }    //* Return pointer to Flash found    return ( device_code ) ;}//*----------------------------------------------------------------------------//* Function Name       : flash_wait_flash_ready//* Object              : wait the end of write//* Input Parameters    : <address> Adress to write//*                       <data> data write at the  <address>//* Output Parameters   : if data write TRUE or FALSE if time out//*----------------------------------------------------------------------------int flash_wait_flash_ready ( flash_word *address, flash_word data ){//* Begin    int i = 0 ;    //* While two consecutive read don't give same value or timeout    while (( *address != data ) && ( i++ < TIME_OUT )) ;    //* If timeout    if ( i < TIME_OUT )    {        return ( TRUE ) ;    }    //* Else    else    {        return ( FALSE ) ;    }    //* Endif}//* End//*----------------------------------------------------------------------------//* Function Name       : flash_at49_check_sector_erased//* Object              : check if sector is erased//* Input Parameters    : <sector_addr> base sector address//*                       <size> sector size in byte//* Output Parameters   : if data sector erase TRUE or FALSE//*----------------------------------------------------------------------------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              : ERASSE 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{    //* 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;    *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 ) ;}//* End

?? 快捷鍵說(shuō)明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號(hào) Ctrl + =
減小字號(hào) Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
北条麻妃一区二区三区| 9191成人精品久久| 欧美精品一区男女天堂| 亚洲成人7777| 91免费版pro下载短视频| 欧美精品一区二区三区很污很色的| 丝袜a∨在线一区二区三区不卡 | 一区二区三区电影在线播| 懂色av噜噜一区二区三区av| 久久久久国产一区二区三区四区| 久久99久久精品欧美| 日韩欧美久久一区| 精品一区二区三区日韩| 久久综合九色综合久久久精品综合| 免费成人结看片| 日韩美女视频在线| 国产九九视频一区二区三区| 中文字幕乱码久久午夜不卡| 成人黄动漫网站免费app| 亚洲视频精选在线| 欧美色偷偷大香| 蜜桃传媒麻豆第一区在线观看| 精品免费日韩av| 国产不卡视频一区二区三区| 国产精品久久久久久久久免费相片| 99re成人精品视频| 亚洲综合色噜噜狠狠| 欧美一区二区三区在线电影| 美女视频一区在线观看| 国产日产精品1区| 色伊人久久综合中文字幕| 中文字幕中文字幕一区二区| 色综合久久六月婷婷中文字幕| 亚洲午夜视频在线观看| 亚洲精品在线一区二区| av网站一区二区三区| 亚洲国产一区视频| 欧美日本一道本在线视频| 偷拍自拍另类欧美| 久久久电影一区二区三区| 国产成人午夜视频| 亚洲国产日韩a在线播放| 亚洲精品一区二区三区四区高清| 成人激情开心网| 性感美女久久精品| 国产片一区二区| 欧美日韩免费一区二区三区视频| 精品一二三四区| 国产精品久久二区二区| 8x8x8国产精品| 成人午夜视频网站| 午夜天堂影视香蕉久久| 26uuuu精品一区二区| 在线观看日韩一区| 韩国精品主播一区二区在线观看 | 久久奇米777| av在线这里只有精品| 免费成人av在线播放| 一区二区三区精品| 2021国产精品久久精品| 欧美综合一区二区| 国产凹凸在线观看一区二区| 日韩国产精品久久| 亚洲欧美日韩一区| 久久九九影视网| 日韩欧美一区二区在线视频| 成人av午夜电影| 亚洲裸体xxx| 中文一区一区三区高中清不卡| 日韩一区二区三区视频在线| 97精品久久久午夜一区二区三区| 免费高清视频精品| 亚洲图片一区二区| 亚洲美女视频在线观看| 欧美韩国日本综合| 久久亚洲一级片| 日韩欧美二区三区| 91精品国产手机| 欧美性生活一区| 91女人视频在线观看| 成人av网在线| 丁香另类激情小说| 国产伦精品一区二区三区在线观看| 日韩av一级片| 视频一区二区不卡| 日日嗨av一区二区三区四区| 国产精品第一页第二页第三页| 2020国产精品| 久久久精品人体av艺术| 欧美日韩一区二区三区视频| 欧洲在线/亚洲| 欧美主播一区二区三区美女| 91麻豆视频网站| 色综合夜色一区| 色偷偷成人一区二区三区91 | 国产综合色产在线精品| 日本va欧美va精品发布| 日韩av网站免费在线| 免费三级欧美电影| 看国产成人h片视频| 韩国毛片一区二区三区| 国产精品亚洲成人| 成人午夜av在线| 9i在线看片成人免费| 一本一道综合狠狠老| 日本精品裸体写真集在线观看| 国内精品国产成人国产三级粉色| 亚洲一区二区在线视频| 亚洲成av人片一区二区| 首页国产丝袜综合| 精品在线你懂的| 国产福利一区二区三区视频| 国产91丝袜在线播放| 99精品欧美一区二区三区小说 | 日本 国产 欧美色综合| 激情五月婷婷综合| av不卡免费在线观看| 欧美在线小视频| 91精品国产品国语在线不卡| 精品成人免费观看| 久久色在线观看| 国产亚洲欧洲997久久综合 | 亚洲人快播电影网| 亚洲一区二区在线免费看| 日本va欧美va精品发布| 成人精品视频网站| 欧美私人免费视频| 久久精品欧美日韩精品| 亚洲三级在线免费| 蜜桃91丨九色丨蝌蚪91桃色| 顶级嫩模精品视频在线看| 色视频一区二区| 精品国产髙清在线看国产毛片| 国产精品天干天干在线综合| 亚洲成av人片www| 国产成人精品免费| 在线电影一区二区三区| 久久综合久久综合亚洲| 国产亚洲欧美日韩日本| 香蕉乱码成人久久天堂爱免费| 国产乱子轮精品视频| 91在线丨porny丨国产| 日韩一本二本av| 亚洲欧洲日韩av| 久久国内精品视频| 在线免费观看一区| 国产日韩精品视频一区| 午夜精品一区在线观看| 激情偷乱视频一区二区三区| 欧美亚一区二区| 国产精品麻豆久久久| 热久久一区二区| 91论坛在线播放| 久久久夜色精品亚洲| 日韩影院精彩在线| 色猫猫国产区一区二在线视频| 精品人在线二区三区| 偷拍日韩校园综合在线| 91捆绑美女网站| 国产欧美一区二区在线观看| 美女网站在线免费欧美精品| 日本道免费精品一区二区三区| 久久日韩精品一区二区五区| 亚洲大片精品永久免费| caoporn国产精品| 精品处破学生在线二十三| 亚洲男人都懂的| 风间由美一区二区三区在线观看| 精品久久久久久久人人人人传媒| 亚洲国产精品久久一线不卡| 一本大道av一区二区在线播放| 久久久午夜电影| 久久黄色级2电影| 欧美一区二区视频观看视频| 亚洲超丰满肉感bbw| 91精品福利视频| 亚洲免费视频成人| 91浏览器在线视频| 中文字幕亚洲不卡| 成人av高清在线| 亚洲欧美综合色| 国产精品1024| 国产精品久久免费看| 岛国av在线一区| 国产精品久久久久久久久免费相片 | 久久国产福利国产秒拍| 制服丝袜国产精品| 婷婷开心久久网| 在线不卡中文字幕播放| 亚洲青青青在线视频| 成人少妇影院yyyy| 综合久久综合久久| 色就色 综合激情| 亚洲小说春色综合另类电影| 欧美日韩国产首页| 日韩精品高清不卡| 欧美大片日本大片免费观看| 黑人巨大精品欧美黑白配亚洲 | 欧美大尺度电影在线| 激情五月婷婷综合网|