From 5fd68266f5d90b2c7045f44f678d71b782907752 Mon Sep 17 00:00:00 2001 From: skullydazed Date: Fri, 29 Sep 2017 16:17:30 -0700 Subject: Clueboard 60% support (#1746) * initial clueboard_60 support * LED lighting support * fix the clueboard->clueboard_66 rename * Add layout support to clueboard_60 * Fix the 60_iso layout so it's actually iso * add a default keymap for AEK layout * fix clueboard_17 * Fixup the ISO layouts * Fix the `wait_ms()/wait_us()` definitions for chibios * Fix up the wait_ms/wait_us hack. Reduce stack size. * Add a missing #include "wait.h" * commit files that should have already been comitted --- tmk_core/common/chibios/bootloader.c | 18 ++++++++++++++++-- tmk_core/common/chibios/suspend.c | 5 +++-- 2 files changed, 19 insertions(+), 4 deletions(-) (limited to 'tmk_core/common/chibios') diff --git a/tmk_core/common/chibios/bootloader.c b/tmk_core/common/chibios/bootloader.c index 8a533ab6f..fc17fca1b 100644 --- a/tmk_core/common/chibios/bootloader.c +++ b/tmk_core/common/chibios/bootloader.c @@ -16,6 +16,19 @@ void bootloader_jump(void) { NVIC_SystemReset(); } +#elif defined(STM32F3XX) +/* This code should be checked whether it runs correctly on platforms. + * It was added for clueboard60 BUT HAS NOT BEEN TESTED. + * FIXME - Test this + */ +#define SYMVAL(sym) (uint32_t)(((uint8_t *)&(sym)) - ((uint8_t *)0)) +extern uint32_t __ram0_end__; + +void bootloader_jump(void) { + *((unsigned long *)(SYMVAL(__ram0_end__) - 4)) = 0xDEADBEEF; // set magic flag => reset handler will jump into boot loader + NVIC_SystemReset(); +} + #else /* defined(STM32F0XX) */ #error Check that the bootloader code works on your platform and add it to bootloader.c! #endif /* defined(STM32F0XX) */ @@ -35,8 +48,9 @@ void bootloader_jump(void) { #else /* defined(KIIBOHD_BOOTLOADER) */ /* Default for Kinetis - expecting an ARM Teensy */ +#include "wait.h" void bootloader_jump(void) { - chThdSleepMilliseconds(100); + wait_ms(100); __BKPT(0); } #endif /* defined(KIIBOHD_BOOTLOADER) */ @@ -44,4 +58,4 @@ void bootloader_jump(void) { #else /* neither STM32 nor KINETIS */ __attribute__((weak)) void bootloader_jump(void) {} -#endif \ No newline at end of file +#endif diff --git a/tmk_core/common/chibios/suspend.c b/tmk_core/common/chibios/suspend.c index 6ca16034f..7c3c75387 100644 --- a/tmk_core/common/chibios/suspend.c +++ b/tmk_core/common/chibios/suspend.c @@ -10,10 +10,11 @@ #include "host.h" #include "backlight.h" #include "suspend.h" +#include "wait.h" void suspend_idle(uint8_t time) { // TODO: this is not used anywhere - what units is 'time' in? - chThdSleepMilliseconds(time); + wait_ms(time); } void suspend_power_down(void) { @@ -24,7 +25,7 @@ void suspend_power_down(void) { // on AVR, this enables the watchdog for 15ms (max), and goes to // SLEEP_MODE_PWR_DOWN - chThdSleepMilliseconds(17); + wait_ms(17); } __attribute__ ((weak)) void matrix_power_up(void) {} -- cgit v1.2.3