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

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

?? loader.c

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

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

/*********************************************************************************************************
** 函數名稱: strupr
** 功能描述: 小寫轉換為大寫
** 輸 入: 字符串指針
** 輸 出: 同輸入
**
** 全局變量: 無
** 調用模塊: 無
**
** 作 者: 陳明計
** 日 期: 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;
}

/*********************************************************************************************************
** 函數名稱: CheckString
** 功能描述: 檢查字符串是否合法
** 輸 入: 無
** 輸 出: TRUE:成功
**         FALSE:失敗
** 全局變量: 無
** 調用模塊: 無
**
** 作 者: 陳明計
** 日 期: 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;    
}

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

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

/*********************************************************************************************************
** 函數名稱: DownloadLine
** 功能描述: 處理hex文件的一行
** 輸 入: 字符串
** 輸 出: 參考loader.h  
** 全局變量: 無
** 調用模塊: 無
**
** 作 者: 陳明計
** 日 期: 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
********************************************************************************************************/

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
樱桃视频在线观看一区| 国产日韩av一区| 美女脱光内衣内裤视频久久影院| 欧美狂野另类xxxxoooo| 国产高清精品网站| 亚洲精品一区二区三区福利| 美女一区二区三区| 国产精品你懂的| 欧美老人xxxx18| 国产高清亚洲一区| 亚洲高清不卡在线观看| 久久只精品国产| 欧美在线免费观看亚洲| 另类小说图片综合网| 亚洲女人的天堂| 精品国产髙清在线看国产毛片| 成人app在线| 日韩成人av影视| 欧美白人最猛性xxxxx69交| av电影在线不卡| 亚洲电影视频在线| 欧美国产日本韩| 日韩欧美高清在线| 欧美日韩精品综合在线| 丁香激情综合五月| 日本欧美在线看| 亚洲精品亚洲人成人网在线播放| 亚洲精品一区二区在线观看| 欧美视频在线播放| 成人av综合在线| 国产伦精品一区二区三区免费迷| 亚洲成人在线免费| 国产精品福利影院| 337p日本欧洲亚洲大胆色噜噜| 成人va在线观看| 蜜桃av一区二区三区电影| 尤物在线观看一区| 亚洲欧美中日韩| 久久久久高清精品| 91精品欧美综合在线观看最新 | 麻豆精品视频在线| 亚洲一区影音先锋| 中文字幕一区二区三区在线播放| 欧美大肚乱孕交hd孕妇| 欧美视频在线播放| 在线视频亚洲一区| 成人激情免费网站| 粉嫩aⅴ一区二区三区四区五区| 久久se精品一区二区| 亚洲午夜久久久久| 亚洲综合免费观看高清完整版在线| 国产精品久久久久9999吃药| 欧美国产视频在线| 欧美激情一区二区在线| 国产亚洲视频系列| 久久久久久久久久久久久夜| 精品久久一区二区三区| 欧美一区二区三区啪啪| 欧美一区二区三区在线看| 欧美日韩二区三区| 欧美日韩不卡一区二区| 欧美二区乱c少妇| 色婷婷国产精品久久包臀| 国产黄色精品网站| 成人午夜短视频| 不卡区在线中文字幕| 成人伦理片在线| 91丨porny丨户外露出| 欧美日韩不卡在线| 欧美伦理影视网| 欧美一级片在线看| 日韩你懂的电影在线观看| 欧美成人r级一区二区三区| 日韩欧美国产一区二区在线播放| 日韩欧美第一区| 精品国产乱子伦一区| 国产欧美一区二区三区鸳鸯浴| 欧美韩国日本不卡| 亚洲三级免费观看| 一级女性全黄久久生活片免费| 亚洲国产成人91porn| 美女视频一区二区| 盗摄精品av一区二区三区| 色视频欧美一区二区三区| 欧美日韩久久久| 欧美成人bangbros| 精品国产一区二区亚洲人成毛片| 亚洲国产电影在线观看| 亚洲中国最大av网站| 青青草国产精品97视觉盛宴| 国产一本一道久久香蕉| 一本大道久久a久久综合| 欧美久久久久久久久| 91精品国产91久久久久久最新毛片| 欧美日本在线一区| 久久网站热最新地址| 亚洲人成网站色在线观看| 三级成人在线视频| 丰满少妇久久久久久久| 欧美日韩精品二区第二页| 精品盗摄一区二区三区| 中文字幕字幕中文在线中不卡视频| 亚洲成人免费影院| 国产电影一区二区三区| 欧美三级韩国三级日本一级| 久久久精品tv| 亚洲一区在线电影| 成人午夜私人影院| 日韩欧美国产三级| 悠悠色在线精品| 国产99一区视频免费| 欧美疯狂性受xxxxx喷水图片| xnxx国产精品| 亚洲福利电影网| 国产成人在线电影| 欧美久久久久久久久中文字幕| 日韩免费在线观看| 一区二区三区精品视频在线| 国产又黄又大久久| 8x8x8国产精品| 亚洲丝袜精品丝袜在线| 国产专区欧美精品| 91精品国产麻豆国产自产在线 | 国产精品主播直播| 欧美体内she精高潮| 欧美国产精品劲爆| 免费视频一区二区| 在线观看一区二区视频| 亚洲国产精品激情在线观看| 免费在线看成人av| 不卡一区二区三区四区| 91麻豆精品国产自产在线观看一区 | 国产精品三级视频| 一区二区三区在线视频观看58| 美女国产一区二区| 91老师片黄在线观看| 精品sm在线观看| 日韩精品一卡二卡三卡四卡无卡| 在线日韩av片| 亚洲免费观看视频| 成人免费视频视频| 国产视频一区在线观看| 久久99久久久久| 一本到高清视频免费精品| 亚洲精品在线观看网站| 久久成人免费网| 日韩午夜在线影院| 日韩福利视频网| 精品免费一区二区三区| 久久成人av少妇免费| 欧美一区二区在线不卡| 精品无码三级在线观看视频 | 在线视频国内一区二区| 午夜精品在线视频一区| 91麻豆精品91久久久久久清纯| 蜜臀精品一区二区三区在线观看| 日韩一二在线观看| 国产另类ts人妖一区二区| 国产精品美女久久久久av爽李琼 | 国产精品一区二区在线看| 久久久国产一区二区三区四区小说 | 成人av免费观看| 亚洲美女在线一区| 欧美高清视频www夜色资源网| 麻豆国产精品777777在线| 欧美国产日韩a欧美在线观看 | 91精品国产日韩91久久久久久| 裸体一区二区三区| 国产精品久久久久婷婷| 欧美剧情片在线观看| 韩国理伦片一区二区三区在线播放| 国产拍欧美日韩视频二区| 色先锋aa成人| 精品一区二区三区在线观看国产| 亚洲国产精品精华液2区45| 欧美色图12p| 懂色一区二区三区免费观看| 亚洲精选免费视频| 欧美成人激情免费网| 日本高清无吗v一区| 久久精品国产精品亚洲综合| 亚洲少妇最新在线视频| 日韩午夜在线播放| 91农村精品一区二区在线| 美女高潮久久久| 一区二区三区在线视频免费| 久久久久久久精| 欧美日韩视频第一区| 成人免费毛片片v| 欧美a级一区二区| 一区二区在线观看av| 国产精品女主播av| 欧美一级午夜免费电影| 91网站最新地址| 精品一区二区三区香蕉蜜桃| 亚洲午夜精品在线| **网站欧美大片在线观看| 日韩精品一区二区三区视频| 欧美三片在线视频观看| 成人国产精品免费网站|