From 83ee6a7fa55e66a289396b09e33c4acf353b8775 Mon Sep 17 00:00:00 2001 From: Adam Laurie Date: Tue, 1 Oct 2019 14:29:22 +0100 Subject: [PATCH 1/6] update README for correct URL --- README.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.txt b/README.txt index 22f8374..3c7c66e 100644 --- a/README.txt +++ b/README.txt @@ -16,7 +16,7 @@ the PIC32 HID Bootloader uses the same default USB Product Id as the supported HID Bootloader. If used in error either 'mphidflash' or the development board may freeze or indicate an error. -The 'mphidflash' project is hosted at https://github.com/ApertureLabsLtd/mphidflash +The 'mphidflash' project is hosted at https://github.com/AdamLaurie/mphidflash (migrated from http://code.google.com/p/mphidflash/) Building and Installing From 0acc698ea5dcdc21a183b53f45b89b88aaf8b112 Mon Sep 17 00:00:00 2001 From: xb4rt <63092740+xb4rt@users.noreply.github.com> Date: Mon, 6 Apr 2020 09:50:54 +0200 Subject: [PATCH 2/6] PIC24 programming support PIC family recognition was moved upwards to enable proper memory print --- hex.c | 12 +++++++++++- main.c | 23 +++++++++++------------ mphidflash.h | 2 ++ 3 files changed, 24 insertions(+), 13 deletions(-) diff --git a/hex.c b/hex.c index 586116c..90e84b6 100644 --- a/hex.c +++ b/hex.c @@ -63,6 +63,16 @@ void hexSetBytesPerAddress(unsigned char bytes) bytesPerAddress = bytes; } +/**************************************************************************** +Function : hexGetBytesPerAddress +Description : returns set byte width +Parameters : Nothing (void) +Returns : unsigned char Bytes per address +****************************************************************************/ +unsigned char hexGetBytesPerAddress(void){ + return bytesPerAddress; +} + /**************************************************************************** Function : hexOpen Description : Open and memory-map an Intel hex file. @@ -124,7 +134,7 @@ static int verifyBlockProgrammable( unsigned int *addr, char *len ) /* calc if first or last address is in this block */ MA = devQuery.mem[ i ].Address; - ML = devQuery.mem[ i ].Length; + ML = devQuery.mem[ i ].Length * bytesPerAddress; isA = ( *addr >= MA ) && ( *addr < MA + ML ); isL = ( *addr + *len > MA ) && ( *addr + *len <= MA + ML ); diff --git a/main.c b/main.c index 2f09708..8f9787c 100644 --- a/main.c +++ b/main.c @@ -165,22 +165,15 @@ int main( /* And start doing stuff... */ - (void)printf("USB HID device found"); + (void)printf("USB HID device found\n"); usbBuf[0] = QUERY_DEVICE; if(ERR_NONE == (status = usbWrite(1,1))) { memcpy( &devQuery, usbBuf, 64 ); i = 0; while ( devQuery.mem[ i ].Type != TypeEndOfTypeList ) i++; devQuery.memBlocks = i; - for ( i = 0; i < devQuery.memBlocks; i++ ) { - devQuery.mem[i].Address = convertEndian(devQuery.mem[i].Address); - devQuery.mem[i].Length = convertEndian(devQuery.mem[i].Length); - if(devQuery.mem[i].Type == TypeProgramMemory) { - (void)printf(": %d bytes free\n",devQuery.mem[i].Length); - } - } - - (void)printf("Device family: "); + + (void)printf("Device family: "); switch (devQuery.DeviceFamily) { case DEVICE_FAMILY_PIC18: @@ -200,8 +193,14 @@ int main( (void)printf("Unknown. Bytes per address set to 1.\n"); break; } - - + (void)printf("Memory"); + for ( i = 0; i < devQuery.memBlocks; i++ ) { + devQuery.mem[i].Address = convertEndian(devQuery.mem[i].Address); + devQuery.mem[i].Length = convertEndian(devQuery.mem[i].Length); + if(devQuery.mem[i].Type == TypeProgramMemory) { + (void)printf(": %d bytes free, addr: %04x, total %d\n",devQuery.mem[i].Length*hexGetBytesPerAddress(),devQuery.mem[i].Address,devQuery.memBlocks); + } + } } (void)putchar('\n'); diff --git a/mphidflash.h b/mphidflash.h index 305a38b..2d4f4f1 100644 --- a/mphidflash.h +++ b/mphidflash.h @@ -116,6 +116,7 @@ typedef enum ERR_EOL /* End-of-list, not actual error code */ } ErrorCode; + /* Function prototypes */ extern ErrorCode @@ -127,6 +128,7 @@ extern void hexClose(void), usbClose(void), hexSetBytesPerAddress(unsigned char); +extern unsigned char hexGetBytesPerAddress(void); #pragma pack( push ) #pragma pack( 1 ) From 806b74e8a2ab948aaddb6742cc247737e435695a Mon Sep 17 00:00:00 2001 From: Alexander Stohr Date: Mon, 7 Dec 2020 05:27:20 +0100 Subject: [PATCH 3/6] make work with Ubuntu Xenial; make Win64 work; updated docu; improved whitespaces --- Makefile | 26 +- Makefile.win | 23 +- README.txt | 49 +-- binaries/mphidflash-1.8-linux-32 | Bin 0 -> 13900 bytes binaries/mphidflash-1.8-linux-64 | Bin 0 -> 18840 bytes binaries/mphidflash-1.8-win-32.exe | Bin 0 -> 121395 bytes binaries/mphidflash-1.8-win-64.exe | Bin 0 -> 147648 bytes hex.c | 563 +++++++++++++++-------------- main.c | 395 ++++++++++---------- usb-libusb.c | 19 +- usb-linux.c | 111 +++--- usb-osx.c | 64 ++-- usb-windows.c | 227 ++++++------ 13 files changed, 760 insertions(+), 717 deletions(-) create mode 100755 binaries/mphidflash-1.8-linux-32 create mode 100755 binaries/mphidflash-1.8-linux-64 create mode 100755 binaries/mphidflash-1.8-win-32.exe create mode 100755 binaries/mphidflash-1.8-win-64.exe diff --git a/Makefile b/Makefile index ab38584..df7f2e0 100644 --- a/Makefile +++ b/Makefile @@ -16,7 +16,7 @@ ifeq ($(shell uname -s),Darwin) else # Rules for Linux, etc. OBJS += usb-libusb.o - CFLAGS = -O3 + CFLAGS = -O3 LDFLAGS = -lusb SYSTEM = linux endif @@ -24,7 +24,7 @@ endif CFLAGS += -DVERSION_MAIN=$(VERSION_MAIN) -DVERSION_SUB=$(VERSION_SUB) #CFLAGS += -DDEBUG -all: +all: @echo @echo Please make 'mphidflash32' or 'mphidflash64' for 32 or 64 bit version @echo @@ -39,7 +39,7 @@ mphidflash64: LDFLAGS += -m64 mphidflash64: EXEC = mphidflash-$(VERSION_MAIN).$(VERSION_SUB)-$(SYSTEM)-64 mphidflash64: mphidflash -mphidflash32: CFLAGS += -m32 +mphidflash32: CFLAGS += -m32 mphidflash32: LDFLAGS += -m32 mphidflash32: EXEC = mphidflash-$(VERSION_MAIN).$(VERSION_SUB)-$(SYSTEM)-32 mphidflash32: mphidflash @@ -50,7 +50,7 @@ mphidflash: $(OBJS) install: @echo - @echo Please make 'install32 or install64' to install 32 or 64 bit target + @echo Please make 'install32' or 'install64' to install 32 or 64 bit target @echo # Must install as root; e.g. 'sudo make install' @@ -82,3 +82,21 @@ src-zipfile: rm -f $(DISTPATH)/mphidflash-$(VERSION_MAIN).$(VERSION_SUB)-src.zip zip $(DISTPATH)/mphidflash-$(VERSION_MAIN).$(VERSION_SUB)-src.zip README.txt CHANGELOG COPYING Makefile* *.c *.h + +cross: windows + +win: windows + +windows: + make -f Makefile.win + +win32: mingw32 + +mingw32: + make -f Makefile.win mphidflash32 + +win64: mingw64 + +mingw64: + make -f Makefile.win mphidflash64 + diff --git a/Makefile.win b/Makefile.win index 4f02d75..858bee7 100644 --- a/Makefile.win +++ b/Makefile.win @@ -1,11 +1,17 @@ VERSION_MAIN = 1 VERSION_SUB = 8 +SYSTEM = win + +# determine the compiler in reach - it might be a cross-compiler +CC32 := $(shell basename `which i586-mingw32msvc-gcc i686-w64-mingw32-gcc | head -n 1`) +CC64 := $(shell basename `which x86_64-mingw32msvc-gcc x86_64-w64-mingw32-gcc | head -n 1`) +CC = $(CC32) -CC = i586-mingw32msvc-gcc EXECS = mphidflash.exe +EXECPATH = binaries OBJS = main.o hex.o usb-windows.o CFLAGS = -DWIN -DVERSION_MAIN=$(VERSION_MAIN) -DVERSION_SUB=$(VERSION_SUB) -LDFLAGS = -lhid -lsetupapi +LDFLAGS = -lhid -lsetupapi all: $(EXECS) @@ -14,14 +20,21 @@ all: $(EXECS) .c.o: $(CC) $(CFLAGS) -c $*.c -# todo: add 64 bit target (low priority as 32 bit works on all platforms) +mphidflash64: CC = $(CC64) +mphidflash64: CFLAGS += -m64 +mphidflash64: LDFLAGS += -m64 +mphidflash64: EXEC = mphidflash-$(VERSION_MAIN).$(VERSION_SUB)-$(SYSTEM)-64.exe +mphidflash64: mphidflash.exe -mphidflash32: CFLAGS += -m32 +mphidflash32: CC = $(CC32) +mphidflash32: CFLAGS += -m32 mphidflash32: LDFLAGS += -m32 +mphidflash32: EXEC = mphidflash-$(VERSION_MAIN).$(VERSION_SUB)-$(SYSTEM)-32.exe mphidflash32: mphidflash.exe mphidflash.exe: $(OBJS) - $(CC) $(OBJS) $(LDFLAGS) -o binaries/mphidflash-$(VERSION_MAIN).$(VERSION_SUB)-win-32.exe + $(CC) --version + $(CC) $(OBJS) $(LDFLAGS) -o $(EXECPATH)/$(EXEC) clean: rm -f $(EXECS) *.o core diff --git a/README.txt b/README.txt index 3c7c66e..3d6e169 100644 --- a/README.txt +++ b/README.txt @@ -28,24 +28,24 @@ For Linux, you'll need the 'libhid' development library (and associated dependencies) installed, which can be handled by most package managers or from the command line: - sudo apt-get install libhid-dev + sudo apt-get install libhid-dev Assuming you're reading this as the README.txt alongside the source code, to compile mphidflash for a 32 or 64 bit system, in the Terminal window type: - make mphidflash32 + make mphidflash32 or - make mphidflash64 + make mphidflash64 Then install with the command: - sudo make install32 + sudo make install32 or - sudo make install64 + sudo make install64 This will copy the appropriate executable to /usr/local/bin/mphidflash so you don't need to specify a complete path to the program each time. @@ -60,19 +60,19 @@ the command line interface. Assuming you're reading this as the README.txt alongside the source code, to compile mphidflash for a 32 or 64 bit system, in the Terminal window type: - make mphidflash32 + make mphidflash32 or - make mphidflash64 + make mphidflash64 Then install with the command: - sudo make install32 + sudo make install32 or - sudo make install64 + sudo make install64 This will copy the appropriate executable to /usr/local/bin/mphidflash so you don't need to specify a complete path to the program each time. @@ -85,14 +85,18 @@ cross compiling on Linux, you'll need the 'mingw32' toolchain (and associated dependencies) installed, which can be handled by most package mangager or from the command line: - sudo apt-get install mingw32 + sudo apt-get install mingw32 Assuming you're reading this as the README.txt alongside the source code, to compile mphidflash, in the Terminal window type: - make -f Makefile.win + make win32 -This will create a .exe in the binaries sub-directory, which can be called + or + + make win64 + +This will create an .exe in the binaries sub-directory, which can be called from the Windows commmand line - e.g. 'mphidflash-1.6-win-32.exe'. You should copy this file somewhere on your executable path and rename it to 'mphidflash.exe'. @@ -100,22 +104,23 @@ copy this file somewhere on your executable path and rename it to 'mphidflash.ex Usage ===== To upload a new program to your PIC, it must be connected to your computer and -set into bootloader mode. mphidflash can then be used with the following +set into bootloader mode. mphidflash can then be used with the following options: --help Display help screen (alternately: -?) --write Upload given file to PIC --reset Reset PIC --noverify Skip verification step --erase Erase PIC memory --sign Sign flash --vendor Use given USB vendor id instead of default id --product Use given USB product id instead of default id +-help Display help screen (alternately: -?) +-write Upload given file to PIC +-reset Reset PIC +-noverify Skip verification step +-erase Erase PIC memory (implicit if -w) +-unlock Unlock config mem before erase/write +-sign Sign flash (for later versions of boot loader) +-vendor Use given USB vendor id instead of default id 04d8 +-product Use given USB product id instead of default id 003c Example: To upload the program test.hex to the PIC and to reset the PIC thereafter the following command line can be used: - mphidflash -write test.hex -reset + mphidflash -write test.hex -reset Tips ==== diff --git a/binaries/mphidflash-1.8-linux-32 b/binaries/mphidflash-1.8-linux-32 new file mode 100755 index 0000000000000000000000000000000000000000..48a1c9a79a5c29c8d25d23b2b790f4aa9865ede5 GIT binary patch literal 13900 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 literal 0 HcmV?d00001 diff --git a/binaries/mphidflash-1.8-linux-64 b/binaries/mphidflash-1.8-linux-64 new file mode 100755 index 0000000000000000000000000000000000000000..20fe00075b4f1a293d0a9f43ff3550882b20eea2 GIT binary patch literal 18840 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 J-IO!Q{|+a5Dy{$k literal 0 HcmV?d00001 diff --git a/binaries/mphidflash-1.8-win-32.exe b/binaries/mphidflash-1.8-win-32.exe new file mode 100755 index 0000000000000000000000000000000000000000..88fb58895b113707c05d8b6251dcacaa0c9093f8 GIT binary patch literal 121395 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 HAt?Aitu1}= literal 0 HcmV?d00001 diff --git a/hex.c b/hex.c index 90e84b6..549c87d 100644 --- a/hex.c +++ b/hex.c @@ -6,7 +6,7 @@ * Initial implementation 2009-12-26 Thomas Fischl, Dominik Fisch (www.FundF.net) * Ported mmap functions to windows - + License : Copyright (C) 2009 Phillip Burgess Copyright (C) 2009 Thomas Fischl, Dominik Fisch (www.FundF.net) @@ -49,27 +49,28 @@ static int hexFd; /* Open hex file descriptor */ static size_t hexFileSize; /* Save for use by munmap() */ static unsigned char hexBuf[56]; /* Data read/written to USB */ extern unsigned char *usbBuf; /* In usb code */ -unsigned char bytesPerAddress = 1; /* Bytes in flash per address */ +unsigned char bytesPerAddress = 1; /* Bytes in flash per address */ static char Flushed= 1; /* Do we need to flush buffer? */ -/**************************************************************************** -Function : hexSetBytesPerAddress -Description : Sets given byte width -Parameters : unsigned char Bytes per address -Returns : Nothing (void) -****************************************************************************/ -void hexSetBytesPerAddress(unsigned char bytes) -{ -bytesPerAddress = bytes; +/**************************************************************************** +Function : hexSetBytesPerAddress +Description : Sets given byte width +Parameters : unsigned char Bytes per address +Returns : Nothing (void) +****************************************************************************/ +void hexSetBytesPerAddress(unsigned char bytes) +{ + bytesPerAddress = bytes; } -/**************************************************************************** -Function : hexGetBytesPerAddress -Description : returns set byte width -Parameters : Nothing (void) -Returns : unsigned char Bytes per address -****************************************************************************/ -unsigned char hexGetBytesPerAddress(void){ +/**************************************************************************** +Function : hexGetBytesPerAddress +Description : returns set byte width +Parameters : Nothing (void) +Returns : unsigned char Bytes per address +****************************************************************************/ +unsigned char hexGetBytesPerAddress(void) +{ return bytesPerAddress; } @@ -84,81 +85,82 @@ unsigned char hexGetBytesPerAddress(void){ ****************************************************************************/ ErrorCode hexOpen(char * const filename) { - ErrorCode status = ERR_HEX_OPEN; + ErrorCode status = ERR_HEX_OPEN; - if((hexFd = open(filename,O_RDONLY)) >= 0) { + if((hexFd = open(filename,O_RDONLY)) >= 0) { - struct stat filestat; + struct stat filestat; - status = ERR_HEX_STAT; - if(!fstat(hexFd,&filestat)) { + status = ERR_HEX_STAT; + if(!fstat(hexFd,&filestat)) { - status = ERR_HEX_MMAP; - hexFileSize = filestat.st_size; + status = ERR_HEX_MMAP; + hexFileSize = filestat.st_size; #ifndef WIN - if((hexFileData = mmap(0,hexFileSize,PROT_READ, - MAP_FILE | MAP_SHARED,hexFd,0)) != (void *)(-1)) { - hexPlusOne = &hexFileData[1]; - return ERR_NONE; - } + if((hexFileData = mmap(0,hexFileSize,PROT_READ, + MAP_FILE | MAP_SHARED,hexFd,0)) != (void *)(-1)) { + hexPlusOne = &hexFileData[1]; + return ERR_NONE; + } #else - HANDLE handle; - handle = CreateFileMapping((HANDLE)_get_osfhandle(hexFd), NULL, PAGE_WRITECOPY, 0, 0, NULL); - if (handle != NULL) { - hexFileData = MapViewOfFile(handle, FILE_MAP_COPY, 0, 0, hexFileSize); - hexPlusOne = &hexFileData[1]; - CloseHandle(handle); - return ERR_NONE; - } + HANDLE handle; + handle = CreateFileMapping((HANDLE)_get_osfhandle(hexFd), NULL, PAGE_WRITECOPY, 0, 0, NULL); + if (handle != NULL) { + hexFileData = MapViewOfFile(handle, FILE_MAP_COPY, 0, 0, hexFileSize); + hexPlusOne = &hexFileData[1]; + CloseHandle(handle); + return ERR_NONE; + } #endif - /* Else clean up and return error code */ - hexFileData = NULL; - } - (void)close(hexFd); - } + /* Else clean up and return error code */ + hexFileData = NULL; + } + (void)close(hexFd); + } - return status; + return status; } /* check memory address & length are in a programmable memory area, as reported by device's Bootloader */ static int verifyBlockProgrammable( unsigned int *addr, char *len ) { - int i, isA, isL, MA, ML; - for ( i = 0; i < devQuery.memBlocks; i++ ) - { - /* only look at programmable memory blocks */ - if ( !devQuery.mem[ i ].Type ) - continue; - - /* calc if first or last address is in this block */ - MA = devQuery.mem[ i ].Address; - ML = devQuery.mem[ i ].Length * bytesPerAddress; - isA = ( *addr >= MA ) && ( *addr < MA + ML ); - isL = ( *addr + *len > MA ) && ( *addr + *len <= MA + ML ); - - /* loop if neither */ - if ( !isA && !isL ) - continue; - - /* both addresses is fine */ - if ( isA && isL ) - return 0; - - /* if only start address we adjust length to end of block */ - if ( isA ) - *len = ( MA + ML ) - *addr; - - /* if only last address we adjust start to start of block */ - if ( isL ) { - *len = ( *addr + *len ) - MA; - *addr = MA; - } - - return 0; - } - return 1; + int i, isA, isL, MA, ML; + for ( i = 0; i < devQuery.memBlocks; i++ ) + { + /* only look at programmable memory blocks */ + if ( !devQuery.mem[ i ].Type ) + continue; + + /* calc if first or last address is in this block */ + MA = devQuery.mem[ i ].Address; + ML = devQuery.mem[ i ].Length * bytesPerAddress; + isA = ( *addr >= MA ) && ( *addr < MA + ML ); + isL = ( *addr + *len > MA ) && ( *addr + *len <= MA + ML ); + + /* loop if neither */ + if ( !isA && !isL ) + continue; + + /* both addresses is fine */ + if ( isA && isL ) + return 0; + + /* if only start address we adjust length to end of block */ + if ( isA ) + *len = ( MA + ML ) - *addr; + + /* if only last address we adjust start to start of block */ + if ( isL ) { + *len = ( *addr + *len ) - MA; + *addr = MA; + } + + return 0; + } + + return 1; } /**************************************************************************** @@ -193,88 +195,87 @@ static ErrorCode issueBlock( char len, char verify) { - ErrorCode status; + ErrorCode status; #ifdef DEBUG - (void)printf("Address: %08x Len %d\n",addr,len); + (void)printf("Address: %08x Len %d\n",addr,len); #else - (void)putchar('.'); fflush(stdout); + (void)putchar('.'); fflush(stdout); #endif - // check device memory blocks are programmable - if ( verifyBlockProgrammable( &addr, &len ) ) { -#ifdef DEBUG - printf( "Skip data on address %04x with length %d\n", addr, len ); + // check device memory blocks are programmable + if ( verifyBlockProgrammable( &addr, &len ) ) { +#ifdef DEBUG + printf( "Skip data on address %04x with length %d\n", addr, len ); #endif - return ERR_NONE; - } - // length must be even - if ( len & 1 ) { -#ifdef DEBUG - printf( "Add one byte to data on address %04x with length %d\n", addr, len ); + return ERR_NONE; + } + // length must be even + if ( len & 1 ) { +#ifdef DEBUG + printf( "Add one byte to data on address %04x with length %d\n", addr, len ); #endif - hexBuf[ len++ ] = 0xff; - } - - /* Short data packets need flushing */ - if (!verify && len == 0 && !Flushed) { - DEBUGMSG("Completing"); - usbBuf[0] = PROGRAM_COMPLETE; - status = usbWrite(1,0); - Flushed= 1; - return status; - } - - bufWrite32(usbBuf,1,addr / bytesPerAddress); - usbBuf[5] = len; - - if(verify) { - DEBUGMSG("Verifying"); - usbBuf[0] = GET_DATA; - if(ERR_NONE == (status = usbWrite(6,1))) { + hexBuf[ len++ ] = 0xff; + } + + /* Short data packets need flushing */ + if (!verify && len == 0 && !Flushed) { + DEBUGMSG("Completing"); + usbBuf[0] = PROGRAM_COMPLETE; + status = usbWrite(1,0); + Flushed = 1; + return status; + } + + bufWrite32(usbBuf,1,addr / bytesPerAddress); + usbBuf[5] = len; + + if(verify) { + DEBUGMSG("Verifying"); + usbBuf[0] = GET_DATA; + if(ERR_NONE == (status = usbWrite(6,1))) { #ifdef DEBUG - int i; - if(memcmp(&usbBuf[64 - len],hexBuf,len)) { - (void)puts("Verify FAIL\nExpected:"); - (void)printf("NA NA NA NA NA NA NA NA - "); - for(i=0;i<(56-len);i++) (void)printf("NA "); - for(i=0;i USB vendor and/or product IDs - -u Unlock configuration memory - -e Erase program memory - -n No verify after write - -w Write program memory - -s Sign code - -r Reset */ - - for(i=1;(i < argc) && (ERR_NONE == status);i++) { - eol = (i >= (argc - 1)); - if(!strncasecmp(argv[i],"-v",2)) { - if(eol || (1 != sscanf(argv[++i],"%x",&vendorID))) - status = ERR_CMD_ARG; - } else if(!strncasecmp(argv[i],"-p",2)) { - if(eol || (1 != sscanf(argv[++i],"%x",&productID))) - status = ERR_CMD_ARG; - } else if(!strncasecmp(argv[i],"-u",2)) { - actions |= ACTION_UNLOCK; - } else if(!strncasecmp(argv[i],"-e",2)) { - actions |= ACTION_ERASE; - } else if(!strncasecmp(argv[i],"-n",2)) { - actions &= ~ACTION_VERIFY; - } else if(!strncasecmp(argv[i],"-w",2)) { - if(eol) { - status = ERR_CMD_ARG; - } else { - hexFile = argv[++i]; - actions |= ACTION_ERASE; - } - } else if(!strncasecmp(argv[i],"-s",2)) { - actions |= ACTION_SIGN; - } else if(!strncasecmp(argv[i],"-r",2)) { - actions |= ACTION_RESET; - } else if(!strncasecmp(argv[i],"-h",2) || - !strncasecmp(argv[i],"-?",2)) { - (void)printf( + char *hexFile = NULL, + actions = ACTION_VERIFY, + eol; /* 1 = last command-line arg */ + ErrorCode status = ERR_NONE; + int i; + unsigned int vendorID = 0x04d8, + productID = 0x003c; + + const char * const errorString[ERR_EOL] = { + "Missing or malformed command-line argument", + "Command not recognized", + "Device not found (is device attached and in Bootloader mode?)", + "USB initialization failed (phase 1)", + "USB initialization failed (phase 2)", + "Device could not be opened for I/O", + "USB write error", + "USB read error", + "Could not open hex file for input", + "Could not query hex file size", + "Could not map hex file to memory", + "Unrecognized or invalid hex file syntax", + "Bad end-of-line checksum in hex file", + "Unsupported record type in hex file", + "Verify failed" + }; + + /* To create a sensible sequence of operations, all command-line + input is processed prior to taking any actions. The sequence + of actions performed may not always directly correspond to the + order or quantity of input; commands follow precedence, not + input order. For example, the action corresponding to the "-u" + (unlock) command must take place early on, before any erase or + write operations, even if specified late on the command line; + conversely, "-r" (reset) should always be performed last + regardless of input order. In the case of duplicitous + commands (e.g. if multiple "-w" (write) commands are present), + only the last one will take effect. + + The precedence of commands (first to last) is: + + -v and -p USB vendor and/or product IDs + -u Unlock configuration memory + -e Erase program memory + -n No verify after write + -w Write program memory + -s Sign code + -r Reset */ + + for(i=1;(i < argc) && (ERR_NONE == status);i++) { + eol = (i >= (argc - 1)); + if(!strncasecmp(argv[i],"-v",2)) { + if(eol || (1 != sscanf(argv[++i],"%x",&vendorID))) + status = ERR_CMD_ARG; + } else if(!strncasecmp(argv[i],"-p",2)) { + if(eol || (1 != sscanf(argv[++i],"%x",&productID))) + status = ERR_CMD_ARG; + } else if(!strncasecmp(argv[i],"-u",2)) { + actions |= ACTION_UNLOCK; + } else if(!strncasecmp(argv[i],"-e",2)) { + actions |= ACTION_ERASE; + } else if(!strncasecmp(argv[i],"-n",2)) { + actions &= ~ACTION_VERIFY; + } else if(!strncasecmp(argv[i],"-w",2)) { + if(eol) { + status = ERR_CMD_ARG; + } else { + hexFile = argv[++i]; + actions |= ACTION_ERASE; + } + } else if(!strncasecmp(argv[i],"-s",2)) { + actions |= ACTION_SIGN; + } else if(!strncasecmp(argv[i],"-r",2)) { + actions |= ACTION_RESET; + } else if(!strncasecmp(argv[i],"-h",2) || + !strncasecmp(argv[i],"-?",2)) { + (void)printf( "mphidflash v%d.%d: a Microchip HID Bootloader utility\n" "Option Description Default\n" "-------------------------------------------------------------------------\n" @@ -146,132 +146,133 @@ int main( "-e Erase device code space (implicit if -w) No erase\n" "-r Reset device on program exit No reset\n" "-n No verify after write Verify on\n" -"-u Unlock configuration memory before erase/write Config locked\n" +"-u Unlock configuration memory before erase/write Keep lock state\n" "-s Sign flash. This option is required by later No signing\n" " versions of the bootloader.\n" "-v USB device vendor ID %04x\n" "-p USB device product ID %04x\n" "-h or -? Help\n", VERSION_MAIN, VERSION_SUB, vendorID, productID); - return 0; - } else { - status = ERR_CMD_UNKNOWN; - } - } - - /* After successful command-line parsage, find/open USB device. */ - - if((ERR_NONE == status) && - (ERR_NONE == (status = usbOpen(vendorID,productID)))) { - - /* And start doing stuff... */ - - (void)printf("USB HID device found\n"); - usbBuf[0] = QUERY_DEVICE; - if(ERR_NONE == (status = usbWrite(1,1))) { - memcpy( &devQuery, usbBuf, 64 ); - i = 0; - while ( devQuery.mem[ i ].Type != TypeEndOfTypeList ) i++; - devQuery.memBlocks = i; - + return 0; + } else { + status = ERR_CMD_UNKNOWN; + } + } + + /* After successful command-line parsage, find/open USB device. */ + + if((ERR_NONE == status) && + (ERR_NONE == (status = usbOpen(vendorID,productID)))) { + + /* And start doing stuff... */ + + (void)printf("USB HID device found\n"); + usbBuf[0] = QUERY_DEVICE; + if(ERR_NONE == (status = usbWrite(1,1))) { + memcpy( &devQuery, usbBuf, 64 ); + i = 0; + while ( devQuery.mem[ i ].Type != TypeEndOfTypeList ) i++; + devQuery.memBlocks = i; + (void)printf("Device family: "); - switch (devQuery.DeviceFamily) - { - case DEVICE_FAMILY_PIC18: - hexSetBytesPerAddress(1); - (void)printf("PIC18\n"); - break; - case DEVICE_FAMILY_PIC24: - hexSetBytesPerAddress(2); - (void)printf("PIC24\n"); - break; - case DEVICE_FAMILY_PIC32: - hexSetBytesPerAddress(1); - (void)printf("PIC32\n"); - break; - default: - hexSetBytesPerAddress(1); - (void)printf("Unknown. Bytes per address set to 1.\n"); - break; - } - (void)printf("Memory"); + switch (devQuery.DeviceFamily) + { + case DEVICE_FAMILY_PIC18: + hexSetBytesPerAddress(1); + (void)printf("PIC18\n"); + break; + case DEVICE_FAMILY_PIC24: + hexSetBytesPerAddress(2); + (void)printf("PIC24\n"); + break; + case DEVICE_FAMILY_PIC32: + hexSetBytesPerAddress(1); + (void)printf("PIC32\n"); + break; + default: + hexSetBytesPerAddress(1); + (void)printf("Unknown. Bytes per address set to 1.\n"); + break; + } + + (void)printf("Memory"); for ( i = 0; i < devQuery.memBlocks; i++ ) { - devQuery.mem[i].Address = convertEndian(devQuery.mem[i].Address); - devQuery.mem[i].Length = convertEndian(devQuery.mem[i].Length); - if(devQuery.mem[i].Type == TypeProgramMemory) { + devQuery.mem[i].Address = convertEndian(devQuery.mem[i].Address); + devQuery.mem[i].Length = convertEndian(devQuery.mem[i].Length); + if(devQuery.mem[i].Type == TypeProgramMemory) { (void)printf(": %d bytes free, addr: %04x, total %d\n",devQuery.mem[i].Length*hexGetBytesPerAddress(),devQuery.mem[i].Address,devQuery.memBlocks); - } - } - } - (void)putchar('\n'); - - if((ERR_NONE == status) && (actions & ACTION_UNLOCK)) { - (void)puts("Unlocking configuration memory..."); - usbBuf[0] = UNLOCK_CONFIG; - usbBuf[1] = UNLOCKCONFIG; - status = usbWrite(2,0); - } - // disable all configuration blocks in devQuery if locked - if ( !( actions & ACTION_UNLOCK ) ) { - for ( i = 0; i < devQuery.memBlocks; i++ ) - if ( devQuery.mem[ i ].Type == TypeConfigWords ) - devQuery.mem[ i ].Type = 0; - } - - /* Although the next actual operation is ACTION_ERASE, - if we anticipate hex-writing in a subsequent step, + } + } + } + (void)putchar('\n'); + + if((ERR_NONE == status) && (actions & ACTION_UNLOCK)) { + (void)puts("Unlocking configuration memory..."); + usbBuf[0] = UNLOCK_CONFIG; + usbBuf[1] = UNLOCKCONFIG; + status = usbWrite(2,0); + } + // disable all configuration blocks in devQuery if locked + if ( !( actions & ACTION_UNLOCK ) ) { + for ( i = 0; i < devQuery.memBlocks; i++ ) + if ( devQuery.mem[ i ].Type == TypeConfigWords ) + devQuery.mem[ i ].Type = 0; + } + + /* Although the next actual operation is ACTION_ERASE, + if we anticipate hex-writing in a subsequent step, attempt opening file now so we can display any error - message quickly rather than waiting through the whole - erase operation (it's usually a simple filename typo). */ - if((ERR_NONE == status) && hexFile && - (ERR_NONE != (status = hexOpen(hexFile)))) - hexFile = NULL; /* Open or mmap error */ - - if((ERR_NONE == status) && (actions & ACTION_ERASE)) { - (void)puts("Erasing..."); - usbBuf[0] = ERASE_DEVICE; - status = usbWrite(1,0); - /* The query here isn't needed for any technical - reason, just makes the presentation better. - The ERASE_DEVICE command above returns - immediately...subsequent commands can be made - but will pause until the erase cycle completes. - So this query just keeps the "Writing" message - or others from being displayed prematurely. */ - usbBuf[0] = QUERY_DEVICE; - status = usbWrite(1,1); - } - - if(hexFile) { - if(ERR_NONE == status) { - (void)printf("Writing hex file '%s':",hexFile); - status = hexWrite((actions & ACTION_VERIFY) != 0); - (void)putchar('\n'); - } - hexClose(); - } - - if((ERR_NONE == status) && (actions & ACTION_SIGN)) { - (void)puts("Signing flash..."); - usbBuf[0] = SIGN_FLASH; - status = usbWrite(1,0); - } - - if((ERR_NONE == status) && (actions & ACTION_RESET)) { - (void)puts("Resetting device..."); - usbBuf[0] = RESET_DEVICE; - status = usbWrite(1,0); - } - - usbClose(); - } - - if(ERR_NONE != status) { - (void)printf("%s Error",argv[0]); - if(status <= ERR_EOL) - (void)printf(": %s\n",errorString[status - 1]); - else - (void)puts(" of indeterminate type."); - } - - return (int)status; + message quickly rather than waiting through the whole + erase operation (it's usually a simple filename typo). */ + if((ERR_NONE == status) && hexFile && + (ERR_NONE != (status = hexOpen(hexFile)))) + hexFile = NULL; /* Open or mmap error */ + + if((ERR_NONE == status) && (actions & ACTION_ERASE)) { + (void)puts("Erasing..."); + usbBuf[0] = ERASE_DEVICE; + status = usbWrite(1,0); + /* The query here isn't needed for any technical + reason, just makes the presentation better. + The ERASE_DEVICE command above returns + immediately...subsequent commands can be made + but will pause until the erase cycle completes. + So this query just keeps the "Writing" message + or others from being displayed prematurely. */ + usbBuf[0] = QUERY_DEVICE; + status = usbWrite(1,1); + } + + if(hexFile) { + if(ERR_NONE == status) { + (void)printf("Writing hex file '%s':",hexFile); + status = hexWrite((actions & ACTION_VERIFY) != 0); + (void)putchar('\n'); + } + hexClose(); + } + + if((ERR_NONE == status) && (actions & ACTION_SIGN)) { + (void)puts("Signing flash..."); + usbBuf[0] = SIGN_FLASH; + status = usbWrite(1,0); + } + + if((ERR_NONE == status) && (actions & ACTION_RESET)) { + (void)puts("Resetting device..."); + usbBuf[0] = RESET_DEVICE; + status = usbWrite(1,0); + } + + usbClose(); + } + + if(ERR_NONE != status) { + (void)printf("%s Error",argv[0]); + if(status <= ERR_EOL) + (void)printf(": %s\n",errorString[status - 1]); + else + (void)puts(" of indeterminate type."); + } + + return (int)status; } diff --git a/usb-libusb.c b/usb-libusb.c index f12f495..ee13f98 100644 --- a/usb-libusb.c +++ b/usb-libusb.c @@ -7,7 +7,7 @@ * Initial implementation of usb-linux with libhid 2009-12-28 Thomas Fischl, Dominik Fisch (www.FundF.net) * Support for libusb without dependencies to libhid - + License : Copyright (C) 2009 Phillip Burgess Copyright (C) 2009 Thomas Fischl, Dominik Fisch (www.FundF.net) @@ -33,9 +33,9 @@ #include "mphidflash.h" -unsigned char usbBufX[64]; -unsigned char * usbBuf = usbBufX; -usb_dev_handle *usbdevice = NULL; +unsigned char usbBufX[64]; +unsigned char *usbBuf = usbBufX; +usb_dev_handle *usbdevice = NULL; ErrorCode usbOpen( const unsigned short vendorID, @@ -53,7 +53,7 @@ ErrorCode usbOpen( if (dev->descriptor.idVendor == vendorID && dev->descriptor.idProduct == productID) { usbdevice = usb_open(dev); - if (!usbdevice) { + if (!usbdevice) { fprintf(stderr, "Warning: matching device found, but cannot open usb device: %s\n", usb_strerror()); continue; } @@ -67,7 +67,7 @@ ErrorCode usbOpen( usbdevice = NULL; fprintf(stderr, "Warning: cannot claim interface: %s\n", usb_strerror()); continue; - } + } } return ERR_NONE; @@ -76,7 +76,6 @@ ErrorCode usbOpen( } return ERR_DEVICE_NOT_FOUND; - } ErrorCode usbWrite( @@ -93,9 +92,9 @@ ErrorCode usbWrite( if (read) { bytesRead = usb_interrupt_read(usbdevice, 0x81, usbBuf, 64, 5000); - if (bytesRead < 0) - return ERR_USB_READ; - } + if (bytesRead < 0) + return ERR_USB_READ; + } return ERR_NONE; } diff --git a/usb-linux.c b/usb-linux.c index 3453136..0552c29 100644 --- a/usb-linux.c +++ b/usb-linux.c @@ -12,11 +12,11 @@ 2010-12-28 Petr Olivka * program and verify only data for defined memory areas * send only even length of data to PIC - + License : Copyright (C) 2009 Phillip Burgess Copyright (C) 2009 Thomas Fischl, Dominik Fisch (www.FundF.net) Copyright (C) 2010 Petr Olivka - + This file is part of 'mphidflash' program. 'mphidflash' is free software: you can redistribute it and/or @@ -41,8 +41,9 @@ #include static HIDInterface *hid = NULL; -unsigned char usbBufX[64]; -unsigned char * usbBuf = usbBufX; + +unsigned char usbBufX[64]; +unsigned char *usbBuf = usbBufX; /**************************************************************************** Function : usbOpen @@ -66,32 +67,32 @@ ErrorCode usbOpen( const unsigned short vendorID, const unsigned short productID) { - ErrorCode status = ERR_USB_INIT1; - HIDInterfaceMatcher matcher; - - matcher.vendor_id = vendorID; - matcher.product_id = productID; - matcher.matcher_fn = NULL; - - if (debugLevel >= DEBUG_USB) { - hid_set_debug(HID_DEBUG_ALL); - hid_set_usb_debug(HID_DEBUG_ALL); - } - - if(HID_RET_SUCCESS == hid_init()) { - status = ERR_USB_INIT2; - if((hid = hid_new_HIDInterface())) { - if(HID_RET_SUCCESS == - hid_force_open(hid,0,&matcher,3)) { - return ERR_NONE; - } - status = ERR_DEVICE_NOT_FOUND; - hid_delete_HIDInterface(&hid); - } - hid_cleanup(); - } - - return status; + ErrorCode status = ERR_USB_INIT1; + HIDInterfaceMatcher matcher; + + matcher.vendor_id = vendorID; + matcher.product_id = productID; + matcher.matcher_fn = NULL; + + if (debugLevel >= DEBUG_USB) { + hid_set_debug(HID_DEBUG_ALL); + hid_set_usb_debug(HID_DEBUG_ALL); + } + + if(HID_RET_SUCCESS == hid_init()) { + status = ERR_USB_INIT2; + if((hid = hid_new_HIDInterface())) { + if(HID_RET_SUCCESS == + hid_force_open(hid,0,&matcher,3)) { + return ERR_NONE; + } + status = ERR_DEVICE_NOT_FOUND; + hid_delete_HIDInterface(&hid); + } + hid_cleanup(); + } + + return status; } /**************************************************************************** @@ -111,34 +112,34 @@ ErrorCode usbWrite( const char read) { #ifdef DEBUG - int i; - (void)puts("Sending:"); - for(i=0;i<8;i++) (void)printf("%02x ",((unsigned char *)usbBuf)[i]); - (void)printf(": "); - for(;i<64;i++) (void)printf("%02x ",((unsigned char *)usbBuf)[i]); - (void)putchar('\n'); fflush(stdout); - DEBUGMSG("\nAbout to write"); + int i; + (void)puts("Sending:"); + for(i=0;i<8;i++) (void)printf("%02x ",((unsigned char *)usbBuf)[i]); + (void)printf(": "); + for(;i<64;i++) (void)printf("%02x ",((unsigned char *)usbBuf)[i]); + (void)putchar('\n'); fflush(stdout); + DEBUGMSG("\nAbout to write"); #endif - if(HID_RET_SUCCESS != hid_interrupt_write(hid,0x01,usbBuf,len,0)) - return ERR_USB_WRITE; + if(HID_RET_SUCCESS != hid_interrupt_write(hid,0x01,usbBuf,len,0)) + return ERR_USB_WRITE; - DEBUGMSG("Done w/write"); + DEBUGMSG("Done w/write"); - if(read) { - DEBUGMSG("About to read"); - if(HID_RET_SUCCESS != hid_interrupt_read(hid,0x81,usbBuf,64,0)) - return ERR_USB_READ; + if(read) { + DEBUGMSG("About to read"); + if(HID_RET_SUCCESS != hid_interrupt_read(hid,0x81,usbBuf,64,0)) + return ERR_USB_READ; #ifdef DEBUG - (void)puts("Done reading\nReceived:"); - for(i=0;i<8;i++) (void)printf("%02x ",usbBuf[i]); - (void)printf(": "); - for(;i<64;i++) (void)printf("%02x ",usbBuf[i]); - (void)putchar('\n'); fflush(stdout); + (void)puts("Done reading\nReceived:"); + for(i=0;i<8;i++) (void)printf("%02x ",usbBuf[i]); + (void)printf(": "); + for(;i<64;i++) (void)printf("%02x ",usbBuf[i]); + (void)putchar('\n'); fflush(stdout); #endif - } + } - return ERR_NONE; + return ERR_NONE; } /**************************************************************************** @@ -151,8 +152,8 @@ ErrorCode usbWrite( ****************************************************************************/ void usbClose(void) { - (void)hid_close(hid); - hid_delete_HIDInterface(&hid); - (void)hid_cleanup(); - hid = NULL; + (void)hid_close(hid); + hid_delete_HIDInterface(&hid); + (void)hid_cleanup(); + hid = NULL; } diff --git a/usb-osx.c b/usb-osx.c index b8e2955..5e11e88 100644 --- a/usb-osx.c +++ b/usb-osx.c @@ -1,6 +1,6 @@ /**************************************************************************** File : usb-osx.c - Description : Encapsulates all nonportable, Linux-specific USB I/O code + Description : Encapsulates all nonportable, OSX-specific USB I/O code within the mphidflash program. Each supported operating system has its own source file, providing a common calling syntax to the portable sections of the code. @@ -9,7 +9,7 @@ * Initial implementation 2009-12-26 Thomas Fischl, Dominik Fisch (www.FundF.net) * Renamed 'ubw32' to 'mphidflash' - + License : Copyright (C) 2009 Phillip Burgess Copyright (C) 2009 Thomas Fischl, Dominik Fisch (www.FundF.net) @@ -36,8 +36,8 @@ #include "mphidflash.h" static IOHIDDeviceDeviceInterface **device = NULL; -unsigned char usbBufX[64]; -unsigned char * usbBuf = usbBufX; +unsigned char usbBufX[64]; +unsigned char *usbBuf = usbBufX; /**************************************************************************** Function : usbCallback @@ -55,9 +55,9 @@ static void usbCallback( uint8_t *report, CFIndex reportLength) { - DEBUGMSG("In callback"); - CFRunLoopStop(CFRunLoopGetCurrent()); - DEBUGMSG("Exiting callback"); + DEBUGMSG("In callback"); + CFRunLoopStop(CFRunLoopGetCurrent()); + DEBUGMSG("Exiting callback"); } /**************************************************************************** @@ -119,7 +119,7 @@ ErrorCode usbOpen( (*plugInInterface)->QueryInterface(plugInInterface, CFUUIDGetUUIDBytes(kIOHIDDeviceDeviceInterfaceID),(LPVOID)&device); - (*plugInInterface)->Release(plugInInterface); + (*plugInInterface)->Release(plugInInterface); if(device) { status = ERR_USB_OPEN; /* Init phase 1 OK, but not yet open */ @@ -171,34 +171,34 @@ ErrorCode usbWrite( const char read) { #ifdef DEBUG - int i; - (void)puts("Sending:"); - for(i=0;i<8;i++) (void)printf("%02x ",((unsigned char *)usbBuf)[i]); - (void)printf(": "); - for(;i<64;i++) (void)printf("%02x ",((unsigned char *)usbBuf)[i]); - (void)putchar('\n'); fflush(stdout); - DEBUGMSG("\nAbout to write"); + int i; + (void)puts("Sending:"); + for(i=0;i<8;i++) (void)printf("%02x ",((unsigned char *)usbBuf)[i]); + (void)printf(": "); + for(;i<64;i++) (void)printf("%02x ",((unsigned char *)usbBuf)[i]); + (void)putchar('\n'); fflush(stdout); + DEBUGMSG("\nAbout to write"); #endif - if(kIOReturnSuccess != (*device)->setReport(device, - kIOHIDReportTypeOutput,0,usbBuf,len,500,NULL,NULL,0)) - return ERR_USB_WRITE; + if(kIOReturnSuccess != (*device)->setReport(device, + kIOHIDReportTypeOutput,0,usbBuf,len,500,NULL,NULL,0)) + return ERR_USB_WRITE; - DEBUGMSG("Done w/write"); + DEBUGMSG("Done w/write"); - if(read) { - DEBUGMSG("About to read"); - CFRunLoopRun(); /* Read invokes callback when done */ + if(read) { + DEBUGMSG("About to read"); + CFRunLoopRun(); /* Read invokes callback when done */ #ifdef DEBUG - (void)puts("Done reading\nReceived:"); - for(i=0;i<8;i++) (void)printf("%02x ",usbBuf[i]); - (void)printf(": "); - for(;i<64;i++) (void)printf("%02x ",usbBuf[i]); - (void)putchar('\n'); fflush(stdout); + (void)puts("Done reading\nReceived:"); + for(i=0;i<8;i++) (void)printf("%02x ",usbBuf[i]); + (void)printf(": "); + for(;i<64;i++) (void)printf("%02x ",usbBuf[i]); + (void)putchar('\n'); fflush(stdout); #endif - } + } - return ERR_NONE; + return ERR_NONE; } /**************************************************************************** @@ -211,7 +211,7 @@ ErrorCode usbWrite( ****************************************************************************/ void usbClose(void) { - (*device)->close(device,0); - (*device)->Release(device); - device = NULL; + (*device)->close(device,0); + (*device)->Release(device); + device = NULL; } diff --git a/usb-windows.c b/usb-windows.c index 8c0ea9b..8b6bbd6 100644 --- a/usb-windows.c +++ b/usb-windows.c @@ -1,13 +1,13 @@ /**************************************************************************** File : usb-windows.c - Description : Encapsulates all nonportable, Linux-specific USB I/O code + Description : Encapsulates all nonportable, Windows-specific USB I/O code within the mphidflash program. Each supported operating system has its own source file, providing a common calling syntax to the portable sections of the code. History : 2009-12-26 Thomas Fischl, Dominik Fisch (www.FundF.net) * Initial windows support - + License : Copyright (C) 2009 Thomas Fischl, Dominik Fisch (www.FundF.net) This file is part of 'mphidflash' program. @@ -31,93 +31,98 @@ #include #include #include +#if __GNUC__ >= 5 +#include +#include +#else #include #include +#endif #include "mphidflash.h" -HANDLE usbdevhandle = INVALID_HANDLE_VALUE; -unsigned char usbBufX[65]; -unsigned char * usbBuf = &usbBufX[1]; +HANDLE usbdevhandle = INVALID_HANDLE_VALUE; +unsigned char usbBufX[65]; +unsigned char * usbBuf = &usbBufX[1]; -HIDP_CAPS Capabilities; -PHIDP_PREPARSED_DATA HidParsedData; +HIDP_CAPS Capabilities; +PHIDP_PREPARSED_DATA HidParsedData; ErrorCode usbOpen( const unsigned short vendorID, const unsigned short productID) { - ErrorCode status = ERR_DEVICE_NOT_FOUND; - int i; - GUID hidGuid; - HDEVINFO deviceInfoList; - SP_DEVICE_INTERFACE_DATA deviceInfo; - SP_DEVICE_INTERFACE_DETAIL_DATA *deviceDetails = NULL; - DWORD size; - - HIDD_ATTRIBUTES deviceAttributes; - - HidD_GetHidGuid(&hidGuid); - deviceInfoList = SetupDiGetClassDevs(&hidGuid, NULL, NULL, DIGCF_PRESENT | DIGCF_INTERFACEDEVICE); - - deviceInfo.cbSize = sizeof(SP_DEVICE_INTERFACE_DATA); - - for (i = 0;;i++) { - - /* if there is a assigned handler, close it */ - if (usbdevhandle != INVALID_HANDLE_VALUE) { - CloseHandle(usbdevhandle); - usbdevhandle = INVALID_HANDLE_VALUE; - } - - if (!SetupDiEnumDeviceInterfaces(deviceInfoList, 0, &hidGuid, i, &deviceInfo)) { - /* finished walk through device list */ - break; - } - - /* get size for detail structure */ - SetupDiGetDeviceInterfaceDetail(deviceInfoList, &deviceInfo, NULL, 0, &size, NULL); - if (deviceDetails != NULL) - free(deviceDetails); - deviceDetails = malloc(size); - deviceDetails->cbSize = sizeof(*deviceDetails); - - /* now get details */ - SetupDiGetDeviceInterfaceDetail(deviceInfoList, &deviceInfo, deviceDetails, size, &size, NULL); - - /* try to open device */ - usbdevhandle = CreateFile(deviceDetails->DevicePath, GENERIC_READ|GENERIC_WRITE, FILE_SHARE_READ|FILE_SHARE_WRITE, NULL, OPEN_EXISTING, 0, NULL); - if (usbdevhandle == INVALID_HANDLE_VALUE) { - /* cannot open device, go to next */ - continue; - } - - /* get attributes for this device */ - deviceAttributes.Size = sizeof(deviceAttributes); - HidD_GetAttributes(usbdevhandle, &deviceAttributes); - if (deviceAttributes.VendorID != vendorID || deviceAttributes.ProductID != productID) { - /* device doesn't match, go to next */ - continue; - } - - HidD_GetPreparsedData(usbdevhandle, &HidParsedData); - - /* extract the capabilities info */ - HidP_GetCaps(HidParsedData ,&Capabilities); - - /* Free the memory allocated when getting the preparsed data */ - HidD_FreePreparsedData(HidParsedData); - - /* okay, here we found our device */ - status = ERR_NONE; - break; - } - - SetupDiDestroyDeviceInfoList(deviceInfoList); - - if (deviceDetails != NULL) - free(deviceDetails); - - return status; + ErrorCode status = ERR_DEVICE_NOT_FOUND; + int i; + GUID hidGuid; + HDEVINFO deviceInfoList; + SP_DEVICE_INTERFACE_DATA deviceInfo; + SP_DEVICE_INTERFACE_DETAIL_DATA *deviceDetails = NULL; + DWORD size; + + HIDD_ATTRIBUTES deviceAttributes; + + HidD_GetHidGuid(&hidGuid); + deviceInfoList = SetupDiGetClassDevs(&hidGuid, NULL, NULL, DIGCF_PRESENT | DIGCF_INTERFACEDEVICE); + + deviceInfo.cbSize = sizeof(SP_DEVICE_INTERFACE_DATA); + + for (i = 0;;i++) { + + /* if there is a assigned handler, close it */ + if (usbdevhandle != INVALID_HANDLE_VALUE) { + CloseHandle(usbdevhandle); + usbdevhandle = INVALID_HANDLE_VALUE; + } + + if (!SetupDiEnumDeviceInterfaces(deviceInfoList, 0, &hidGuid, i, &deviceInfo)) { + /* finished walk through device list */ + break; + } + + /* get size for detail structure */ + SetupDiGetDeviceInterfaceDetail(deviceInfoList, &deviceInfo, NULL, 0, &size, NULL); + if (deviceDetails != NULL) + free(deviceDetails); + deviceDetails = malloc(size); + deviceDetails->cbSize = sizeof(*deviceDetails); + + /* now get details */ + SetupDiGetDeviceInterfaceDetail(deviceInfoList, &deviceInfo, deviceDetails, size, &size, NULL); + + /* try to open device */ + usbdevhandle = CreateFile(deviceDetails->DevicePath, GENERIC_READ|GENERIC_WRITE, FILE_SHARE_READ|FILE_SHARE_WRITE, NULL, OPEN_EXISTING, 0, NULL); + if (usbdevhandle == INVALID_HANDLE_VALUE) { + /* cannot open device, go to next */ + continue; + } + + /* get attributes for this device */ + deviceAttributes.Size = sizeof(deviceAttributes); + HidD_GetAttributes(usbdevhandle, &deviceAttributes); + if (deviceAttributes.VendorID != vendorID || deviceAttributes.ProductID != productID) { + /* device doesn't match, go to next */ + continue; + } + + HidD_GetPreparsedData(usbdevhandle, &HidParsedData); + + /* extract the capabilities info */ + HidP_GetCaps(HidParsedData ,&Capabilities); + + /* Free the memory allocated when getting the preparsed data */ + HidD_FreePreparsedData(HidParsedData); + + /* okay, here we found our device */ + status = ERR_NONE; + break; + } + + SetupDiDestroyDeviceInfoList(deviceInfoList); + + if (deviceDetails != NULL) + free(deviceDetails); + + return status; } @@ -126,53 +131,53 @@ ErrorCode usbWrite( const char read) { - BOOLEAN rval = 0; - DWORD bytesWritten = 0; - DWORD bytesRead = 0; + BOOLEAN rval = 0; + DWORD bytesWritten = 0; + DWORD bytesRead = 0; #ifdef DEBUG - int i; - (void)puts("Sending:"); - for(i=0;i<8;i++) (void)printf("%02x ",((unsigned char *)usbBuf)[i]); - (void)printf(": "); - for(;i<64;i++) (void)printf("%02x ",((unsigned char *)usbBuf)[i]); - (void)putchar('\n'); fflush(stdout); - DEBUGMSG("\nAbout to write"); - printf("usbdevhandle: %d, usbBuf: %d, len: %d, %d\n", usbdevhandle, usbBuf, len, Capabilities.OutputReportByteLength); + int i; + (void)puts("Sending:"); + for(i=0;i<8;i++) (void)printf("%02x ",((unsigned char *)usbBuf)[i]); + (void)printf(": "); + for(;i<64;i++) (void)printf("%02x ",((unsigned char *)usbBuf)[i]); + (void)putchar('\n'); fflush(stdout); + DEBUGMSG("\nAbout to write"); + printf("usbdevhandle: %d, usbBuf: %d, len: %d, %d\n", usbdevhandle, usbBuf, len, Capabilities.OutputReportByteLength); #endif - /* report id */ - usbBufX[0] = 0; + /* report id */ + usbBufX[0] = 0; + + if (WriteFile(usbdevhandle, usbBufX, Capabilities.OutputReportByteLength, &bytesWritten, 0) == 0) { +// printf("usb write failed, Error %u\n", GetLastError()); - if (WriteFile(usbdevhandle, usbBufX, Capabilities.OutputReportByteLength, &bytesWritten, 0) == 0) { -// printf("usb write failed, Error %u\n", GetLastError()); + return ERR_USB_WRITE; + } - return ERR_USB_WRITE; - } + DEBUGMSG("Done w/write"); - DEBUGMSG("Done w/write"); + if (read) { + if (ReadFile(usbdevhandle, usbBufX, Capabilities.OutputReportByteLength, &bytesRead, 0) == 0) { +// printf("usb read failed, Error %u\n", GetLastError()); + return ERR_USB_READ; + } - if (read) { - if (ReadFile(usbdevhandle, usbBufX, Capabilities.OutputReportByteLength, &bytesRead, 0) == 0) { -// printf("usb read failed, Error %u\n", GetLastError()); - return ERR_USB_READ; - } - #ifdef DEBUG - (void)puts("Done reading\nReceived:"); - for(i=0;i<8;i++) (void)printf("%02x ",usbBuf[i]); - (void)printf(": "); - for(;i<64;i++) (void)printf("%02x ",usbBuf[i]); - (void)putchar('\n'); fflush(stdout); + (void)puts("Done reading\nReceived:"); + for(i=0;i<8;i++) (void)printf("%02x ",usbBuf[i]); + (void)printf(": "); + for(;i<64;i++) (void)printf("%02x ",usbBuf[i]); + (void)putchar('\n'); fflush(stdout); #endif - } + } - return ERR_NONE; + return ERR_NONE; } void usbClose(void) { - CloseHandle(usbdevhandle); + CloseHandle(usbdevhandle); } From 6ccc038b12a01848a3b789f721676a7143d9e5db Mon Sep 17 00:00:00 2001 From: Alexander Stohr Date: Mon, 7 Dec 2020 05:31:11 +0100 Subject: [PATCH 4/6] improved whitespaces --- mphidflash.h | 54 ++++++++++++++++++++++++++-------------------------- 1 file changed, 27 insertions(+), 27 deletions(-) diff --git a/mphidflash.h b/mphidflash.h index 2d4f4f1..6acfbff 100644 --- a/mphidflash.h +++ b/mphidflash.h @@ -11,7 +11,7 @@ 2010-12-28 Petr Olivka * program and verify only data for defined memory areas * send only even length of data to PIC - + License : Copyright (C) 2009 Phillip Burgess Copyright (C) 2009 Thomas Fischl, Dominik Fisch (www.FundF.net) Copyright (C) 2010 Petr Olivka @@ -69,8 +69,8 @@ /* Values derived from Microchip HID Bootloader source */ /* Bootloader commands */ -#define QUERY_DEVICE 0x02 -#define UNLOCK_CONFIG 0x03 +#define QUERY_DEVICE 0x02 +#define UNLOCK_CONFIG 0x03 #define ERASE_DEVICE 0x04 #define PROGRAM_DEVICE 0x05 #define PROGRAM_COMPLETE 0x06 @@ -97,37 +97,37 @@ typedef enum { - ERR_NONE = 0, /* Success (non-error) */ - ERR_CMD_ARG, - ERR_CMD_UNKNOWN, - ERR_DEVICE_NOT_FOUND, - ERR_USB_INIT1, - ERR_USB_INIT2, - ERR_USB_OPEN, - ERR_USB_WRITE, - ERR_USB_READ, - ERR_HEX_OPEN, - ERR_HEX_STAT, - ERR_HEX_MMAP, - ERR_HEX_SYNTAX, - ERR_HEX_CHECKSUM, - ERR_HEX_RECORD, - ERR_VERIFY, - ERR_EOL /* End-of-list, not actual error code */ + ERR_NONE = 0, /* Success (non-error) */ + ERR_CMD_ARG, + ERR_CMD_UNKNOWN, + ERR_DEVICE_NOT_FOUND, + ERR_USB_INIT1, + ERR_USB_INIT2, + ERR_USB_OPEN, + ERR_USB_WRITE, + ERR_USB_READ, + ERR_HEX_OPEN, + ERR_HEX_STAT, + ERR_HEX_MMAP, + ERR_HEX_SYNTAX, + ERR_HEX_CHECKSUM, + ERR_HEX_RECORD, + ERR_VERIFY, + ERR_EOL /* End-of-list, not actual error code */ } ErrorCode; /* Function prototypes */ extern ErrorCode - hexOpen(char * const), - hexWrite(const char), - usbOpen(const unsigned short,const unsigned short), - usbWrite(const char,const char); + hexOpen(char * const), + hexWrite(const char), + usbOpen(const unsigned short,const unsigned short), + usbWrite(const char,const char); extern void - hexClose(void), - usbClose(void), - hexSetBytesPerAddress(unsigned char); + hexClose(void), + usbClose(void), + hexSetBytesPerAddress(unsigned char); extern unsigned char hexGetBytesPerAddress(void); #pragma pack( push ) From c979daa7d55d4795c6557e342fc82943f7c6e972 Mon Sep 17 00:00:00 2001 From: Alexander Stohr Date: Mon, 7 Dec 2020 06:21:57 +0100 Subject: [PATCH 5/6] moved version into a single file --- Makefile | 3 +-- Makefile.win | 4 +--- version.mk | 2 ++ 3 files changed, 4 insertions(+), 5 deletions(-) create mode 100644 version.mk diff --git a/Makefile b/Makefile index df7f2e0..15b7b42 100644 --- a/Makefile +++ b/Makefile @@ -1,5 +1,4 @@ -VERSION_MAIN = 1 -VERSION_SUB = 8 +include version.mk CC = gcc OBJS = main.o hex.o diff --git a/Makefile.win b/Makefile.win index 858bee7..847fb3a 100644 --- a/Makefile.win +++ b/Makefile.win @@ -1,5 +1,4 @@ -VERSION_MAIN = 1 -VERSION_SUB = 8 +include version.mk SYSTEM = win # determine the compiler in reach - it might be a cross-compiler @@ -33,7 +32,6 @@ mphidflash32: EXEC = mphidflash-$(VERSION_MAIN).$(VERSION_SUB)-$(SYSTEM)-32.exe mphidflash32: mphidflash.exe mphidflash.exe: $(OBJS) - $(CC) --version $(CC) $(OBJS) $(LDFLAGS) -o $(EXECPATH)/$(EXEC) clean: diff --git a/version.mk b/version.mk new file mode 100644 index 0000000..2a8cceb --- /dev/null +++ b/version.mk @@ -0,0 +1,2 @@ +VERSION_MAIN = 1 +VERSION_SUB = 9 From cf4abf460872aee7aa632903d4804d523e6d0256 Mon Sep 17 00:00:00 2001 From: Alexander Stohr Date: Mon, 7 Dec 2020 06:25:13 +0100 Subject: [PATCH 6/6] created reference build on xenial --- binaries/mphidflash-1.9-linux-32 | Bin 0 -> 18000 bytes binaries/mphidflash-1.9-linux-64 | Bin 0 -> 18856 bytes binaries/mphidflash-1.9-win-32.exe | Bin 0 -> 140831 bytes binaries/mphidflash-1.9-win-64.exe | Bin 0 -> 172002 bytes build_all_linux.sh | 16 ++++++++++++++++ 5 files changed, 16 insertions(+) create mode 100755 binaries/mphidflash-1.9-linux-32 create mode 100755 binaries/mphidflash-1.9-linux-64 create mode 100755 binaries/mphidflash-1.9-win-32.exe create mode 100755 binaries/mphidflash-1.9-win-64.exe create mode 100755 build_all_linux.sh diff --git a/binaries/mphidflash-1.9-linux-32 b/binaries/mphidflash-1.9-linux-32 new file mode 100755 index 0000000000000000000000000000000000000000..a89e9bfcff8cee9c944d6d120197ce95e6393ad8 GIT binary patch literal 18000 zcmeHveRxyHmG?-Ni7@uPPU55n-1at+iJf3$gCRCC!5^|QV2A)iXrUO{y5h=_B}KXd z)4EwFlE7Ny)=gHD6&l8Gl8RY0Wc-fi`t;1fJZ^wl@l*e1c|9$&ysjdz#~1D>4*82`YqE)#@QaqO z#;4W~k|`k(Zw?aKj_{Md^^^az{lm&1G<@&Za|Yjh^zp_iFTYAS8xr-O_`1pJXB|_h z?hd58kZS6FckbX@k9HP*aYtVH`#pL4mcBK3>cO>n|JM7SF!Gzf2q3xYIY$cV&rQg; z8US*FZyX0pDBm}Me#baG(Z4tW|Kka8d;*+40dAcD=TCs66X4%ZfQ!cIBcVKf0)Ai| zp7d2Gz`vUS|8N5T*$FTo44sF|n}9zt0bVl!eq};?FHgV+Cg3Z_!4k^vjf1KErzh|` z#^EKDy%X?18iyzTFHgX~IRSqYoNw0&%u77kY%0qKy!$l+p2iMEcx&ay3IEl0~#GS#`E5%@4>ypX_aR1wEVPV6!hU zfqhHRqsn@nN9Bc(8iZ_rkOP}!b-d74uhY}s%v*OmTQ$a@?3JA%c|vWg*B{dGTrrot z+0zQmV6;{;*F5z1KG?(M@im7-vWvOh-f&2Pp#njOcQ>~x4{(w|SZ!rc$=BK*0M--o zw^md%heEARpPK;*!;x8AA0Uoqx6|Wg?d{G0YnR(K4)-{LXwM&3IWDjjQZZUV)*ki| z18)QU(78GwRHe#RC5R?k)vW=!S@nkl0hrP2Z$%yTMIX|3r^m;dWtUTR0?`r*Y4xb` zx!9t{#Wl6fvy11zNsRK{qouLBlF_<3@G-a}9*VSS_#-bi%2YoFrLlBiC<+sv9-~aK z34g>-IsH*hI-7?AtpW6?Q$3T3=T0<8bzks!vS)<3rcbaSISPWycpQjP^Tk8-FkQGNr~7s@f)3Mhw$ zGbztttc3C@So0~*WUQQWXk1A-rezi7=!l(iEE)}zBcL==j>X?WITpAk%5Pz8E#!4i1x=s0480(_^HpZfq-_F>o z$T@4G869|d=*x>3>xo=RrBbm$H9e65D@2Z3*9~#IrRG||k;=E?lPXgAWHE(`$unR{ z<&)(U!X-~|m@KH!kR=B>OqNujIZN*6Fj-WQ2;R+MvaC`-a36sfuI7}m>P=}J)9JUi2AeeEO zMoQ@*_`;{C$fprgx(GhQVH!E5o8S{1rV&*72p;4xjij=R;Qbt?5mj~*yqm)`vdXgr z_i@-o@P2~3I7}n03=kaPFpan}Nbp7u)5t5w33hOpJU}@?a21Ei6O>Z~mvERoLODaQ z#9{IbB|&gDhob~vAeeEOW{#Ws!=K(pn#lYzh>2n-fwk1e2%);V>%Y= zfPqe7_8g0KqC{(P{75|JMY*Ti@^5fk7LTcbPi`TtfIvBZZ`rv2B>bj!OTCB(F zqR(J0J66}dpF=w?@T@QACset!oM*cZagrbXC(m}T=aqZ^z@cZmIJ9ps&-TB;r)!9v-DOzL5QBRU2SG%24t*BT>4uo6*-z68w@+| zd4lN09jg(7xX@9)REhE=sM}15H#G8;X_hX3QVo%uhRXQG-e1rbo@xD=#rv~gBY+)C zyLxFXOao|um7Ywl1<>2i>3O$$xi-l!QS|{teM8P{E=Muss1Iu5=kn?mMs;{v*Ha|^ z6GQyRm>5^dDd!B*C_|+_uDu1I)Q5D))MGEV#JQ`$LG=D;ikl6|KL))619lG=`06Ky zqui{~WgB!`bh>*v-7^NAx{jEudF7*{m0!BQ&HN&*gNmJF5(Y+$^5ou-1-P~k&VIULF&hy-aFNcZeS=on_^wO?y9q3Sg( zW7^OUi&1(HayU|R_kyG?BQf_f@7YB@g-q(A$iMR$Bz}J|ek^_oeii*AhBEObcy;We z7<&zXMw>0hc8&s8G3Fq$|3XX24`6+ld?+Qx@@E%o~%Od-Z@gP0X7xIqSiHw+TXKz-?8VjspOKHT$t>OQ8?_XlGaLe(7@Y7qMI-JU+{|+spm5xK=xkZ9Z$v~fI9mfFejcvrQTWVx((=~DRBjRmH1FX*1K|AjD8a% zpPWIi54MMhtz(RBGJJv9UIH6eUyOba`X0)~M?xZdeUN+?0`yoq7D$u(QH!CE=AbLd zBz%p;uP5rx3W`~1YzFx!YW&%<4X%NK_zJ7o_`73nV;JE*O z&XHqC6r+7avIJ@*nm@vro!=1uzgPhsO)HgbL}F$CQx@xrHA;35RQnVJAG-U-{`z|I zY(rz9yKms1Fae5o;UjWs(&lNjt}|@AZp3ODIhUglB6R|mdijH)zFu_(8=x9afB2F) ze&q1GUpAe1?UFkEAZI+O-ozQR9U3PEYH$*x5nmQO3jr*AGpDmAXrd3NQ=JKf(8r49 zy(c?%GMqm0J%lAg?)#cTjuaP}41yz@vH(~$c$&r zL7LYP#b?bf(Q7%`HE=ulQsMWyZ=rYsIk#~+W-VPLD3`})DP@Qx@Z$W6ekTB&qu%k~tl;bV52m6ZM^eUzRa zw%cZ~kp-2I*nazEgYK0OY=W58pJ@d4>oIUfkLK%?vYREhHEY#|9_ta{Iav&FJ$h-ECm!PS(@Q zRK``C)T7$06`eLojMBl2*uNo-MnFWlr`{SH1esNgUPN&1>a^vXHfNTe{OGT=dzl1^ zSW1j0Vf^{)ZFh*#V<75TZn>w?mMKQh)1W^>?}#?NtxA7G*&1^zoxO|h|vgVd0AsA(^+yV4sULc zq|(%7Aiq;W68G=)kiVME9~gg_Ih~2$eF8ZGsW$+ zBO3YDRkgX|cJi8$16S4Nh}-8-?f;^1evZQVlJ`@oV-{Nu+&OVC%J9qNAJK5vyQc6L z$X!i|JFu%IcP$}T{E4>IpgLQxJ_<3(M@Oqa#tR5huO#YkqIv-93`^chB|5H6W>P7e zN@kSc2{TMn2P0>0Nq&GeXMj%ml1Y?!yyLOtb&4joc%v;xUoVRj>U*iwS2ZYMMOo}$ zK$8#c#!_l)*8-Xv*pL4W=7)QzE4miYd_c`z@H86vgoF+{z>RLdakD5ii z#-dK|T0riOn!iFRjH)`hYXQYV78dd5bTp5LExu0lWUWB`p4IrMcthMCLo24^r6(&+ ziH{$N|E@P@PQ`0t$vR-PP#>RS>eK@IqQTVHFbPNZfEC zmEtRPRpJ*oBOxOVh9^fpy<6O7qOgg=W9fY)P4Cj!{uKTqd>(%_$E@S|6;cL5|{0Sacl#sFGr0BoTI-bGAEj@s|D?e5g+ju0I=4DV;x z0`gy`-v2oUu1;s#EWviTD$%cP5oiONf*9?U;T+zbCh^_!;~JXBUwxiVBvC;!%;$^= z_D^0wywd#DZnOL|P0=Ck{TC}Hhx&9mYjE)A)sJ87HdpCj8%wFS&V=PWhH?m^p1cC) z*y#Zr4YI9Y>1nd9A3a?7E~+9&UF$Xsjm=MZMK9J4$EvopMBh0cy)m~d5c5lL!q~=E z(Qew&#-6+cv57;RLW*2UJ!yektEG`a(~}IP(!r6PT>nGxJlaRCO0+;D=o7z?+`=cb z_TGLhoftvG4k41Tk>4hMHNqWR-|teqj+|SM_5*Uy0t)=`PFrJXDmsY0NU_+xfljCF zHakfew%dx>9+HO|)Z^&jd}*rmG~Xp00uqH>-EL3`{cLpLV=aB)&G(OZA4EGg(Ge_1MenZwh z{EkIDl$YD}Nrm{GZgev;QZo62$mR0xA5eT2qyJ2Gf5Y}i(4<)q=VB-0uZeb2$`Uzd zz6VQz82u&a(3rJ%g{imsQ?Xwy|1^G~vf`m1($W}jvSla!ki?FG#ozBig?Q+FxKDOZ z+5SDG1ZfcY^WD&e^!RoM26dF}Y0k!}!Pt|xD>8ETcnxD4KnXx)-f@B&EY`-7o& z7wMHn0|`}o>r9%3Al+K}GS@styB6+W@mI+$=cB0t>=ko*?YB;GB<_A!cU&SG;U^Nb)aQ{irgh@yZ8}ZyFt&kPu7mKm|po<(` z&zJmh^AE>z(LvBgE?HD}{5S> z<_xm<oIe8>_tuVv@v(Z z=u;RejHPlCN?JXfrw0s?BYt}yh|y4H@6xn5ya)`mPi1^s{~9FHNR1xX4;_KW96n=-AJ*Kd zDfd&j**`27Ib!m0IG8OvGGs11e9wBk5A`1gHwJqn^%pi5`!$A#`nxd|68Z073wwwr z1?#c&MG|*&$s>D#oP~K*kg(_kvp@h?BO2LdD45LD#N!-|5^pT8C#Ns+?%kL;Nm_IDz&3gw zj6FH6E%>4e^FQ$l8pNp!k#pqXyhB?bGQ}70vM9dLX|pB%5gdutXfd&$ zK0X167sZ#v=8AOdbJ<`7}L-7fKp(cg4?hfeW8^SG+il3UBjeYaRG8 z3u1#$S}Ev7>GYqkgpP#6K&dl$O=>QYBs{35-LVedX;6i4ragWppYY?(zcY2Z+0gb_ zI!QnaEU^lpLn(W1+!@CORP{`c9F?GQY#DhQzL#icv?a6w8bCl|BTpoza?TI=G}2E; zXnfF#q(DsC!mHaGi)#+zo1}E(4N=4*DdA9;w)%9k!n^a+w~1GZ4IacH1M8R+Jsr-V zZxF2U6YJ>vh)mAfR;95i4}(bO-2axrNnPrA1?Mrx_mE5+kWE9oZOoB42O5koZ>fa0 zlt;%{#vdQw#CEL44-YN6lPsT!FeLT<+=8AYZUA#{gud1*96tQ1Id)OaFEzd=IA_5= zXeOoAshuwp4ZR*8&93+;{FX5au-^wm`gfu&FDcRD5Z^s>rYfH5SNY+`kFj+OT`JoJ!A7ZP05BU6Bd{O~@_b+)|QogGY0&u;+=aPJWRSL?j{!Kp5H*kGn z^{N_)-=&bWyAuS{)eIf1^@qJ0&x2t(xK&c*4$1BD%2Ej2Y?<8dM`a7H6+94<{J5y$ z#f5}b9?14>lIn3mM1gJ~cd??)EWd*l1z1s-70Il~$BMSFq7W+zvLb~QE#!(cEVfJ9 zg$v2;5900&;W6S-LHeix&BHkUz=|;m+*hlt)4BQ#er8rfoq$9rrBj}P^ zxC-u|EN7s-fIq0pF3Ew5B2dJRdm2)`N5+_}!T?B~5IC?OUgimroydvWonF!fJgwS@ z(WN9(AEwa60P6GH3gfV6nleGE=(xF2E0 z#-0c~KHQ>#K4Ubv4Kqf9G1H7oqIg&J*WNOI7{9qB5vHFD77-a2ZVF(bG7eLlIBMin|brGS46?q0d1 zAZ$&#Dd84wXVOJ?4?d3zN(xE7K2kcyiz{1DXxVsY^vb?XszSce0ucozGtrJ;YVm9; z{5(4Hh4!#l^#m}pF-2xmAFqWWKI29hWMqj9FQp7 zN^~s_wh4{OqGd|bmJO*%!EEts!;Vr=elYBzIoYyR@`6pX1-cN@mbQ#hArkc}1n&X6 z8*@UIT1G==aYoT*sS=}yk(6j%)dz1gA`AsM`#33|E#{Y$bz~F;t|b5i;0m{@e@B8Q zK%tOQv=H(eWN(0uPBa_RYH=+y((;v|*&ZbG+5G&H*&QT`az+K3XZJgUw8YQHYNIcQ zdf)hpGE-^^s}e3cQe5GI8}~Z(-fNqbQGT6>U(ZBzgQ@9yrbdKzOw-fup$6$)b?+Og z6utf(IGsv$;?3>=wrcd{=w7_m9R=Kk)1cjW19l-lfLuj>9C;ItAj`4&vg4Iw5V?x{ zZR7{=nx^8Y#fBHULF7%y-$s4_c?rHZ$boEnOy5|^Or2KK^h}GT8|_G_%R{n4A8hBK zoV8xaTp~_UEgfv(w0rKHZM$s{)m2CzzKNGZ$YkcH1Z&J(Eo5#_s}{1iS*nGcNP3;H zahc$%6O9wix;f11 z#k6o>QuYnzaA)=;bGRcr%^X(K9y4Ve21)f$^>FpE>X&L^uNs`dodRnkh^BB6YVP+22X)eDvNLe+gjiP?J%Thvc6e^V%1C6q4{DyunhwNPHe85@L>uU&&< z>6A2=NhrV1pm7Lgi-qz!&b~w_aa@C?eo9(8SeB2m5IuB56HS~KWoU@5;H8cgzz6o> zc!=f}JychTx@S?xU%UW&ksPSoi@MiQCL3%ccZj6b3LVRZPP@=$S|S8mGBEB#824ep zvUEzVpwm2I)(M@9bvnP$ z0Z7+aLemYHYn}Ldhi{;3h1_}}uU?R}&y|9O?EsAzG~J+?4L|uDT_y8cVP>^Z(jZ6< zp`gYnFXH8Tp`@N_s2*j|EWU=iOJGq#uNKPcxZA+fmIzX-V5=L)*#H%;K%a7aXGgXq zeIn*sA#X8hZL1$6&0d)ySZjv_xH-^uf>guNb-E641PSa7@cH$Sl~1x7h1?n;uiEH; z1Nu+xc|oIq=Icart@*KBkUWCTE)>{#$CnAxqR&PO&G!Z%s}r&?{MVoB7PxMK>lV0f zf$J8yZh`9-xNd>#7Wf~xz#06`eGrKR)Arp+^jkgp%9DPJN?%peZ&2y?J@k8Y{2Yy8 zn~GnzA_q+G(**zZ)0BT7es4~%Ec>JQJs$E4fa%?812(jDp@ZJ9aGRe$*rqdvua;=9 zdkKl&+35lw-Pt{}-D0KkapZJkFBggKERv%5_SLVT9^c{kNngBr_yxcy{(nF8`+0-u z*0{ww18E*oJ<=K^H_~RLZAgzHJ&n|lG>r5*(mO~OktY44#d<5!45WET^+;=w+(?^| zwjn)+^fXdG(lFBNNbewBL^5Xxui4NG&2%Zf{i=7l*_`cUb- z;*zrB(%FR?LYiGtISA!ZxKOnmbXa){Hza@ID5b&zhAb!bPjAHR7KMJbc zflnMcdqCsoKT$1~m1Z}-_>!9y7epA4#@g%*2Ax|q4x`-G3No~UFUVS0Qv9H z>FOBK(cC-^I+~k?Jn92Ea|ns(YLI9yp8*}saiSx7gRT>0(v{kwSaS-@x1(%4L`TmS zB!iA&zH#BCg#M6Ci1rbrQ9Ar&gN!*kxqvguJ>%%;rybd#GgDyGACgB8U1%}nQ4GwP zF?O~{ctgL(bvjb10CWYQDoorOzzl@_hg)jY2f$kMU z2yjO61(fN0mB&(wW%$1w1`gGum5+~77%(i?E-K)Tpendw<9kG56-EV=XF(W$u ze@H-gL9au`+a+6XLo(#iFHNspLmuf%cfAZcS`%0m{eO?KhiE9hgJjTkgRZ+uTT@WY zAEWQ*08#s--)_+DszQMn^+(e4_mER{i4GIpT)j*g;fzGGjORb97`to$$PLl|4`jb^ A7XSbN literal 0 HcmV?d00001 diff --git a/binaries/mphidflash-1.9-linux-64 b/binaries/mphidflash-1.9-linux-64 new file mode 100755 index 0000000000000000000000000000000000000000..1d6226d69560ecea2ca7a9271efc405d8b191a8d GIT binary patch literal 18856 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

Lw9+Tfk#V- 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 LUJwbZrNsXq5htMd literal 0 HcmV?d00001 diff --git a/binaries/mphidflash-1.9-win-64.exe b/binaries/mphidflash-1.9-win-64.exe new file mode 100755 index 0000000000000000000000000000000000000000..54390cf8932e9d4cbadceef2a470b99ceb905b91 GIT binary patch literal 172002 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