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

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

?? evmdm6437_nandflash.c

?? evmdm6437_nandflash的函數原型!!!!!!!!!!!!!!!
?? C
?? 第 1 頁 / 共 2 頁
字號:
/*
 *  Copyright 2006 by Spectrum Digital Incorporated.
 *  All rights reserved. Property of Spectrum Digital Incorporated.
 */

/*
 *  NAND Flash interface
 *
 */

#include "evmdm6437_nandflash.h"

/*
 *  Invalid Block & Page list
 */
static Uint16 invalid_blk_count = 0;
static Uint16 invalid_blks[80];

static Uint16 invalid_pg_count = 0;
static Uint16 invalid_pgs[80];

/*
 *  MFG & Device IDs
 */
static Uint8 mfg_id;
static Uint8 dev_id;

/*
 *  NAND Flash timeout
 */
static Uint32 nand_timeout = ( 0x00100000 );

/* ------------------------------------------------------------------------ *
 *                                                                          *
 *  _NAND_readECC( )                                                        *
 *                                                                          *
 *      Read ECC calcualtions                                               *
 *                                                                          *
 * ------------------------------------------------------------------------ */
#ifdef USE_ECC
    inline Uint32 _NAND_readECC( void )
    {
        return AEMIF_NANDECC2;
    }
#endif

/* ------------------------------------------------------------------------ *
 *                                                                          *
 *  _NAND_startECC( )                                                       *
 *                                                                          *
 *      Start ECC calcualtions                                              *
 *                                                                          *
 * ------------------------------------------------------------------------ */
#ifdef USE_ECC
    inline void _NAND_startECC( void )
    {
        _NAND_readECC( );
        AEMIF_NANDFCR |= 0x0100;
    }
#endif

/* ------------------------------------------------------------------------ *
 *                                                                          *
 *  _NAND_getBadPages( pages )                                              *
 *                                                                          *
 *      Get the last invaild pages                                          *
 *                                                                          *
 * ------------------------------------------------------------------------ */
void _NAND_getBadPages( Uint32* pages )
{
    Int16 i;
    for ( i = 0 ; invalid_pg_count ; i++ )
        pages[i] = invalid_pgs[i];

    if ( invalid_pg_count == 0 )
        pages[0] = 0;
}

/* ------------------------------------------------------------------------ *
 *                                                                          *
 *  _NAND_getBadBlocks( blocks )                                            *
 *                                                                          *
 *      Get the last invaild blocks                                         *
 *                                                                          *
 * ------------------------------------------------------------------------ */
void _NAND_getBadBlocks( Uint32* blocks )
{
    Int16 i;
    for ( i = 0 ; invalid_blk_count ; i++ )
        blocks[i] = invalid_blks[i];

    if ( invalid_blk_count == 0 )
        blocks[0] = 0;
}

/* ------------------------------------------------------------------------ *
 *                                                                          *
 *  _NAND_busywait( timeout )                                               *
 *                                                                          *
 *      Poll the external RDY/BSY pin                                       *
 *                                                                          *
 * ------------------------------------------------------------------------ */
Int16 _NAND_busywait( Int32 timeout )
{
    /*
     *  Short delay to let the Ready/Busy signal go LOW
     */
    _wait( 200 );

    /*
     *  Wait while the device is busy
     */
    while( ( ! NAND_READ_RB ) && ( timeout-- > 0 ) );

    if ( timeout == 0 )
        return NAND_ERR_TIMEOUT;
    else
        return 0;
}

/* ------------------------------------------------------------------------ *
 *                                                                          *
 *  _NANDFLASH_init( )                                                      *
 *      Initialize the NAND Flash                                           *
 *                                                                          *
 *  Note:                                                                   *
 *      The Write Protect on the NAND Flash is disabled.  This allows the   *
 *      erase & write NAND flash to work.                                   *
 *                                                                          *
 * ------------------------------------------------------------------------ */
Int16 EVMDM6437_NANDFLASH_init( )
{
    /*------------------------------------------------------------------*
     *                                                                  *
     *  NAND Flash timing parameters                                    *
     *                                                                  *
     *      EMIF.CLK freq   = PLL1/6 = 594/6 = 99 MHz                   *
     *      EMIF.CLK period = 1/99 MHz = 10.1 ns                        *
     *                                                                  *
     *------------------------------------------------------------------*/
    Uint32 acfg2 = 0
            | ( 0 << 31 )           // selectStrobe
            | ( 0 << 30 )           // extWait
            | ( 0 << 26 )           // writeSetup      //   0 ns
            | ( 8 << 20 )           // writeStrobe     //  40 ns
            | ( 2 << 17 )           // writeHold       //  10 ns
            | ( 0 << 13 )           // readSetup       //   0 ns
            | ( 6 << 7 )            // readStrobe      //  25 ns
            | ( 2 << 4 )            // readHold        //  10 ns
            | ( 2 << 2 )            // turnAround      //  10 ns
            | ( 0 << 0 );           // asyncSize       //  8-bit bus

    _resetEMIF( EMIF_CS2 );
    _setupEMIF( EMIF_CS2, acfg2, EMIF_NAND_MODE );

    /* ---------------------------------------------------------------- *
     *                                                                  *
     *  Note: If NANDFLASH_CE_DO_CARE is defined, then CE will be low   *
     *        during read/write/erase operations.                       *
     *                                                                  *
     *        Else if NANDFLASH_CE_DO_NOT_CARE is defined, then CE will *
     *        only be low during accesses to the NAND Flash device.     *
     *                                                                  *
     * ---------------------------------------------------------------- */

  //NAND_ASSERT_CE( );                  // Assert CE ( for CE-care devices )

    NAND_CMD( CMD_RESET );              // Reset NAND Flash

    if ( _NAND_busywait( nand_timeout ) )
        return NAND_ERR_TIMEOUT;

  //NAND_DEASSERT_CE( );                // Deassert CE ( for CE-care devices )

    return 0;
}

/* ------------------------------------------------------------------------ *
 *                                                                          *
 *  _NANDFLASH_getTotalPages( )                                             *
 *                                                                          *
 *      Determine the total number of pages of NAND Flash                   *
 *                                                                          *
 * ------------------------------------------------------------------------ */
Uint32 EVMDM6437_NANDFLASH_getTotalPages( )
{
    Uint32 pages = 0;

  //NAND_ASSERT_CE( );                  // Assert CE ( for CE-care devices )

    NAND_CMD( CMD_READID );             // Issue Read ID command
    NAND_ADDR_1( 0 );

    mfg_id = NAND_DATA;                 // Read MFG Id
    dev_id = NAND_DATA;                 // Read Device Id

    /*
     *  Compared MFG ID & Device ID to the supported devices
     */
    if ( mfg_id == MFG_SAMSUNG )
    {
        switch ( dev_id )
        {
            case DEV_K9F5608U0B:
                pages = DEV_K9F5608U0B_PAGE_COUNT;
                break;

            case DEV_K9F5608Q0B:
                pages = DEV_K9F5608Q0B_PAGE_COUNT;
                break;

            case DEV_K9F2808U0C:
                pages = DEV_K9F2808U0C_PAGE_COUNT;
                break;

            case DEV_K9K1208Q0C:
                pages = DEV_K9K1208Q0C_PAGE_COUNT;
                break;
        }
    }

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
丁香六月综合激情| 日韩一区二区三区高清免费看看| 欧美日韩综合不卡| 国产人久久人人人人爽| 日韩中文欧美在线| 色成人在线视频| 国产女同性恋一区二区| 久久99国产乱子伦精品免费| 在线观看日韩毛片| 中文字幕一区二区三区精华液| 精品一区二区在线视频| 欧美一区永久视频免费观看| 亚洲最新在线观看| av电影天堂一区二区在线| 国产日韩欧美精品一区| 精品一区二区免费看| 日韩女优制服丝袜电影| 日韩av一区二区在线影视| 欧美在线看片a免费观看| 亚洲视频1区2区| 99在线精品免费| 国产精品久久久久7777按摩 | 风间由美性色一区二区三区| 日韩女优制服丝袜电影| 免费在线观看精品| 欧美军同video69gay| 亚洲国产综合色| 精品视频在线免费| 香蕉久久夜色精品国产使用方法 | 久久亚洲一区二区三区四区| 久久se精品一区精品二区| 这里只有精品电影| 六月丁香婷婷色狠狠久久| 日韩午夜在线播放| 韩国三级电影一区二区| 欧美国产精品中文字幕| 成人国产亚洲欧美成人综合网| 亚洲国产精品二十页| 成人av网址在线| 一区二区三区中文在线| 欧美视频一区二区三区| 日本亚洲视频在线| 久久久久国产精品麻豆ai换脸 | 88在线观看91蜜桃国自产| 午夜av电影一区| 精品久久一区二区| 国产a久久麻豆| 一区二区三区四区亚洲| 久久精品一区二区三区不卡牛牛 | 国产欧美日韩不卡免费| 波多野结衣中文字幕一区二区三区| 亚洲色图视频网站| 欧美精品久久久久久久久老牛影院| 日韩精品久久理论片| 久久久久久久网| 91福利视频网站| 久久99九九99精品| 亚洲乱码日产精品bd| 欧美一区二区三区免费视频| 国产精品一二三区| 亚洲国产精品影院| 久久久久久久久久久99999| 97精品久久久久中文字幕| 偷拍亚洲欧洲综合| 国产精品美女一区二区| 欧美一区二区三区免费在线看| 国产91在线|亚洲| 亚洲一区二区精品视频| 精品国产免费人成电影在线观看四季| 99免费精品在线观看| 男男视频亚洲欧美| 亚洲黄色性网站| 久久精品亚洲精品国产欧美kt∨ | 天天综合网天天综合色| 久久人人爽爽爽人久久久| 日本乱人伦aⅴ精品| 蜜臀av性久久久久蜜臀av麻豆| 欧美激情一区在线观看| 91精品国产高清一区二区三区| 成人深夜福利app| 日本成人在线看| 亚洲一区二区三区四区五区中文| 久久免费视频一区| 91精品啪在线观看国产60岁| 99国产精品99久久久久久| 韩国精品免费视频| 婷婷综合另类小说色区| 一区二区三区欧美在线观看| 国产午夜精品福利| 日韩三级视频在线看| 欧美日韩卡一卡二| 91国产精品成人| 91麻豆国产自产在线观看| 国产sm精品调教视频网站| 久久精品国产精品青草| 午夜久久久影院| 亚洲妇女屁股眼交7| 亚洲日本青草视频在线怡红院| 欧美国产日韩精品免费观看| 久久先锋影音av鲁色资源网| 欧美一区二区视频免费观看| 欧美视频一区二区三区四区| 91久久精品网| 在线观看视频一区二区| 在线观看国产91| 日本国产一区二区| 欧美综合天天夜夜久久| 欧美电影免费观看高清完整版在线观看| 在线观看av不卡| 精品视频资源站| 欧美精选在线播放| 91精品国产色综合久久ai换脸| 欧美三电影在线| 欧美精品乱码久久久久久| 欧美色男人天堂| 欧美日韩mp4| 日韩欧美国产一区二区在线播放| 欧美一级生活片| 日韩久久久久久| 久久久综合精品| 国产精品每日更新| 一区二区三区在线观看动漫| 亚洲资源中文字幕| 婷婷六月综合亚洲| 精品一区二区影视| 国产成人亚洲综合a∨婷婷图片| 成人午夜电影小说| 91国偷自产一区二区三区成为亚洲经典 | 成人av免费观看| 波多野结衣在线一区| 高清国产一区二区三区| av电影一区二区| 欧美日韩电影一区| 26uuu精品一区二区三区四区在线| 久久丝袜美腿综合| 亚洲精品五月天| 日本亚洲免费观看| 成人免费av在线| 欧美日韩国产成人在线免费| xfplay精品久久| 一区二区三区免费观看| 日本成人在线视频网站| 成人在线综合网| 欧美日韩一区高清| 久久久久久久久99精品| 亚洲精选免费视频| 国产在线精品视频| 91久久精品一区二区三| 精品999在线播放| 亚洲欧美日韩系列| 精品一区二区日韩| 欧美三级视频在线播放| 国产欧美精品一区二区色综合| 亚洲一区二区欧美| 国产成人精品免费网站| 欧美电影一区二区三区| 欧美激情一区二区三区蜜桃视频| 亚洲高清三级视频| 成人精品电影在线观看| 欧美一区二区日韩| 亚洲日本一区二区| 国产福利一区二区三区视频在线| 国产精品视频观看| 调教+趴+乳夹+国产+精品| 成人福利在线看| 精品国产91乱码一区二区三区| 亚洲一区免费观看| 成人三级伦理片| 日韩精品一区二区在线| 夜夜精品视频一区二区| 成人av电影免费在线播放| 日韩欧美一区二区久久婷婷| 亚洲精品你懂的| gogo大胆日本视频一区| 国产亚洲综合性久久久影院| 日韩电影免费在线| 欧美视频一区二区三区在线观看| 国产精品女同互慰在线看| 国产一区二区三区在线观看免费视频| 欧美日韩国产大片| 亚洲国产日韩一区二区| 在线免费视频一区二区| 国产精品美女久久久久久久久| 国产乱人伦偷精品视频不卡| 日韩亚洲欧美综合| 免费在线看成人av| 欧美一区二区三区成人| 日韩国产精品91| 欧美福利电影网| 视频一区中文字幕| 欧美猛男gaygay网站| 亚洲一级片在线观看| 在线亚洲人成电影网站色www| 亚洲欧美另类综合偷拍| 91麻豆swag| 一区二区三区 在线观看视频| 91丨porny丨国产| 一区二区在线观看视频| 在线观看国产91| 午夜国产精品一区|