diff --git a/ChangeLog b/ChangeLog index 9a422c73..1f993cbc 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,9 @@ +2009-11-09 David Hoerl + + * fileio.c: ihex2bin did not properly handle files > 64K bytes + * usb_libusb.c: re-enabled usb_reset for Macs (no reset causes lots of failures) + * avrdude.1: spacing issue for avr32 fixed. + 2009-11-09 Michal Ludvig * buspirate.c: Implemented reset= and speed= extended parameters. diff --git a/avrdude.1 b/avrdude.1 index f03f1c49..c3065111 100644 --- a/avrdude.1 +++ b/avrdude.1 @@ -244,7 +244,7 @@ t25 ATtiny25 t26 ATtiny26 t45 ATtiny45 t85 ATtiny85 -ucr2 AT32uca0512 +ucr2 AT32uca0512 x128a1 ATxmega128A1 x128a1d ATxmega128A1revD .TE diff --git a/fileio.c b/fileio.c index 08d3340f..421de457 100644 --- a/fileio.c +++ b/fileio.c @@ -261,7 +261,6 @@ static int ihex_readrec(struct ihexrec * ihex, char * rec) * If an error occurs, return -1. * * */ - static int ihex2b(char * infile, FILE * inf, unsigned char * outbuf, int bufsize) { @@ -279,6 +278,7 @@ static int ihex2b(char * infile, FILE * inf, baseaddr = 0; maxaddr = 0; offsetaddr = 0; + nextaddr = 0; while (fgets((char *)buffer,MAX_LINE_LEN,inf)!=NULL) { lineno++; @@ -332,7 +332,7 @@ static int ihex2b(char * infile, FILE * inf, case 4: /* extended linear address record */ baseaddr = (ihex.data[0] << 24 | ihex.data[1]) << 16; - if(offsetaddr == 0) offsetaddr = baseaddr; + if(nextaddr == 0) offsetaddr = baseaddr; // if provided before any data, then remember it break; case 5: /* start linear address record */ @@ -358,7 +358,6 @@ static int ihex2b(char * infile, FILE * inf, return maxaddr-offsetaddr; } - static int b2srec(unsigned char * inbuf, int bufsize, int recsize, int startaddr, char * outfile, FILE * outf) @@ -1155,6 +1154,7 @@ int fileio(int op, char * filename, FILEFMT format, if (format != FMT_IMM && !using_stdio) { fclose(f); } + return rc; } diff --git a/usb_libusb.c b/usb_libusb.c index a051e89c..679f2eff 100644 --- a/usb_libusb.c +++ b/usb_libusb.c @@ -239,7 +239,7 @@ static void usbdev_close(union filedescriptor *fd) (void)usb_release_interface(udev, usb_interface); -#if !( defined(__FreeBSD__) || ( defined(__APPLE__) && defined(__MACH__) ) ) +#if !( defined(__FreeBSD__) ) // || ( defined(__APPLE__) && defined(__MACH__) ) ) /* * Without this reset, the AVRISP mkII seems to stall the second * time we try to connect to it. This is not necessary on