From 715249e2d4e0d9e99bda9f653e58c9d9d8ceaa39 Mon Sep 17 00:00:00 2001 From: Joerg Wunsch Date: Tue, 3 Sep 2013 21:43:24 +0000 Subject: [PATCH] Submitted by Brane Zdralo: patch #7769: Write flash fails for AVR910 programmers * avr910.c (avr910_paged_write): Fix flash addresses in 'A' command. git-svn-id: svn://svn.savannah.nongnu.org/avrdude/trunk/avrdude@1206 81a1dc3b-b13d-400b-aceb-764788c761c2 --- ChangeLog | 7 +++++++ NEWS | 1 + avr910.c | 10 ++++++++-- 3 files changed, 16 insertions(+), 2 deletions(-) diff --git a/ChangeLog b/ChangeLog index e6ad1c8a..1ed4f087 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,10 @@ +2013-09-03 Joerg Wunsch + + Submitted by Brane Ždralo: + patch #7769: Write flash fails for AVR910 programmers + * avr910.c (avr910_paged_write): Fix flash addresses in + 'A' command. + 2013-09-03 Joerg Wunsch Submitted by Fred (magister): diff --git a/NEWS b/NEWS index c1f22ffc..17173906 100644 --- a/NEWS +++ b/NEWS @@ -90,6 +90,7 @@ Current: - bug #38580 Current svn head, xmega and fuses, all fuses tied to fuse0 - bug #39691 Buffer overrun when reading EEPROM byte with JTAGICE3 - bug #38951: AVR109 use byte offset instead of word offset + - patch #7769: Write flash fails for AVR910 programmers * Keep track of input file contents diff --git a/avr910.c b/avr910.c index 6db353b6..d6b3c4d6 100644 --- a/avr910.c +++ b/avr910.c @@ -612,13 +612,19 @@ static int avr910_paged_write(PROGRAMMER * pgm, AVRPART * p, AVRMEM * m, unsigned int max_addr = addr + n_bytes; char *cmd; unsigned int blocksize = PDATA(pgm)->buffersize; + int wr_size; if (strcmp(m->desc, "flash") && strcmp(m->desc, "eeprom")) return -2; - if (m->desc[0] == 'e') + if (m->desc[0] == 'e') { blocksize = 1; /* Write to eeprom single bytes only */ - avr910_set_addr(pgm, addr); + wr_size = 1; + } else { + wr_size = 2; + } + + avr910_set_addr(pgm, addr / wr_size); cmd = malloc(4 + blocksize); if (!cmd) return -1;