From 55251ea6f5050559cb4570d3bc99de963ada6eb8 Mon Sep 17 00:00:00 2001 From: Marius Greuel Date: Sun, 26 Dec 2021 16:57:23 +0100 Subject: [PATCH] Fix avr_read() for page reads with page sizes that are not a multiple of the memory size --- src/avr.c | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/src/avr.c b/src/avr.c index 4091b497..dd9095e4 100644 --- a/src/avr.c +++ b/src/avr.c @@ -331,7 +331,7 @@ int avr_read(PROGRAMMER * pgm, AVRPART * p, char * memtype, /* supports "paged load" thru post-increment */ if ((p->flags & AVRPART_HAS_TPI) && mem->page_size > 1 && - pgm->cmd_tpi != NULL) { + mem->size % mem->page_size == 0 && pgm->cmd_tpi != NULL) { while (avr_tpi_poll_nvmbsy(pgm)); @@ -361,7 +361,8 @@ int avr_read(PROGRAMMER * pgm, AVRPART * p, char * memtype, return avr_mem_hiaddr(mem); } - if (pgm->paged_load != NULL && mem->page_size > 1) { + if (pgm->paged_load != NULL && mem->page_size > 1 && + mem->size % mem->page_size == 0) { /* * the programmer supports a paged mode read */