summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorDanny Nguyen <danny@keeb.io>2019-03-20 22:45:45 +0100
committerskullydazed <skullydazed@users.noreply.github.com>2019-04-19 23:44:16 +0200
commit746058306b6c3b037fc560a13bb78d088c734401 (patch)
tree8b5295ba80eb632f84e709355d4d3fea86466f29
parent50fce7f255fa39c90239c6406f9c6b3ca2050114 (diff)
downloadqmk_firmware-746058306b6c3b037fc560a13bb78d088c734401.tar.gz
qmk_firmware-746058306b6c3b037fc560a13bb78d088c734401.tar.xz
Make sure NOBITS is set on reset_key
Patch from https://github.com/qmk/qmk_firmware/issues/3657#issuecomment-415147411 Long story short, in avr-gcc pre-8.2, reset_key was assigned to a memory area that was in a normal range, but when 8.2 came out, that memory got moved to an out of range area, causing errors like 0x800293 out of range. Apparently, this was fixed up in avr-gcc, but we haven't seen a release with the fix yet (we expected it in 8.3, but that didn't happen for some reason). What this commit does is move the reset_key back to the original memory location it was in before.
-rw-r--r--tmk_core/common/avr/bootloader.c2
1 files changed, 1 insertions, 1 deletions
diff --git a/tmk_core/common/avr/bootloader.c b/tmk_core/common/avr/bootloader.c
index c4b913280..3cdcd2e42 100644
--- a/tmk_core/common/avr/bootloader.c
+++ b/tmk_core/common/avr/bootloader.c
@@ -70,7 +70,7 @@
* http://www.fourwalledcubicle.com/files/LUFA/Doc/120730/html/_page__software_bootloader_start.html
*/
#define BOOTLOADER_RESET_KEY 0xB007B007
-uint32_t reset_key __attribute__ ((section (".noinit")));
+uint32_t reset_key __attribute__ ((section (".noinit,\"aw\",@nobits;")));
/** \brief initialize MCU status by watchdog reset
*