From f7dc8dcaef7ea2c81534f6b2efbb4608da68ae18 Mon Sep 17 00:00:00 2001 From: Yuri D'Elia Date: Sat, 12 Jun 2021 13:16:12 +0200 Subject: [PATCH] Fix usage of RAMEND RAMEND is the last valid address, not one-past as I expected it to be... --- Firmware/Dcodes.cpp | 2 +- Firmware/bootapp.h | 2 +- Firmware/xflash_dump.cpp | 4 ++-- 3 files changed, 4 insertions(+), 4 deletions(-) diff --git a/Firmware/Dcodes.cpp b/Firmware/Dcodes.cpp index 9451308ee..1fbca4c60 100644 --- a/Firmware/Dcodes.cpp +++ b/Firmware/Dcodes.cpp @@ -278,7 +278,7 @@ void dcode_1() */ void dcode_2() { - dcode_core(RAMSTART, RAMEND, dcode_mem_t::sram, 2, _N("SRAM")); + dcode_core(RAMSTART, RAMEND+1, dcode_mem_t::sram, 2, _N("SRAM")); } #endif diff --git a/Firmware/bootapp.h b/Firmware/bootapp.h index 44e1d16d2..9a77c5abd 100644 --- a/Firmware/bootapp.h +++ b/Firmware/bootapp.h @@ -7,7 +7,7 @@ #include -#define RAMSIZE (RAMEND-RAMSTART) +#define RAMSIZE (RAMEND+1-RAMSTART) #define boot_src_addr (*((uint32_t*)(RAMSIZE - 16))) #define boot_dst_addr (*((uint32_t*)(RAMSIZE - 12))) #define boot_copy_size (*((uint16_t*)(RAMSIZE - 8))) diff --git a/Firmware/xflash_dump.cpp b/Firmware/xflash_dump.cpp index 3f2938904..8b4ab9955 100644 --- a/Firmware/xflash_dump.cpp +++ b/Firmware/xflash_dump.cpp @@ -63,7 +63,7 @@ static void xfdump_dump_core(dump_header_t& hdr, uint32_t addr, uint8_t* buf, ui xflash_wait_busy(); // write data - static_assert(sizeof(dump_t::data) <= RAMEND, "dump area size insufficient"); + static_assert(sizeof(dump_t::data) <= RAMEND+1, "dump area size insufficient"); xflash_multipage_program(addr, buf, cnt); } @@ -96,7 +96,7 @@ void xfdump_full_dump_and_reset(dump_crash_reason reason) wdt_enable(WDTO_500MS); // write all addressable ranges (this will trash bidirectional registers) - xfdump_dump_core(buf, DUMP_OFFSET + offsetof(dump_t, data), 0, RAMEND); + xfdump_dump_core(buf, DUMP_OFFSET + offsetof(dump_t, data), 0, RAMEND+1); // force a reset even sooner softReset();