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

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

?? k9fxx08.c

?? 周立公開發板
?? C
?? 第 1 頁 / 共 2 頁
字號:
    volatile uint8 *Data;
    uint8 *cp;
    uint8 (* DataToK9fxx08)(uint8 Data);
    
    cp = Buf;
    if (Index != NULL)
    {
        CLE = Index->CLE;
        ALE = Index->ALE;
        Data = Index->Data;
        DataToK9fxx08 = Index->DataToK9fxx08;
    
        *CLE = DataToK9fxx08(K9FXX_SET_ADDR_C);
        *CLE = DataToK9fxx08(K9FXX_BLOCK_PROGRAM_1);
        *ALE = DataToK9fxx08(0);
        *ALE = DataToK9fxx08(SecIndex & 0xff);
        *ALE = DataToK9fxx08((SecIndex >> 8) & 0xff);
        *ALE = DataToK9fxx08((SecIndex >> 16) & 0xff);
        *ALE = DataToK9fxx08((SecIndex >> 24) & 0xff);

        i = Index->BytsPerSecC;
        do
        {
            *Data = *cp++;
        } while ( --i != 0);

        *CLE = DataToK9fxx08(K9FXX_BLOCK_PROGRAM_2);
        return K9fxx08OK(Index);
    }
    return FALSE; 
}

/*********************************************************************************************************
** Function name: K9fxx08BlockErase
** Descriptions: 擦除芯片扇區所在的塊  erase chip block (include sector)
** Input:Index: 芯片信息結構體 chip information struct
**       SecIndex:塊中的某個扇區的索引 sector(in block) index
** 
** Output: TRUE: 成功  OK
**         FALSE: 未成功 Not OK
** 
** Created by: chenmingji
** Created Date: 2005-2-18
**-------------------------------------------------------------------------------------------------------
** Modified by:
** Modified Date: 
**------------------------------------------------------------------------------------------------------
********************************************************************************************************/
        uint8 K9fxx08BlockErase(const K9fXX08Hardware *Index, uint32 SecIndex)
{
    volatile uint8 *CLE;
    volatile uint8 *ALE;
    volatile uint8 *Data;
    uint8 (* DataToK9fxx08)(uint8 Data);
    
    if (Index != NULL)
    {
        CLE = Index->CLE;
        ALE = Index->ALE;
        Data = Index->Data;
        DataToK9fxx08 = Index->DataToK9fxx08;

        *CLE = DataToK9fxx08(K9FXX_BLOCK_ERASE_1);
        *ALE = DataToK9fxx08(SecIndex & 0xff);
        *ALE = DataToK9fxx08((SecIndex >> 8) & 0xff);
        *ALE = DataToK9fxx08((SecIndex >> 16) & 0xff);
        *ALE = DataToK9fxx08((SecIndex >> 24) & 0xff);
        *CLE = DataToK9fxx08(K9FXX_BLOCK_ERASE_2);
        
        return K9fxx08OK(Index);
    }
    return FALSE;
}

/*********************************************************************************************************
** Function name: K9fxx08ReadID
** Descriptions: 讀芯片ID  read chip ID
** Input:Index: 芯片信息結構體 chip information struct
** 
** Output: 芯片ID  chip ID
** 
** Created by: chenmingji
** Created Date: 2005-2-18
**-------------------------------------------------------------------------------------------------------
** Modified by:
** Modified Date: 
**------------------------------------------------------------------------------------------------------
********************************************************************************************************/
        uint16 K9fxx08ReadID(const K9fXX08Hardware *Index)
{
    uint8 a, b;
    volatile uint8 *CLE;
    volatile uint8 *ALE;
    volatile uint8 *Data;
    uint8 (* DataToK9fxx08)(uint8 Data);
    uint8 (* DataToMCU)(uint8 Data);

    a = 0;
    b = 0;
    if (Index != NULL)
    {
        CLE = Index->CLE;
        ALE = Index->ALE;
        Data = Index->Data;
        DataToK9fxx08 = Index->DataToK9fxx08;
        DataToMCU = Index->DataToMCU;
    
        *CLE = DataToK9fxx08(K9FXX_READ_ID);
        *ALE = DataToK9fxx08(0);
    
        a = DataToMCU(*Data);
        b = DataToMCU(*Data);
    }
    
    return (a << 8) | b;
}

/*********************************************************************************************************
** Function name: K9fxx08SecCopy
** Descriptions: 芯片內扇區拷貝  copy chip sector
** Input:Index: 芯片信息結構體 chip information struct
**       SourSecIndex:源扇區索引 source sector index
**       DestSecIndex:目標扇區索引 destination sector index
** 
** Output: TRUE: 成功  OK
**         FALSE: 未成功 Not OK
** 
** Created by: chenmingji
** Created Date: 2005-2-18
**-------------------------------------------------------------------------------------------------------
** Modified by:
** Modified Date: 
**------------------------------------------------------------------------------------------------------
********************************************************************************************************/
        uint8 K9fxx08SecCopy(const K9fXX08Hardware *Index, uint32 SourSecIndex, uint32 DestSecIndex)
{
    if (Index != NULL)
    if (K9fxx08SectorRead(Index, Index->Buf, SourSecIndex) == TRUE)
    {
        return K9fxx08SectorProgram(Index, Index->Buf, DestSecIndex);
    }
    return FALSE;
}

/*********************************************************************************************************
** Function name: K9fxx08BlockCheck
** Descriptions: 芯片塊初始有效檢測  chip block OK at leave factory
** Input:Index: 芯片信息結構體 chip information struct
**       BlockIndex:塊索引  block index
**
** Output: TRUE: 成功  OK
**         FALSE: 未成功 Not OK
** 
** Created by: chenmingji
** Created Date: 2005-2-18
**-------------------------------------------------------------------------------------------------------
** Modified by:
** Modified Date: 
**------------------------------------------------------------------------------------------------------
********************************************************************************************************/
        uint8 K9fxx08BlockCheck(const K9fXX08Hardware *Index, uint32 BlockIndex)
{
    uint8 Buf[64];
    
    if (Index != NULL)
    if (K9fxx08SectCRead(Index, Buf, BlockIndex * (Index->SecPerBlock)) == TRUE)
    {
        if (Buf[5] == 0xff)
        {
            if (K9fxx08SectCRead(Index, Buf, BlockIndex * (Index->SecPerBlock) + 1) == TRUE)
            {
                if (Buf[5] == 0xff)
                {
                    return TRUE;
                }
            }
        }
    }
    return FALSE;
}

/*********************************************************************************************************
** Function name: K9fxx08SectorCheck
** Descriptions: 校驗的芯片扇區  check chip sector
** Input:Index: 芯片信息結構體 chip information struct
**       Buf:數據緩沖區 data buf
**       SecIndex:扇區索引 sector index
** 
** Output: TRUE: 成功  OK
**         FALSE: 未成功 Not OK
** 
** Created by: chenmingji
** Created Date: 2005-2-18
**-------------------------------------------------------------------------------------------------------
** Modified by:
** Modified Date: 
**------------------------------------------------------------------------------------------------------
********************************************************************************************************/

        uint8 K9fxx08SectorCheck(const K9fXX08Hardware *Index, void *Buf, uint32 SecIndex)
{
    unsigned int i;
    volatile uint8 *CLE;
    volatile uint8 *ALE;
    volatile uint8 *Data;
    uint8 *cp;
    uint8 (* DataToK9fxx08)(uint8 Data);
    
    cp = Buf;
    if (Index != NULL)
    {
        CLE = Index->CLE;
        ALE = Index->ALE;
        Data = Index->Data;
        DataToK9fxx08 = Index->DataToK9fxx08;
        
        *CLE = DataToK9fxx08(K9FXX_SET_ADDR_A);
        *ALE = DataToK9fxx08(0);
        *ALE = DataToK9fxx08(SecIndex & 0xff);
        *ALE = DataToK9fxx08((SecIndex >> 8) & 0xff);
        *ALE = DataToK9fxx08((SecIndex >> 16) & 0xff);
        *ALE = DataToK9fxx08((SecIndex >> 24) & 0xff);
    
        while (1)
        {
            if ((K9fxx08ReadStatus(Index) & K9FXX_BUSY) != 0)
            {
                break;
            }
        }
    
        *CLE = DataToK9fxx08(K9FXX_SET_ADDR_A);
        
        i = Index->BytsPerSec;
        do
        {
            if (*cp++ != *Data)
            {
                return FALSE;
            }
        } while ( --i != 0);
        return TRUE;
    }
    return FALSE; 
}

/*********************************************************************************************************
** Function name: K9fxx08SectCCheck
** Descriptions: 校驗芯片扇區附加數據  Check chip sector subjoin data
** Input:Index: 芯片信息結構體 chip information struct
**       Buf:數據緩沖區 data buf
**       SecIndex:扇區索引 sector index
** 
** Output: TRUE: 成功  OK
**         FALSE: 未成功 Not OK
** 
** Created by: chenmingji
** Created Date: 2005-2-18
**-------------------------------------------------------------------------------------------------------
** Modified by:
** Modified Date: 
**------------------------------------------------------------------------------------------------------
********************************************************************************************************/
        uint8 K9fxx08SectCCheck(const K9fXX08Hardware *Index, void *Buf, uint32 SecIndex)
{
    unsigned int i;
    volatile uint8 *CLE;
    volatile uint8 *ALE;
    volatile uint8 *Data;
    uint8 *cp;
    uint8 (* DataToK9fxx08)(uint8 Data);
    
    cp = Buf;
    if (Index != NULL)
    {

        CLE = Index->CLE;
        ALE = Index->ALE;
        Data = Index->Data;
        DataToK9fxx08 = Index->DataToK9fxx08;
        
        *CLE = DataToK9fxx08(K9FXX_SET_ADDR_C);
        *ALE = DataToK9fxx08(0);
        *ALE = DataToK9fxx08(SecIndex & 0xff);
        *ALE = DataToK9fxx08((SecIndex >> 8) & 0xff);
        *ALE = DataToK9fxx08((SecIndex >> 16) & 0xff);
        *ALE = DataToK9fxx08((SecIndex >> 24) & 0xff);
    
        while (1)
        {
            if ((K9fxx08ReadStatus(Index) & K9FXX_BUSY) != 0)
            {
                break;
            }
        }
    
        *CLE = DataToK9fxx08(K9FXX_SET_ADDR_C);
    
        i = Index->BytsPerSecC;
        do
        {
            if (*cp++ != *Data)
            {
                return FALSE;
            }
        } while ( --i != 0);
        return TRUE;
    }
    return FALSE; 
}
/*********************************************************************************************************
**                            End Of File
********************************************************************************************************/

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
麻豆视频一区二区| 亚洲一区二区三区三| 69av一区二区三区| 欧美日韩精品免费| 欧美日韩大陆一区二区| 欧美人xxxx| 91精品麻豆日日躁夜夜躁| 欧美日韩国产bt| 在线不卡中文字幕| 日韩免费视频一区| 精品国产乱子伦一区| www久久精品| 久久久久久久网| 国产精品久久久久久福利一牛影视 | 亚洲国产成人精品视频| 亚洲一区二区欧美| 婷婷亚洲久悠悠色悠在线播放| 亚瑟在线精品视频| 奇米影视一区二区三区| 久久精品国产久精国产| 国产精品一区二区免费不卡| 成人免费视频国产在线观看| 欧洲av一区二区嗯嗯嗯啊| 欧美精品久久99久久在免费线| 欧美本精品男人aⅴ天堂| 精品区一区二区| 亚洲天堂成人在线观看| 午夜不卡av在线| 国模套图日韩精品一区二区| 94色蜜桃网一区二区三区| 欧美系列亚洲系列| 久久蜜桃香蕉精品一区二区三区| 国产精品理论在线观看| 亚洲不卡一区二区三区| 国产凹凸在线观看一区二区| 欧美日韩一区视频| 欧美国产丝袜视频| 蜜臀av国产精品久久久久| 成人福利视频网站| 91精品免费观看| 亚洲免费在线电影| 久久精品99国产国产精| 在线观看成人小视频| 日本一区二区在线不卡| 亚洲123区在线观看| 94色蜜桃网一区二区三区| 精品国产不卡一区二区三区| 亚洲妇熟xx妇色黄| 成人h精品动漫一区二区三区| 91 com成人网| 亚洲综合小说图片| 99久久综合精品| 久久精品夜色噜噜亚洲a∨| 日韩电影在线免费| 欧美在线看片a免费观看| 国产精品久久久久久久久图文区| 蜜芽一区二区三区| 欧美日韩国产片| 亚洲综合另类小说| 色婷婷综合视频在线观看| 国产欧美一区二区精品久导航| 免费成人在线视频观看| 欧美高清视频不卡网| 亚洲中国最大av网站| 色诱亚洲精品久久久久久| 欧美高清在线一区二区| 国产在线精品一区二区| 日韩精品专区在线影院重磅| 日韩 欧美一区二区三区| 欧美熟乱第一页| 亚洲午夜在线视频| 欧美精品自拍偷拍动漫精品| 婷婷开心久久网| 9191精品国产综合久久久久久| 亚洲午夜电影在线| 欧美日韩小视频| 免费成人在线网站| 欧美大片日本大片免费观看| 精品一区二区在线视频| www成人在线观看| 国产一区二区三区免费在线观看| 精品国产乱码久久久久久夜甘婷婷 | 欧美日韩电影在线播放| 日韩黄色免费网站| 日韩欧美色电影| 国精品**一区二区三区在线蜜桃| 日韩免费观看2025年上映的电影 | 久久网站最新地址| 国产毛片精品视频| 欧美国产一区二区在线观看 | 日本不卡在线视频| 欧美成人官网二区| 国产精品亚洲视频| 亚洲欧美电影院| 欧美精选午夜久久久乱码6080| 久久激情五月婷婷| wwwwxxxxx欧美| 一本大道综合伊人精品热热| 天堂va蜜桃一区二区三区漫画版| 日韩你懂的在线观看| 99免费精品在线| 蜜桃久久久久久| 国产精品拍天天在线| 欧美日韩另类一区| 国产伦精品一区二区三区视频青涩 | 日韩欧美国产系列| 国产sm精品调教视频网站| 亚洲男帅同性gay1069| 91精品一区二区三区久久久久久 | 国产精品日韩精品欧美在线| 在线亚洲一区观看| 美女高潮久久久| 最新国产成人在线观看| 欧美日本韩国一区二区三区视频| 国产乱人伦偷精品视频不卡| 一区二区三区不卡视频在线观看| 欧美一区二区三区在线观看| 成人国产电影网| 久久精品久久久精品美女| 亚洲人成亚洲人成在线观看图片 | 国产精品免费视频一区| 欧美性一二三区| 国产激情一区二区三区| 日韩中文字幕区一区有砖一区| 国产精品乱码人人做人人爱| 欧美精品在线一区二区| 懂色av中文字幕一区二区三区| 日韩高清一区在线| 亚洲视频网在线直播| 亚洲精品在线三区| 91黄色免费网站| 91在线视频在线| 国产精品18久久久久久久久| 美女视频免费一区| 亚洲黄色尤物视频| 国产视频在线观看一区二区三区| 日韩一区二区影院| 欧美性淫爽ww久久久久无| 97久久精品人人做人人爽| 国产成人av网站| 久88久久88久久久| 蜜桃久久久久久久| 美国av一区二区| 琪琪久久久久日韩精品| 亚洲一二三四在线| 亚洲精品国产第一综合99久久| 国产拍揄自揄精品视频麻豆| 久久蜜桃一区二区| 久久精品一区四区| 国产清纯白嫩初高生在线观看91 | 久久综合狠狠综合久久综合88| 欧美美女直播网站| 欧美乱妇23p| 日韩区在线观看| 精品欧美久久久| 久久免费的精品国产v∧| 久久婷婷国产综合精品青草| 亚洲精品在线观看视频| 久久久久久久久97黄色工厂| 欧美激情综合在线| 国产精品国产三级国产aⅴ无密码| 亚洲国产精品t66y| 亚洲色图自拍偷拍美腿丝袜制服诱惑麻豆| 欧美极品另类videosde| 中文字幕一区二区三区不卡在线 | 欧美性受xxxx黑人xyx性爽| 91麻豆免费观看| 欧美亚洲综合一区| 538prom精品视频线放| 日韩精品专区在线| 久久久三级国产网站| 一区免费观看视频| 亚洲午夜在线电影| 久久爱www久久做| 国产a级毛片一区| 在线亚洲一区二区| 欧美一区二区三区在线| 久久这里只有精品6| 国产精品白丝在线| 日韩精品免费视频人成| 激情综合一区二区三区| 成人在线综合网站| 欧美亚洲国产怡红院影院| 日韩精品一区二区三区中文不卡 | 久久国产精品一区二区| 国产ts人妖一区二区| 欧美视频在线观看一区| 欧美一区二视频| 国产精品私人自拍| 天天色 色综合| 国产精品一区二区免费不卡| 精品视频123区在线观看| www国产成人免费观看视频 深夜成人网| 亚洲欧洲美洲综合色网| 轻轻草成人在线| 色综合视频在线观看| 精品国产一区二区三区四区四| 中文久久乱码一区二区| 蜜臀精品一区二区三区在线观看| 成人免费高清在线观看|