diff options
| author | skullydazed <skullydazed@users.noreply.github.com> | 2017-09-29 16:17:30 -0700 | 
|---|---|---|
| committer | GitHub <noreply@github.com> | 2017-09-29 16:17:30 -0700 | 
| commit | 5fd68266f5d90b2c7045f44f678d71b782907752 (patch) | |
| tree | 443e70a3f0dcebadd39a0c96857130546cc690a7 /tmk_core/common | |
| parent | b736f25e85171fceb06f01cf45a45f84dd0a4911 (diff) | |
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
Diffstat (limited to 'tmk_core/common')
| -rw-r--r-- | tmk_core/common/chibios/bootloader.c | 18 | ||||
| -rw-r--r-- | tmk_core/common/chibios/suspend.c | 5 | ||||
| -rw-r--r-- | tmk_core/common/wait.h | 11 | 
3 files changed, 27 insertions, 7 deletions
| diff --git a/tmk_core/common/chibios/bootloader.c b/tmk_core/common/chibios/bootloader.c index 8a533ab6f6..fc17fca1b6 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 6ca16034f3..7c3c75387d 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) {} diff --git a/tmk_core/common/wait.h b/tmk_core/common/wait.h index bdcb3f2a41..553f5243f1 100644 --- a/tmk_core/common/wait.h +++ b/tmk_core/common/wait.h @@ -11,10 +11,15 @@ extern "C" {  #   include <util/delay.h>  #   define wait_ms(ms)  _delay_ms(ms)  #   define wait_us(us)  _delay_us(us) -#elif defined(PROTOCOL_CHIBIOS) +#elif defined PROTOCOL_CHIBIOS  #   include "ch.h" -#   define wait_ms(ms) chThdSleepMilliseconds(ms) -#   define wait_us(us) chThdSleepMicroseconds(us) +#   if defined(STM32F3xx_MCUCONF) +#       define wait_ms(ms) chSysPolledDelayX(MS2RTC(STM32_HCLK, (ms))) +#       define wait_us(us) chSysPolledDelayX(US2RTC(STM32_HCLK, (us))) +#   else +#       define wait_ms(ms) chThdSleepMilliseconds(ms) +#       define wait_us(us) chThdSleepMicroseconds(us) +#   endif  #elif defined(__arm__)  #   include "wait_api.h"  #else  // Unit tests | 
