From 74dcaa91458cbe8c6b6cbbb246d87e379f32f0e0 Mon Sep 17 00:00:00 2001 From: Dean Camera Date: Wed, 5 Dec 2018 20:17:27 +1100 Subject: PrinterBootloader: Don't store 32-bit HEX parser flash offsets on small flash devices. --- Bootloaders/Printer/BootloaderPrinter.c | 8 ++++---- Bootloaders/Printer/BootloaderPrinter.h | 7 +++++++ 2 files changed, 11 insertions(+), 4 deletions(-) diff --git a/Bootloaders/Printer/BootloaderPrinter.c b/Bootloaders/Printer/BootloaderPrinter.c index 629cc07b4..94521ef16 100644 --- a/Bootloaders/Printer/BootloaderPrinter.c +++ b/Bootloaders/Printer/BootloaderPrinter.c @@ -67,7 +67,7 @@ USB_ClassInfo_PRNT_Device_t TextOnly_Printer_Interface = /** Intel HEX parser state machine state information, to track the contents of * a HEX file streamed in as a sequence of arbitrary bytes. */ -struct +static struct { /** Current HEX parser state machine state. */ uint8_t ParserState; @@ -87,11 +87,11 @@ struct /** Checksum of the current record received so far. */ uint8_t Checksum; /** Starting address of the last addressed FLASH page. */ - uint32_t PageStartAddress; + flashaddr_t PageStartAddress; /** Current 32-bit byte extended base address in FLASH being targeted. */ - uint32_t CurrBaseAddress; + flashaddr_t CurrBaseAddress; /** Current 32-bit byte address in FLASH being targeted. */ - uint32_t CurrAddress; + flashaddr_t CurrAddress; } HEXParser; /** Indicates if there is data waiting to be written to a physical page of diff --git a/Bootloaders/Printer/BootloaderPrinter.h b/Bootloaders/Printer/BootloaderPrinter.h index 78f938c68..c927ec5ef 100644 --- a/Bootloaders/Printer/BootloaderPrinter.h +++ b/Bootloaders/Printer/BootloaderPrinter.h @@ -74,6 +74,13 @@ /** Magic bootloader key to unlock forced application start mode. */ #define MAGIC_BOOT_KEY 0xDC42 + /* Type Defines: */ + #if (FLASHEND > 0xFFFF) + typedef uint32_t flashaddr_t; + #else + typedef uint16_t flashaddr_t; + #endif + /* Enums: */ /** Intel HEX parser state machine states. */ enum HEX_Parser_States_t -- cgit v1.2.3