avrdude-dev
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[avrdude-dev] bug in usbasp.c


From: Jason Kotzin
Subject: [avrdude-dev] bug in usbasp.c
Date: Mon, 2 Jan 2012 17:38:35 -0800

I wanted to take advantage of the latest trunk and the following feature for 
usbasp: "mega-commit to bring in memory tagging".

Here is the description of that feature: 
http://svn.savannah.nongnu.org/viewvc/trunk/avrdude/usbasp.c?root=avrdude&view=log

Compiled great, and seemed like it programmed correctly, but verifying the 
memory contents at the offset yielded only 0xFF's.

After debugging the code for a while, I found the problem in usbasp.c  - 
usbasp_spi_paged_write

 672 static int usbasp_spi_paged_write(PROGRAMMER * pgm, AVRPART * p, AVRMEM * 
m,
 673                                   unsigned int page_size,
 674                                   unsigned int address, unsigned int 
n_bytes)
 675 {
 676   int n;
 677   unsigned char cmd[4];
 678   int wbytes = n_bytes;
 679   int blocksize;
 680   unsigned char *buffer = (m->buf)+address;
 681   unsigned char blockflags = USBASP_BLOCKFLAG_FIRST;


Above is the new code, line 680 used to be as follows:

680   unsigned char *buffer = m->buf;

Also attaching a patch as well. I have not gone through the other devices this 
feature was brought to, but verified the fix with usbasp.

Thanks for the awesome and amazing tool.

Sincerely,
Jason

Attachment: usbasp.patch
Description: Binary data


reply via email to

[Prev in Thread] Current Thread [Next in Thread]