From 62aa4808767f73983b905185513a582fb601051b Mon Sep 17 00:00:00 2001 From: MCUdude Date: Sat, 24 Sep 2022 20:42:42 +0200 Subject: [PATCH] Fix avr109 extended address Closes #360 #454 --- src/butterfly.c | 24 ++++++++++++++++++------ 1 file changed, 18 insertions(+), 6 deletions(-) diff --git a/src/butterfly.c b/src/butterfly.c index 2cc6cb0b..f187b299 100644 --- a/src/butterfly.c +++ b/src/butterfly.c @@ -405,14 +405,26 @@ static void butterfly_display(const PROGRAMMER *pgm, const char *p) { static void butterfly_set_addr(const PROGRAMMER *pgm, unsigned long addr) { - char cmd[3]; + if( addr < 0x10000 ) { + char cmd[3]; - cmd[0] = 'A'; - cmd[1] = (addr >> 8) & 0xff; - cmd[2] = addr & 0xff; + cmd[0] = 'A'; + cmd[1] = (addr >> 8) & 0xff; + cmd[2] = addr & 0xff; - butterfly_send(pgm, cmd, sizeof(cmd)); - butterfly_vfy_cmd_sent(pgm, "set addr"); + butterfly_send(pgm, cmd, sizeof(cmd)); + butterfly_vfy_cmd_sent(pgm, "set addr"); + } else { + char cmd[4]; + + cmd[0] = 'H'; + cmd[1] = (addr >> 16) & 0xff; + cmd[2] = (addr >> 8) & 0xff; + cmd[3] = addr & 0xff; + + butterfly_send(pgm, cmd, sizeof(cmd)); + butterfly_vfy_cmd_sent(pgm, "set extaddr"); + } }