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

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

?? loader.c

?? arm lpc2000 應(yīng)用歷程 arm lpc2000 應(yīng)用歷程
?? C
字號(hào):
/****************************************Copyright (c)**************************************************
**                               廣州周立功單片機(jī)發(fā)展有限公司
**                                     研    究    所
**                                        ARM開發(fā)組
**
**                                 http://www.zlgmcu.com
**
**--------------文件信息--------------------------------------------------------------------------------
**文   件   名: loader.c
**創(chuàng)   建   人: 陳明計(jì)
**最后修改日期: 2004年2月26日
**描        述: 用于下載hex文件的一行
**              
**--------------歷史版本信息----------------------------------------------------------------------------
** 創(chuàng)建人: 陳明計(jì)
** 版  本: 2004年2月26日
** 日 期: 1.0
** 描 述: 原始版本
**
**--------------當(dāng)前版本修訂------------------------------------------------------------------------------
** 修改人: 
** 日 期:
** 描 述:
**
**------------------------------------------------------------------------------------------------------
********************************************************************************************************/

#define IN_LOADER
#include "config.h"
static uint32 Segm = 0;         /* 段地址 */

/*********************************************************************************************************
** 函數(shù)名稱: strupr
** 功能描述: 小寫轉(zhuǎn)換為大寫
** 輸 入: 字符串指針
** 輸 出: 同輸入
**
** 全局變量: 無(wú)
** 調(diào)用模塊: 無(wú)
**
** 作 者: 陳明計(jì)
** 日 期: 2004年2月25日
**-------------------------------------------------------------------------------------------------------
** 修改人: 
** 日 期: 
**------------------------------------------------------------------------------------------------------
********************************************************************************************************/
        char *strupr(char *Str)
{
    char *cp;
    
    cp = Str;
    while (*cp != 0)
    {
        if (*cp >= 'a' && *cp <= 'z' )
        {
            *cp -=  'a' - 'A';
        }
        cp++;
    }
    return Str;
}

/*********************************************************************************************************
** 函數(shù)名稱: CheckString
** 功能描述: 檢查字符串是否合法
** 輸 入: 無(wú)
** 輸 出: TRUE:成功
**         FALSE:失敗
** 全局變量: 無(wú)
** 調(diào)用模塊: 無(wú)
**
** 作 者: 陳明計(jì)
** 日 期: 2004年2月26日
**-------------------------------------------------------------------------------------------------------
** 修改人: 
** 日 期: 
**------------------------------------------------------------------------------------------------------
********************************************************************************************************/
        uint8 CheckString(char *s)
{
    uint16 i;
    uint8 Ch;
    
    i = 0;
    Ch = *s;
    while (Ch != 0)
    {
        i++;
        s++;
        Ch = *s;       
        if (i > 520)
        {
            return FALSE;
        }
        
        if (Ch >= '0' && Ch <='9')
        {
            continue;
        }
        if (Ch >= 'A' && Ch <='F')
        {
            continue;    
        }
    }
    if (i < 10)
    {
        return FALSE;
    }
    return TRUE;    
}

/*********************************************************************************************************
** 函數(shù)名稱: HexToBin
** 功能描述: 將一個(gè)字符(16進(jìn)制了表示)轉(zhuǎn)換為二進(jìn)制數(shù)
** 輸 入: 字符
** 輸 出: 結(jié)果
** 全局變量: 無(wú)
** 調(diào)用模塊: 無(wú)
**
** 作 者: 陳明計(jì)
** 日 期: 2004年2月26日
**-------------------------------------------------------------------------------------------------------
** 修改人: 
** 日 期: 
**------------------------------------------------------------------------------------------------------
********************************************************************************************************/
        uint8 HexToBin(char Ch)
{
    if (Ch >= '0' && Ch <='9')
    {
        return (Ch - '0');    
    }
    else
    {
        return (Ch - 'A' + 0x0a);    
    }
}

/*********************************************************************************************************
** 函數(shù)名稱: Load2Hex
** 功能描述: 將而個(gè)字符(16進(jìn)制了表示)轉(zhuǎn)換為二進(jìn)制數(shù)
** 輸 入: 字符
** 輸 出: 結(jié)果
** 全局變量: 無(wú)
** 調(diào)用模塊: 無(wú)
**
** 作 者: 陳明計(jì)
** 日 期: 2004年2月26日
**-------------------------------------------------------------------------------------------------------
** 修改人: 
** 日 期: 
**------------------------------------------------------------------------------------------------------
********************************************************************************************************/
        uint8 Load2Hex(char Ch1, char Ch2)
{
    return ((HexToBin(Ch1) << 4) | HexToBin(Ch2));
}

/*********************************************************************************************************
** 函數(shù)名稱: DownloadLine
** 功能描述: 處理hex文件的一行
** 輸 入: 字符串
** 輸 出: 參考loader.h  
** 全局變量: 無(wú)
** 調(diào)用模塊: 無(wú)
**
** 作 者: 陳明計(jì)
** 日 期: 2004年2月26日
**-------------------------------------------------------------------------------------------------------
** 修改人: 
** 日 期: 
**------------------------------------------------------------------------------------------------------
********************************************************************************************************/

#define Read2Hex(a)                     \
{                                       \
    if (s[0] == 0 || s[1] == 0)         \
    {                                   \
        return 2;                       \
    }                                   \
    a = Load2Hex(s[0], s[1]);           \
    CheckSum += a;                      \
    s += 2;                             \
}

/*#define Read4Hex(a)                     \
{                                       \
    temp1 = Load2Hex(s[0], s[1]);       \
    checkSum += temp1;                  \
    s += 2;                             \
    temp2 = temp1;                      \
    temp1 = Load2Hex(s[0], s[1]);       \
    checkSum += temp1;                  \
    s += 2;                             \
    a = (temp2 << 8) | temp1;           \
}
*/
#define Read4Hex(b)                     \
{                                       \
    Read2Hex(temp1);                    \
    temp2 = temp1;                      \
    Read2Hex(temp1);                    \
    b = (temp2 << 8) | temp1;           \
}


        uint8 DownloadLine(char *s)
{
    uint8 Length,CheckSum,temp1;
    uint16 temp2;
    uint32 Addr,Address;
    
    if (s == (char *)0)
    {
        return DOWNLOAD_LINE;
    }
    
    if (*s == ';' || *s == '\n')
    {
        return DOWNLOAD_LINE;
    }

    if (*s != ':')
    {
        return FILE_FOEMAT_ERR;
    }
    
    s++;
    strupr(s);
    if (CheckString(s) != TRUE)
    {
        return FILE_FOEMAT_ERR;       
    }

    CheckSum = 0;
    Read2Hex(Length);
    Read4Hex(Addr);

    Read2Hex(temp1);
    switch (temp1)
    {
        case 0:
            Address = Segm + Addr;
            break;
        case 1:
            CheckSum += Load2Hex(s[0],s[1]);
            if (CheckSum != 0)
            {
                return CHECK_ERR;
            }
            else
            {
                return DOWNLOAD_FINISH;
            }
        case 2:
            Read4Hex(Segm);
            Segm = Segm << 4;
            Length -= 2;
            break;
        case 3:                                  /* read start address   */
            break;
        case 4:
            Read4Hex(Segm);
            Segm = Segm << 16;
            Length -= 2;
            break;
        default:
            return BAD_RECORD_TYPE;
    }
    while (Length != 0)
    {
        Read2Hex(temp1);
        Read2Hex(temp2);
        temp2 = (temp2 << 8) | temp1;

//        WordProgram(Address, temp2);
        
        if (WordProgram(Address, temp2) == FALSE)
        {
            return PROGRAM_ERR;
        }
        Address += 2;
        Length -= 2;
    }
    CheckSum += Load2Hex(s[0],s[1]);
    if (CheckSum != 0)
    {
        return CHECK_ERR;
    }
    return DOWNLOAD_LINE;
}

        uint8 Check(char *s, uint32 *Addr1)
{
    uint8 Length,CheckSum,temp1;
    uint16 temp2;
    uint32 Addr,Address;
    
    if (s == (char *)0)
    {
        return DOWNLOAD_LINE;
    }
    
    if (*s == ';' || *s == '\n')
    {
        return DOWNLOAD_LINE;
    }

    if (*s != ':')
    {
        return FILE_FOEMAT_ERR;
    }
    
    s++;
    strupr(s);
    if (CheckString(s) != TRUE)
    {
        return FILE_FOEMAT_ERR;       
    }

    CheckSum = 0;
    Read2Hex(Length);
    Read4Hex(Addr);

    Read2Hex(temp1);
    switch (temp1)
    {
        case 0:
            Address = Segm + Addr;
            break;
        case 1:
            CheckSum += Load2Hex(s[0],s[1]);
            if (CheckSum != 0)
            {
                return CHECK_ERR;
            }
            else
            {
                return DOWNLOAD_FINISH;
            }
        case 2:
            Read4Hex(Segm);
            Segm = Segm << 4;
            Length -= 2;
            break;
        case 3:                                  /* read start address   */
            break;
        case 4:
            Read4Hex(Segm);
            Segm = Segm << 16;
            Length -= 2;
            break;
        default:
            return BAD_RECORD_TYPE;
    }
    while (Length != 0)
    {
        Read2Hex(temp1);
        Read2Hex(temp2);
        temp2 = (temp2 << 8) | temp1;

      
        if (((uint16 *)(Address))[0] != temp2)
        {
            *Addr1 = Address;
            return PROGRAM_ERR;
        }
        Address += 2;
        Length -= 2;
    }
    CheckSum += Load2Hex(s[0],s[1]);
    if (CheckSum != 0)
    {
        return CHECK_ERR;
    }
    return DOWNLOAD_LINE;
}
/*********************************************************************************************************
**                            End Of File
********************************************************************************************************/

?? 快捷鍵說(shuō)明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號(hào) Ctrl + =
減小字號(hào) Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
91麻豆免费观看| 亚洲国产精品黑人久久久| 中文字幕中文在线不卡住| 蜜乳av一区二区| 在线播放欧美女士性生活| 亚洲同性同志一二三专区| 成人一级片网址| 国产亚洲成年网址在线观看| 精久久久久久久久久久| 日韩欧美第一区| 美女视频一区二区| 久久综合五月天婷婷伊人| 久久99精品久久久久久久久久久久 | 成人国产亚洲欧美成人综合网| 久久综合九色综合97_久久久 | 日韩欧美国产一区二区在线播放| 亚洲成av人片在线| 欧美日韩视频在线一区二区| 亚洲欧美区自拍先锋| 色婷婷亚洲一区二区三区| 亚洲尤物在线视频观看| 欧美日韩一级黄| 免费欧美高清视频| 精品国产伦一区二区三区观看方式 | 欧美激情在线一区二区三区| 国产91在线观看丝袜| 国产精品电影院| av在线播放成人| 亚洲欧美日韩国产中文在线| 91麻豆国产福利在线观看| 视频一区国产视频| 欧美mv日韩mv国产网站| 色综合久久久久久久久久久| 九九久久精品视频| 成人欧美一区二区三区白人| 久久久欧美精品sm网站| 国产精品资源站在线| 亚洲主播在线观看| 久久九九99视频| 欧美人与性动xxxx| 成人在线综合网站| 丝袜国产日韩另类美女| 中文字幕一区二区5566日韩| 欧美伦理电影网| 国产成人亚洲精品狼色在线| 丝袜美腿亚洲色图| 久久久99久久| 91精品久久久久久久91蜜桃| av不卡在线观看| 久久国产成人午夜av影院| 亚洲综合精品自拍| 国产精品美女久久久久高潮| 日韩美女天天操| 欧美人伦禁忌dvd放荡欲情| 成人av在线一区二区| 麻豆成人av在线| 亚洲福利视频一区| 亚洲视频狠狠干| 欧美国产综合色视频| 精品免费99久久| 日韩欧美一区在线观看| 欧美日韩成人在线一区| 欧美在线视频不卡| 色偷偷久久人人79超碰人人澡| 国产成人欧美日韩在线电影| 久久99国产精品免费| 免费成人在线视频观看| 免费在线成人网| 视频在线观看91| 亚洲bt欧美bt精品| 亚洲麻豆国产自偷在线| 国产精品久久久久久久久免费樱桃| 久久久久国产一区二区三区四区| 日韩欧美在线影院| 宅男噜噜噜66一区二区66| 欧美日韩一区二区三区视频| 色婷婷av一区| 色婷婷亚洲精品| 日本精品裸体写真集在线观看| 91片黄在线观看| 色乱码一区二区三区88| 色偷偷成人一区二区三区91| 色综合视频在线观看| 色噜噜久久综合| 欧美日韩一区二区三区在线 | 不卡av电影在线播放| 国产99久久久精品| 成人免费毛片嘿嘿连载视频| caoporn国产精品| 91同城在线观看| 欧美精品久久久久久久多人混战| 91精品国产欧美一区二区成人| 91精品欧美福利在线观看| 精品日韩欧美一区二区| 久久久久亚洲蜜桃| 国产精品视频麻豆| 亚洲综合久久久| 日韩中文字幕区一区有砖一区| 美女诱惑一区二区| 国产一区免费电影| 粉嫩高潮美女一区二区三区| 99精品一区二区三区| 欧美日韩你懂的| 亚洲男同性视频| 亚洲一二三区视频在线观看| 青草国产精品久久久久久| 激情久久五月天| 91网站最新网址| 717成人午夜免费福利电影| 精品区一区二区| 国产午夜精品一区二区三区视频| ●精品国产综合乱码久久久久| 樱花草国产18久久久久| 久久精品国产精品亚洲红杏| 国产精品18久久久久久久久| www.av精品| 欧美久久久一区| 国产亚洲精品精华液| 亚洲一区二区三区小说| 美女网站一区二区| a美女胸又www黄视频久久| 欧美日韩国产不卡| 欧美—级在线免费片| 性欧美疯狂xxxxbbbb| 国产在线精品一区二区夜色| 97久久精品人人爽人人爽蜜臀| 91麻豆精品91久久久久同性| 国产精品视频一区二区三区不卡| 午夜精品久久久久久| 国产成人在线电影| 欧美精品在线一区二区| 国产精品狼人久久影院观看方式| 日日欢夜夜爽一区| eeuss鲁片一区二区三区在线看| 日韩精品一区在线观看| 亚洲自拍偷拍av| 成人高清伦理免费影院在线观看| 91精品国产黑色紧身裤美女| 日韩理论片中文av| 国产**成人网毛片九色| 欧美sm美女调教| 天天做天天摸天天爽国产一区| 成人手机电影网| 精品久久久久99| 日本不卡在线视频| 在线免费观看日韩欧美| 国产精品免费视频网站| 国产专区综合网| 337p亚洲精品色噜噜狠狠| 亚洲伊人色欲综合网| 99久久综合国产精品| 国产亚洲综合在线| 欧美精品久久99久久在免费线 | 中文字幕欧美三区| 国产一区二区三区美女| 日韩欧美国产三级电影视频| 亚洲国产精品天堂| 在线看不卡av| 一区二区高清视频在线观看| av不卡在线播放| 国产精品盗摄一区二区三区| 精品在线视频一区| 日韩三级.com| 毛片av一区二区三区| 在线一区二区三区四区五区| 中文字幕日韩精品一区| www.性欧美| 亚洲精品老司机| 色诱视频网站一区| 亚洲综合激情另类小说区| 色哟哟在线观看一区二区三区| 国产精品免费久久久久| 国产91清纯白嫩初高中在线观看 | 99re热视频精品| 亚洲精品国产视频| 色综合天天狠狠| 亚洲高清免费在线| 欧美美女黄视频| 日本人妖一区二区| 日韩精品一区二区三区中文不卡| 蜜臀va亚洲va欧美va天堂| 日韩欧美一二三| 国产自产视频一区二区三区| 久久精品欧美一区二区三区麻豆| 国产精品白丝jk黑袜喷水| 日本一区二区三区dvd视频在线| 日韩福利电影在线观看| 亚洲精品一区二区在线观看| 国产乱人伦偷精品视频不卡 | 91丝袜呻吟高潮美腿白嫩在线观看| 国产精品午夜免费| 91日韩一区二区三区| 亚洲国产一二三| 7777精品伊人久久久大香线蕉的 | 一区二区视频免费在线观看| 欧美日韩不卡视频| 美女视频黄免费的久久 | 麻豆精品一区二区综合av| 精品处破学生在线二十三| 成人丝袜18视频在线观看|