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

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

?? lpc21isp.c

?? LPC2000系列化的ISP下載源程序
?? C
?? 第 1 頁(yè) / 共 5 頁(yè)
字號(hào):
/******************************************************************************Project:           Portable command line ISP for Philips LPC2000 family                   and Analog Devices ADUC70xxFilename:          lpc21isp.cCompiler:          Microsoft VC 6/7, GCC Cygwin, GCC LinuxAutor:             Martin Maurer (Martin.Maurer@clibb.de)Copyright:         (c) Martin Maurer 2003, 2004, All rights reservedPortions Copyright (c) by Aeolus Development 2004 http://www.aeolusdevelopment.comVersion:           1.24Change-History: 1.00  2004-01-08  Initial Version, tested for MSVC6/7 and GCC under Cygwin 1.01  2004-01-10  Porting to Linux (at least compiling must work) 1.02  2004-01-10  Implemented conversion intel hex format -> binary 1.03  2004-01-25  Preparation to upload to public website 1.04  2004-02-12  Merged in bugfixes by Soeren Gust 1.05  2004-03-14  Implement printing of error codes as text / strings 1.06  2004-03-09  Merged in bugfixes by Charles Manning:                   The '?' sychronisation does not reliably respond to the first '?'.                   I added some retries.                   The LPC2106 sometimes responds to the '?' by echoing them back.                   This sometimes causes an attempt to match "?Synchonized".                   Added code to strip off any leading '?'s.                   Timeouts were too long.                   Change from RTS/CTS to no flow control.                   Done because many/most people will use only 3-wire comms.                   Added some progress tracing. 1.07  2004-03-14  Implement handling of control lines for easier booting 1.08  2004-04-01  Bugfix for upload problem 1.09  2004-04-03  Redesign of upload routine                   Now always 180 byte blocks are uploaded, to prevent                   small junks in uuencoding 1.10  2004-04-03  Clear buffers before sending commands to LPC21xx,                   this prevents synchronizing errors when previously loaded                   program does a lot of output, so FIFO of PC runs full 1.11  2004-04-03  Small optimization for controlling reset line                   otherwise termonly starts LPC twice, free PC buffers 1.12  2004-04-04  Add switch to enable logging terminal output to lpc21isp.log 1.13  2004-05-19  Merged in improvement by Charles Manning:                   Instead of exiting the wrong hex file size is corrected 1.14  2004-07-07  Merged in improvement by Alex Holden:                   Remove little/big endian dependancy 1.15  2004-09-27  Temporary improvement by Cyril Holweck:                   Removed test (data echoed = data transmited) on the main                   data transfert, since this was the biggest failure                   reason and is covered by checksome anyway.                   Added COMPILE_FOR_LPC21, to have target dump it's own                   memory to stdout. 1.16  2004-10-09  Merged in bugfix / improvement by Sinelnikov Evgeny                   I found out that Linux and Windows serial port initialization                   are different with pinouts states. My board don't get                   reset signal at first cycle of DTR pinout moving.                   And I add this moving to initalization cycle. 1.17  2004-10-21  Changes by Cyril Holweck                   Divide main, take out the real programming function, that can                   also be used by a target to copy its own code to another. 1.18  2004-10-26  Changes by Cyril Holweck                   Added a "G 0 A\r\n" at end of programming to run code. 1.19  2004-11-03  Changes by Robert Adsett                   Add support for Analog Devices.                   Separate file load from programming.                   Change from a debug on/off flag to debug level                   Remove if(debug) tests and replace with DebugPrintf                   statements.                   Change serial I/O and timing so that the system                   dependancies are isolated to a few portability functions.                   Add support for binary serial I/O.                   Add doxygen support. 1.20  2004-11-07  Preparation for multiport booting (factory support) 1.21  2004-11-08  Bugfix from Robert Adsett                   BinaryLength was not initialized 1.22  2004-11-08  Changes from Cyril Holweck / Evgeny Sinelnikov                   Forgotten IspEnvironment-> and bugfixes if COMPILE_FOR_LINUX                   If COMPILE_FOR_LPC21, PhilipsDownload() 'acts as' main():                   - it should not be static and should return int.                   - no sub-function can use exit() but only return()                   Use 'char' instead of 'byte' ;) 1.23  2005-01-16  Build in automatic detection of LPC chiptype                   (needed for 256 KByte support)******************************************************************************/#if defined(_WIN32) && !defined(__CYGWIN__)    #define COMPILE_FOR_WINDOWS    #define COMPILED_FOR ("Windows")#elif defined(__CYGWIN__)    #define COMPILE_FOR_CYGWIN    #define COMPILED_FOR ("Cygwin")#elif defined(__arm__) || defined(__thumb__)    #define COMPILE_FOR_LPC21    #define COMPILED_FOR ("ARM")    #define printf iprintf#else    #define COMPILE_FOR_LINUX    #define COMPILED_FOR ("Linux")#endif#if defined COMPILE_FOR_WINDOWS || defined COMPILE_FOR_CYGWIN#include <windows.h>#include <io.h>#endif // defined COMPILE_FOR_WINDOWS || defined COMPILE_FOR_CYGWIN#if defined COMPILE_FOR_WINDOWS#include <conio.h>#endif // defined COMPILE_FOR_WINDOWS#if defined COMPILE_FOR_LINUX#include <sys/types.h>#include <sys/stat.h>#include <stdlib.h>#include <string.h>#include <strings.h>#include <sys/ioctl.h>#endif // defined COMPILE_FOR_LINUX#if defined COMPILE_FOR_LINUX || defined COMPILE_FOR_CYGWIN#include <termios.h>#include <unistd.h>     // for read and return value of lseek#include <sys/time.h>   // for select_time#endif // defined COMPILE_FOR_LINUX || defined COMPILE_FOR_CYGWIN#include <ctype.h>      // isdigit()#include <stdio.h>      // stdout#include <stdarg.h>#include <time.h>#if defined COMPILE_FOR_LPC21#include <stdlib.h>#include <string.h>#include "lpc_ioctl.h"#endif#if !defined COMPILE_FOR_LPC21#include <fcntl.h>#endif#ifndef O_BINARY#define O_BINARY 0#endif // O_BINARY#ifndef DWORD#define DWORD unsigned long#endif // DWORD#if defined COMPILE_FOR_LINUX#define stricmp strcasecmp#endif // defined COMPILE_FOR_LINUXtypedef unsigned char BINARY;   /**< data type used for microcontroller                                *  memory image.                        *//*debug levels0 - very quiet          - Nothing gets printed at this level1 - quiet               - Only error messages should be printed2 - indicate progress   - Add progress messages3 - first level debug   - Major level tracing4 - second level debug  - Add detailed debugging5 - log comm's          - log serial I/O*/typedef enum{    PHILIPS_ARM,    ANALOG_DEVICES_ARM} TARGET;typedef struct{    unsigned long id;    unsigned Product;    unsigned FlashSize;     /* in kiB, for informational purposes only */    unsigned RAMSize;       /* in kiB, for informational purposes only */    unsigned FlashSectors;  /* total number of sectors */    unsigned MaxCopySize;   /* maximum size that can be copied to Flash in a single command */    int *SectorTable;       /* pointer to a sector table with the sector sizes */} LPC_DEVICE_TYPE;typedef struct{#if !defined COMPILE_FOR_LPC21    TARGET micro;                      /**< The type of micro that will be                                         * programmed.                           */    int debug_level;    unsigned char TerminalAfterUpload;    unsigned char TerminalOnly;    unsigned char DetectOnly;    int           DetectedDevice;       /* index in LPCtypes[] array */    unsigned char FormatHex;    unsigned char ControlLines;    unsigned char LogFile;    char *input_file;                   /**< Name of the file to get input from. */    char *serial_port;                  /**< Name of the serial port to use to                                         * communicate with the microcontroller.                                         * Read from the command line.          */    char *baud_rate;                    /**< Baud rate to use on the serial                                         * port communicating with the                                         * microcontroller. Read from the                                         * command line.                        */#endif // !defined COMPILE_FOR_LPC21    char *StringOscillator;             /**< Holds representation of oscillator                                          * speed from the command line.         */    BINARY *BinaryContent;              /**< Binary image of the                 */                                        /* microcontroller's memory.             */    unsigned long BinaryLength;#if defined COMPILE_FOR_WINDOWS || defined COMPILE_FOR_CYGWIN    HANDLE hCom;#endif // defined COMPILE_FOR_WINDOWS || defined COMPILE_FOR_CYGWIN#if defined COMPILE_FOR_LINUX || defined COMPILE_FOR_LPC21    int fdCom;#endif // defined COMPILE_FOR_LINUX || defined COMPILE_FOR_LPC21#if defined COMPILE_FOR_LINUX    struct termios oldtio, newtio;#endif // defined COMPILE_FOR_LINUX    unsigned serial_timeout_count;   /**< Local used to track                                      * timeouts on serial port read. */} ISP_ENVIRONMENT;static int debug_level = 2;static void DumpString(int level, const void *s, size_t size, const char *fmt, ...);static void SendComPort(ISP_ENVIRONMENT *IspEnvironment, const char *s);static void ReceiveComPort(ISP_ENVIRONMENT *IspEnvironment, void *Answer, unsigned long MaxSize, unsigned long *RealSize, unsigned long WantedNr0x0A,unsigned timeOutMilliseconds);static void DebugPrintf( int level, const char *fmt, ...);static void PhilipsOutputErrorMessage(unsigned char ErrorNumber);static unsigned char GetErrorNumber(const char *Answer);static void SerialTimeoutSet(ISP_ENVIRONMENT *IspEnvironment, unsigned timeout_milliseconds);static void SerialTimeoutTick(ISP_ENVIRONMENT *IspEnvironment);static int SerialTimeoutCheck(ISP_ENVIRONMENT *IspEnvironment);#if !defined COMPILE_FOR_LPC21static void ClearSerialPortBuffers(ISP_ENVIRONMENT *IspEnvironment);static void ControlModemLines(ISP_ENVIRONMENT *IspEnvironment, unsigned char DTR, unsigned char RTS);static unsigned char Ascii2Hex(unsigned char c);#endifstatic int SectorTable_210x[] = { 8192, 8192, 8192, 8192, 8192, 8192, 8192, 8192,                                  8192, 8192, 8192, 8192, 8192, 8192, 8192 };static int SectorTable_211x[] = { 8192, 8192, 8192, 8192, 8192, 8192, 8192, 8192,                                  8192, 8192, 8192, 8192, 8192, 8192, 8192, };static int SectorTable_212x[] = { 8192, 8192, 8192, 8192, 8192, 8192, 8192, 8192,                                  65536, 65536, 8192, 8192, 8192, 8192, 8192, 8192,                                  8192 };static int SectorTable_213x[] = { 4096, 4096, 4096, 4096, 4096, 4096, 4096, 4096,                                  32768, 32768, 32768, 32768, 32768, 32768, 32768, 32768,                                  32768, 32768, 32768, 32768, 32768, 32768, 4096, 4096,                                  4096, 4096, 4096 };static LPC_DEVICE_TYPE LPCtypes[] ={  { 0, 0, 0 },  /* unknown */  { 0xFFF0FF12, 2104, 128, 16, 15, 8192, SectorTable_210x },  { 0xFFF0FF22, 2105, 128, 32, 15, 8192, SectorTable_210x },  { 0xFFF0FF32, 2106, 128, 64, 15, 8192, SectorTable_210x },  { 0x0101FF12, 2114, 128, 16, 15, 8192, SectorTable_211x },  { 0x0201FF12, 2119, 128, 16, 15, 8192, SectorTable_211x },  { 0x0101FF13, 2124, 256, 16, 17, 8192, SectorTable_212x },  { 0x0201FF13, 2129, 256, 16, 17, 8192, SectorTable_212x },  { 0x0301FF13, 2194, 256, 16,  0, 8192, SectorTable_212x },  { 0x0301FF12, 2210,   0, 16,  0, 8192, SectorTable_211x }, /* table is a "don't care" */  { 0x0401FF12, 2212, 128, 16, 15, 8192, SectorTable_211x },  { 0x0601FF13, 2214, 256, 16, 17, 8192, SectorTable_212x },  /*            2290; same id as the LPC2210? */  { 0x0401FF13, 2292, 256, 16,  0, 8192, SectorTable_212x },  { 0x0501FF13, 2294, 256, 16,  0, 8192, SectorTable_212x },  { 0x00000000, 2131,  32,  8,  8, 4096, SectorTable_213x },  { 0x00000000, 2132,  64, 16,  9, 4096, SectorTable_213x },  { 0x0002FF25, 2138, 512, 32, 27, 4096, SectorTable_213x },};/************* Portability layer. Serial and console I/O differences    *//* are taken care of here.                                              */#if defined COMPILE_FOR_LINUX || defined COMPILE_FOR_CYGWINstatic int kbhit( void);static int getch( void);#endif // defined COMPILE_FOR_LINUX || defined COMPILE_FOR_CYGWIN#if defined COMPILE_FOR_LINUXstatic void Sleep(unsigned long MilliSeconds);#endif // defined COMPILE_FOR_LINUX#if !defined COMPILE_FOR_LPC21static void OpenSerialPort(ISP_ENVIRONMENT *IspEnvironment){    // Open COM-Port (different between Windows and Linux)#if defined COMPILE_FOR_WINDOWS || defined COMPILE_FOR_CYGWIN    DCB    dcb;    COMMTIMEOUTS commtimeouts;    IspEnvironment->hCom = CreateFile(IspEnvironment->serial_port, GENERIC_READ | GENERIC_WRITE,0,NULL,OPEN_EXISTING,FILE_ATTRIBUTE_NORMAL,NULL);    if(IspEnvironment->hCom == INVALID_HANDLE_VALUE)    {        DebugPrintf( 1, "Can't open COM-Port %s ! - Error: %ld\n", IspEnvironment->serial_port, GetLastError());        exit(2);    }    DebugPrintf( 3, "COM-Port %s opened...\n", IspEnvironment->serial_port);    GetCommState(IspEnvironment->hCom, &dcb);    dcb.BaudRate = atol(IspEnvironment->baud_rate);    dcb.ByteSize = 8;    dcb.StopBits = ONESTOPBIT;    dcb.Parity   = NOPARITY;    if(SetCommState(IspEnvironment->hCom, &dcb) == 0)    {        DebugPrintf( 1, "Can't set baudrate %s ! - Error: %ld", IspEnvironment->baud_rate, GetLastError());        exit(3);    }    SetCommMask(IspEnvironment->hCom,EV_RXCHAR | EV_TXEMPTY);    commtimeouts.ReadIntervalTimeout         = MAXDWORD;    commtimeouts.ReadTotalTimeoutMultiplier  =    0;    commtimeouts.ReadTotalTimeoutConstant    =    1;    commtimeouts.WriteTotalTimeoutMultiplier =    0;    commtimeouts.WriteTotalTimeoutConstant   =    0;    SetCommTimeouts(IspEnvironment->hCom, &commtimeouts);#endif // defined COMPILE_FOR_WINDOWS || defined COMPILE_FOR_CYGWIN#if defined COMPILE_FOR_LINUX    IspEnvironment->fdCom = open(IspEnvironment->serial_port, O_RDWR | O_NOCTTY );    if(IspEnvironment->fdCom < 0)    {        DebugPrintf( 1, "Can't open COM-Port %s !\n", IspEnvironment->serial_port);        exit(2);    }    DebugPrintf( 3, "COM-Port %s opened...\n", IspEnvironment->serial_port);    tcgetattr(IspEnvironment->fdCom, &IspEnvironment->oldtio); /* save current port settings */    bzero(&IspEnvironment->newtio, sizeof(IspEnvironment->newtio));    IspEnvironment->newtio.c_cflag = CS8 | CLOCAL | CREAD;    switch(atol(IspEnvironment->baud_rate))    {        case 1152000: IspEnvironment->newtio.c_cflag |= B1152000; break;        case  576000: IspEnvironment->newtio.c_cflag |=  B576000; break;        case  230400: IspEnvironment->newtio.c_cflag |=  B230400; break;        case  115200: IspEnvironment->newtio.c_cflag |=  B115200; break;        case   57600: IspEnvironment->newtio.c_cflag |=   B57600; break;        case   38400: IspEnvironment->newtio.c_cflag |=   B38400; break;        case   19200: IspEnvironment->newtio.c_cflag |=   B19200; break;        case    9600: IspEnvironment->newtio.c_cflag |=    B9600; break;        default:

?? 快捷鍵說(shuō)明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號(hào) Ctrl + =
減小字號(hào) Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
欧美国产亚洲另类动漫| 国产欧美精品日韩区二区麻豆天美| 国内一区二区在线| 亚洲在线视频免费观看| 久久免费美女视频| 91精品免费观看| 日本道免费精品一区二区三区| 国内久久精品视频| 亚洲成人777| 亚洲婷婷在线视频| 久久久不卡影院| 欧美乱妇20p| 欧美优质美女网站| 91色在线porny| 国产成人在线电影| 久久99精品久久久久久动态图 | 国产欧美日韩卡一| 51精品视频一区二区三区| 91麻豆自制传媒国产之光| 国产一区二区中文字幕| 青青草成人在线观看| 亚洲国产精品麻豆| 亚洲激情第一区| 亚洲视频一二三区| 国产精品伦一区二区三级视频| 欧美精品一区二区三区蜜臀| 欧美男人的天堂一二区| 欧美在线观看视频一区二区| 99久久久久久| 99久久国产综合精品色伊| 成人午夜激情在线| 国产精品一区二区x88av| 激情偷乱视频一区二区三区| 精品一区二区免费视频| 久久精品免费看| 麻豆一区二区在线| 久久99久久久欧美国产| 老司机精品视频导航| 久草中文综合在线| 激情六月婷婷综合| 国产中文字幕精品| 丰满亚洲少妇av| 成人精品gif动图一区| 粉嫩av一区二区三区粉嫩| 成人亚洲一区二区一| 国产成人av电影| 成人免费电影视频| 色哟哟亚洲精品| 91行情网站电视在线观看高清版| 色屁屁一区二区| 欧美日韩国产影片| 欧美一级视频精品观看| 日韩精品中文字幕一区二区三区| 欧美mv和日韩mv国产网站| 久久夜色精品国产欧美乱极品| 久久久久久久久99精品| 国产亚洲精品久| 中文字幕永久在线不卡| 亚洲午夜在线观看视频在线| 三级影片在线观看欧美日韩一区二区| 日本欧美韩国一区三区| 国产一区亚洲一区| bt欧美亚洲午夜电影天堂| 欧美亚洲综合网| 精品欧美一区二区三区精品久久| 久久久精品日韩欧美| 亚洲丝袜精品丝袜在线| 亚洲电影你懂得| 国产一区二区三区不卡在线观看 | 精品久久久三级丝袜| 欧美经典一区二区三区| 亚洲人成亚洲人成在线观看图片 | 国产寡妇亲子伦一区二区| 成人动漫中文字幕| 欧美日本在线看| 欧美极品xxx| 偷窥少妇高潮呻吟av久久免费| 国产一区二区三区视频在线播放| caoporn国产精品| 日韩欧美一二区| 中文字幕一区二区在线观看| 日本欧美一区二区| 91伊人久久大香线蕉| 91精品国产一区二区三区蜜臀 | 国产成人午夜99999| 91麻豆国产在线观看| 日韩一级黄色大片| 综合久久一区二区三区| 久久99久久99小草精品免视看| av一区二区不卡| 欧美电视剧免费全集观看| 亚洲欧洲日韩av| 精品一区二区三区免费| 欧美色综合影院| 欧美国产一区视频在线观看| 日本在线不卡视频| 色综合久久综合网欧美综合网 | 中文字幕一区二区三区精华液| 日韩专区欧美专区| 99re热视频精品| 久久综合999| 美女精品自拍一二三四| 日本丶国产丶欧美色综合| 国产欧美日韩精品一区| 久久精品国内一区二区三区| 在线视频欧美精品| 国产精品国产三级国产a| 九九久久精品视频| 51午夜精品国产| 亚洲mv在线观看| 91成人免费在线视频| 国产精品久久久久久久久免费丝袜| 美脚の诱脚舐め脚责91| 欧美日韩一区二区欧美激情 | 日韩在线卡一卡二| 99久久精品免费精品国产| 国产日本欧美一区二区| 裸体一区二区三区| 欧美美女网站色| 亚洲图片欧美一区| 91精品91久久久中77777| 亚洲女同一区二区| eeuss影院一区二区三区| 中文av一区二区| 丁香亚洲综合激情啪啪综合| 久久日一线二线三线suv| 国内精品国产三级国产a久久| 日韩视频在线你懂得| 日韩高清在线电影| 5月丁香婷婷综合| 蜜臀va亚洲va欧美va天堂| 欧美一级欧美三级在线观看| 视频在线观看一区| 在线播放日韩导航| 日韩国产精品大片| 亚洲天天做日日做天天谢日日欢 | 国产精品一区在线| 精品99999| 国产精品1区二区.| 国产精品久久久久婷婷二区次| 成人激情免费电影网址| 国产精品理论在线观看| 99在线精品免费| 一区二区高清免费观看影视大全| 91国内精品野花午夜精品| 午夜日韩在线观看| 91精品欧美一区二区三区综合在| 久久aⅴ国产欧美74aaa| 国产日本欧美一区二区| 99久久免费视频.com| 亚洲自拍偷拍综合| 在线播放国产精品二区一二区四区 | 国产高清成人在线| 国产精品国产自产拍在线| 91在线视频官网| 午夜久久久久久| 日韩三级视频在线观看| 国产精品一二三四五| 中文字幕在线一区免费| 色噜噜夜夜夜综合网| 午夜精品久久久久久久久久久| 日韩美女天天操| av一二三不卡影片| 午夜视频一区二区三区| 久久伊99综合婷婷久久伊| 99视频精品免费视频| 日韩中文字幕区一区有砖一区 | 久久久久99精品国产片| 99国产精品一区| 免费看欧美女人艹b| 中文在线资源观看网站视频免费不卡| 91国偷自产一区二区开放时间| 日韩成人免费看| 亚洲国产精品成人综合| 欧美性一区二区| 国产一区二区三区久久久| 亚洲欧美日韩国产综合| 日韩欧美精品三级| 99久久久无码国产精品| 美女网站视频久久| 成人免费小视频| 日韩三级电影网址| 99久久免费精品高清特色大片| 青青草国产精品亚洲专区无| 国产精品国产三级国产普通话99 | 日本一区二区综合亚洲| 欧美在线|欧美| 国产精品91xxx| 天天做天天摸天天爽国产一区| 国产日韩影视精品| 欧美日韩国产一二三| 成人在线综合网| 蜜臀av一区二区三区| 亚洲激情中文1区| 国产偷国产偷精品高清尤物| 欧美日韩中文字幕精品| 成人白浆超碰人人人人| 久久精品国产久精国产| 一区二区三区高清在线| 国产精品网站在线观看|