[Top][All Lists]
[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
usbasp.patch
Description: Binary data
- [avrdude-dev] bug in usbasp.c,
Jason Kotzin <=