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

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

?? ce_merge.c

?? TDK 6521 SOC 芯片 DEMO程序
?? C
字號:
/*
    File: ce_merge.c
    ---- ce_merge ver 1.0 November 05, 2003 ----

    ce_merge ce_lctn old_lapie.hex ce.ce ce.dat new_lapie.hex

    Merges Intel hex files "old_lapie.hex" w/ "ce.ce" and "ce.dat" files.

    Outputs: Merged Intel hex file new_lapie.hex

    Copyright (C) 2005 Teridian SemiConductor, Corp. All Rights Reserved.
*/

#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <ctype.h>
#include <sys/timeb.h>

#define MAX_ROM_KSIZE   32
unsigned char Rom[ MAX_ROM_KSIZE * 1024 ];
char Buf[ 128 ];

#define MAX_CODE_SIZE 0x0C00
#define MAX_DATA_SIZE 0x0080

/*performs fopen on fname with type.  If result is NULL, exits with error*/
FILE *fopenorelse (char *fname, char *type)
{
    FILE *fn;

    fn = fopen (fname, type);

    if (fn == NULL)
    {
       printf ("Could not open '%s'.\n", fname);
       exit(0);
    }

    return(fn);
}

void Error (char *filename, int err, int ln)
{
    if (ln) 
       fprintf (stderr, "\nERROR %d at line %d in %s\n", err, ln, filename);
    else
    {
       fprintf (stderr, "\nUsage: ce_merge ce_code_adr ce_data_adr mpu.hex ce.ce ce.dat new_mpu.hex\n");
       fprintf (stderr, "\nfiles to be intel hex.\n");
    }

    exit(1);
}

int main (int argc, char * argv[])
{
    unsigned int    AddrH, AddrL, RecTyp, Byte;
    unsigned int    Addr, i, ByteCnt, ln, LnCSRd;
    unsigned char   LnCSCal;
      unsigned int  ce_code_lctn, ce_data_lctn;
      unsigned int  ce_code_size, ce_data_size;

    FILE *in_api, *in_code, *in_data;   // Input files.
    FILE *out_api;                      // Output file.
    char *versionstring="ver 1.0";
    char *in_api_name, *in_code_name, *in_data_name, *out_api_name;
    char *cptr;

    if (argc != 7) Error ("Arguments", 1, 0);

    sscanf (argv[1], "%x", &ce_code_lctn);
    sscanf (argv[2], "%x", &ce_data_lctn);
    in_api_name    = argv[3];
    in_code_name   = argv[4];
    in_data_name   = argv[5];
    out_api_name   = argv[6];

    printf ("\n---ce_merge %s%s---\n", versionstring, __DATE__);
    printf ("Beginning merge of MPU code w/ new CE code and data\n");

    cptr = &in_api_name[ strlen (in_api_name) - 4 ];

    if (strcmp (cptr, ".hex"))
    {  
       printf("Error: %s file must end with .hex suffix\n", in_api_name);
       exit(0);
    }

    cptr = &in_code_name[ strlen (in_code_name) - 3 ];

    if (strcmp (cptr, ".ce"))
    {  
       printf("Error: %s file must end with .ce suffix\n", in_code_name);
       exit(0);
    }

    cptr = &in_data_name[ strlen (in_data_name) - 4 ];

    if (strcmp (cptr, ".dat"))
    {  
       printf("Error: %s file must end with .dat suffix\n", in_data_name);
       exit(0);
    }

    cptr = &out_api_name[ strlen (out_api_name) - 4 ];

    if (strcmp (cptr, ".hex"))
    {  
       printf("Error: %s file must end with .hex suffix\n", out_api_name);
       exit(0);
    }

    in_api  = fopenorelse (in_api_name,  "r");
    in_code = fopenorelse (in_code_name, "r");
    in_data = fopenorelse (in_data_name, "r");
    out_api = fopenorelse (out_api_name, "w");

    /* Initially fill Rom with FFs */
    for (i = 0; i < sizeof (Rom); i++)
       Rom[ i ] = 0xFF;

    ln = 1;
    /* Read the input LAPIE hex file */
    do
    {
       i = fscanf (in_api, ":%2x%2x%2x%2x", &ByteCnt, &AddrH, &AddrL, &RecTyp);

       if (i != 4)
          Error (in_api_name, 1, ln);

       if (RecTyp > 1)
          Error (in_api_name, 2, ln);

       Addr = (AddrH << 8) + AddrL;
       LnCSCal = ByteCnt + AddrH + AddrL + RecTyp;

       for (i = 0; i < ByteCnt; i++)
       {
          if (fscanf (in_api, "%2x", &Byte) != 1)
             Error (in_api_name, 4, ln);

          if (Addr < sizeof (Rom))      /* Ignore higher addresses. */
             Rom[ Addr++ ] = Byte;

          LnCSCal += Byte;
       }

       if (fscanf (in_api, "%2x\n", &LnCSRd) != 1)
          Error (in_api_name, 5, ln);

       LnCSCal += LnCSRd;

       if (LnCSCal)
       {
         printf ("%2x %2x %2x %2x %2x %2x\n", ByteCnt, AddrH, AddrL, RecTyp, LnCSRd, LnCSCal);
         Error (in_api_name, 6, ln);
       }

       ln++;
    } while (RecTyp != 1);

    printf ("Read thru line# %d in file %s\n", ln - 1, in_api_name);

    ce_code_size = (unsigned short) ((Rom[ ce_code_lctn - 2 ] << 8) + Rom[ ce_code_lctn - 1 ]);
    ce_data_size = (unsigned short) ((Rom[ ce_data_lctn - 2 ] << 8) + Rom[ ce_data_lctn - 1 ]);

    printf ("\nCode @%4.4Xh Size %d; Data @%4.4Xh Size %d\n", ce_code_lctn, ce_code_size, ce_data_lctn, ce_data_size);

    if ((ce_code_size > MAX_CODE_SIZE) || (ce_data_size > MAX_DATA_SIZE))
    {
        fprintf (stderr, "\nIncompatible file, try different CE location\n");
        Error (in_api_name, 7, ln);
    }

    ln = 1;
    /* Read the input CE code file */
    do
    {
       i = fscanf (in_code, ":%2x%2x%2x%2x", &ByteCnt, &AddrH, &AddrL, &RecTyp);

       if (i != 4) Error (in_code_name, 1, ln);
       if (RecTyp > 1) Error (in_code_name, 2, ln);

       Addr = (AddrH << 8) + AddrL;
       LnCSCal = ByteCnt + AddrH + AddrL + RecTyp;

       for (i = 0; i < ByteCnt; i++)
       {
          if (fscanf (in_code, "%2x", &Byte) != 1) Error (in_code_name, 4, ln);

          if (Addr < (ce_code_size << 1))       /* Ignore higher addresses. */
             Rom[ ce_code_lctn + Addr++ ] = Byte;

          LnCSCal += Byte;
       }

       if (fscanf (in_code, "%2x\n", &LnCSRd) != 1) Error (in_code_name, 5, ln);

       LnCSCal += LnCSRd;

       if (LnCSCal != 0)
       {
          printf ("%2x %2x %2x %2x %2x %2x\n", ByteCnt, AddrH, AddrL, RecTyp, LnCSRd, LnCSCal);
          Error (in_code_name, 6, ln);
       }

       ln++;
    } while (RecTyp != 1);

    printf ("Read thru line# %d in file %s\n", ln - 1, in_code_name);

    ln = 1;
    /* Read the input CE data file */
    do
    {
       i = fscanf (in_data, ":%2x%2x%2x%2x", &ByteCnt, &AddrH, &AddrL, &RecTyp);

       if (i != 4) Error (in_data_name, 1, ln);
       if (RecTyp > 1) Error (in_data_name, 2, ln);

       Addr = (AddrH << 8) + AddrL;
       LnCSCal = ByteCnt + AddrH + AddrL + RecTyp;

       for (i = 0; i < ByteCnt; i++)
       {
          if (fscanf (in_data, "%2x", &Byte) != 1) Error (in_data_name, 4, ln);

          if (Addr < (ce_data_size << 2))      /* Ignore higher addresses. */
             Rom[ ce_data_lctn  + Addr++ ] = Byte;

          LnCSCal += Byte;
       }

       if (fscanf (in_data, "%2x\n", &LnCSRd) != 1) Error (in_data_name, 5, ln);

       LnCSCal += LnCSRd;

       if (LnCSCal != 0)
       {
          printf ("%2x %2x %2x %2x %2x %2x\n", ByteCnt, AddrH, AddrL, RecTyp, LnCSRd, LnCSCal);
          Error (in_data_name, 6, ln);
       }

       ln++;
    } while (RecTyp != 1);

    printf ("Read thru line# %d in file %s\n", ln - 1, in_data_name);

    ln = 1;
    /* Output new hex file for whole Rom */
    for (Addr = 0; Addr < sizeof (Rom);)
    {
       fprintf (out_api, ":20%4.4X00", Addr);
       LnCSCal = 0x20 + (Addr >> 8) + (Addr & 0xFF);

       for (i = 0; i <0x20; i++)
       {
          out_api, fprintf(out_api, "%2.2X", Rom[ Addr ]);
          LnCSCal += Rom[ Addr++ ];
       }

       LnCSCal = 0x100 - LnCSCal;
       fprintf (out_api, "%2.2X\n", LnCSCal);
       ln++;
    }
    fprintf (out_api, ":00000001FF\n");

    printf ("Wrote thru line# %d in file %s\n", ln, out_api_name);

    fclose (in_api);
    fclose (in_code);
    fclose (in_data);
    fclose (out_api);
    printf ("Completed merge of LAPIE w/ new CE code and data\n");

    return (0);
}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
黄一区二区三区| 青青国产91久久久久久| 久久99精品国产麻豆婷婷| 欧美一区二区三区免费视频 | 久久精品国产77777蜜臀| 日韩精品一二区| 成人国产精品免费| 中文字幕一区二区三区四区不卡| 99麻豆久久久国产精品免费| 一区二区三区四区av| 精品视频1区2区| 免费在线看一区| 国产日韩三级在线| 91蜜桃在线免费视频| 亚洲国产精品久久人人爱| 7777女厕盗摄久久久| 亚洲色欲色欲www| 欧美日韩亚洲另类| 久久精品国产99久久6| 中文成人综合网| 久久99久久精品| 中文字幕一区二区在线播放| 在线欧美日韩精品| 久久se这里有精品| 国产精品久久久久久久岛一牛影视 | 国产美女在线观看一区| 日本一区二区高清| 欧日韩精品视频| 久久成人18免费观看| 国产精品久久午夜| 欧美另类久久久品| 国产成人日日夜夜| 亚洲自拍偷拍图区| 久久丝袜美腿综合| 久久www免费人成看片高清| 亚洲欧美自拍偷拍| 欧美一区二区三区四区五区| 亚洲一区二区高清| 欧美精品一区二区久久久| 99久久国产综合精品色伊| 日日夜夜免费精品视频| 国产日韩欧美高清| 一区二区在线电影| av在线不卡免费看| 日韩精品电影一区亚洲| 91在线观看视频| 中文字幕一区二区三区在线不卡| 91精品国产91久久久久久一区二区| 国产精品亚洲午夜一区二区三区| 亚洲一区二区三区免费视频| 久久丝袜美腿综合| 欧美放荡的少妇| 波多野结衣中文一区| 免费成人性网站| 亚洲欧美一区二区三区久本道91| 精品久久人人做人人爽| 在线视频中文字幕一区二区| 亚洲精品成人悠悠色影视| 精品成人一区二区三区| 欧美亚洲一区二区在线| 国产suv精品一区二区三区| 婷婷综合另类小说色区| 欧美人与z0zoxxxx视频| 不卡视频在线看| 精品在线一区二区三区| 亚洲第一福利一区| 中文字幕在线观看不卡视频| 精品国产乱码久久| 欧美人与z0zoxxxx视频| 色综合视频一区二区三区高清| 亚洲已满18点击进入久久| 久久99九九99精品| 亚洲免费高清视频在线| 国产欧美一区二区精品性| 日韩亚洲欧美在线| 欧美日韩一级大片网址| 99久久久免费精品国产一区二区| 精品夜夜嗨av一区二区三区| 偷窥少妇高潮呻吟av久久免费| 色婷婷国产精品久久包臀| 亚洲人123区| 国产女主播视频一区二区| 欧美成人女星排名| 5566中文字幕一区二区电影| 色乱码一区二区三区88| 成人sese在线| 国产精品911| 国产精品毛片久久久久久| 久久久久久久久久久电影| 欧美一区二区在线免费观看| 欧美日韩一区 二区 三区 久久精品| 91在线国产福利| 成人av中文字幕| 国产成人在线色| 狠狠v欧美v日韩v亚洲ⅴ| 久久久影视传媒| 91视视频在线直接观看在线看网页在线看| 国产精品自产自拍| 韩国毛片一区二区三区| 久久97超碰国产精品超碰| 日韩国产欧美在线播放| 午夜av电影一区| 午夜欧美大尺度福利影院在线看| 一区二区三区毛片| 一区二区三区国产精品| 亚洲精品欧美综合四区| 亚洲精品免费播放| 亚洲男人电影天堂| 亚洲精品日韩专区silk| 一区二区免费视频| 亚洲一区二区三区四区五区黄| 亚洲精品视频一区| 亚洲一区二区三区激情| 亚洲成av人综合在线观看| 精品不卡在线视频| 久久久另类综合| 国产拍欧美日韩视频二区| 在线免费观看不卡av| 国产精品全国免费观看高清| 欧美精品日日鲁夜夜添| 欧美一区三区二区| www激情久久| 国产欧美一区二区在线| eeuss鲁片一区二区三区| 免费观看30秒视频久久| 老司机午夜精品99久久| 国产在线国偷精品产拍免费yy| 国产一区二区在线影院| 亚洲无线码一区二区三区| 亚洲国产日韩a在线播放| 午夜精品福利久久久| 日韩av在线播放中文字幕| 久久精品国产一区二区三| 国产在线一区观看| 成人一区二区三区视频在线观看| 99久久99久久精品免费观看| 在线精品亚洲一区二区不卡| 欧美精品在线视频| www国产亚洲精品久久麻豆| 国产精品网站在线观看| 一区二区三区影院| 日韩国产精品久久| 亚洲一区二区三区四区在线免费观看 | 狠狠色丁香久久婷婷综| 一区二区三区在线观看欧美| 国产欧美日韩麻豆91| 亚洲色图视频免费播放| 亚洲国产精品影院| 老司机精品视频在线| 成人亚洲精品久久久久软件| 色婷婷av一区二区三区gif| 91麻豆精品久久久久蜜臀| 久久久一区二区三区捆绑**| 亚洲欧美激情插| 日本中文字幕不卡| 懂色av一区二区夜夜嗨| 亚洲一线二线三线久久久| 久久精品在这里| 亚洲免费观看高清完整版在线| 三级亚洲高清视频| 国产成人精品综合在线观看| 色8久久人人97超碰香蕉987| 日韩一区二区三区免费看 | www成人在线观看| 亚洲视频每日更新| 日本中文在线一区| 不卡视频在线观看| 欧美一激情一区二区三区| 国产精品入口麻豆原神| 五月天亚洲精品| 成人一区二区三区在线观看| 日韩激情视频在线观看| 亚洲成人动漫一区| 国产精品亚洲一区二区三区妖精 | 丁香婷婷综合色啪| 欧美三级电影精品| 久久久精品国产免费观看同学| 一区二区三区免费看视频| 国产伦精一区二区三区| 在线亚洲人成电影网站色www| 精品少妇一区二区三区| 一区二区三区欧美亚洲| 国产精品77777| 欧美另类久久久品| 中文字幕人成不卡一区| 久久电影网站中文字幕| 日本电影亚洲天堂一区| 日本道色综合久久| 久久久久国产精品麻豆ai换脸| 亚洲午夜视频在线观看| 亚洲.国产.中文慕字在线| 成人网在线播放| 欧美一级片在线看| 一区二区三区波多野结衣在线观看| 91影视在线播放| 欧美成人猛片aaaaaaa| 一区二区三区欧美日韩| 成人在线视频首页| 国产在线视频一区二区| 91在线播放网址|