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
This commit is contained in:
parent
b736f25e85
commit
5fd68266f5
114 changed files with 4005 additions and 103 deletions
|
@ -143,7 +143,7 @@ MCUFLAGS = -mcpu=$(MCU)
|
|||
|
||||
DEBUG = gdb
|
||||
|
||||
DFU_ARGS =
|
||||
DFU_ARGS ?=
|
||||
ifneq ("$(SERIAL)","")
|
||||
DFU_ARGS += -S $(SERIAL)
|
||||
endif
|
||||
|
@ -157,4 +157,4 @@ dfu-util: $(BUILD_DIR)/$(TARGET).bin sizeafter
|
|||
$(DFU_UTIL) $(DFU_ARGS) -D $(BUILD_DIR)/$(TARGET).bin
|
||||
|
||||
bin: $(BUILD_DIR)/$(TARGET).bin sizeafter
|
||||
$(COPY) $(BUILD_DIR)/$(TARGET).bin $(TARGET).bin;
|
||||
$(COPY) $(BUILD_DIR)/$(TARGET).bin $(TARGET).bin;
|
||||
|
|
|
@ -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
|
||||
#endif
|
||||
|
|
|
@ -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) {}
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -42,7 +42,7 @@
|
|||
#include "visualizer/visualizer.h"
|
||||
#endif
|
||||
#include "suspend.h"
|
||||
|
||||
#include "wait.h"
|
||||
|
||||
/* -------------------------
|
||||
* TMK host driver defs
|
||||
|
@ -70,19 +70,19 @@ host_driver_t chibios_driver = {
|
|||
* Amber LED blinker thread, times are in milliseconds.
|
||||
*/
|
||||
/* set this variable to non-zero anywhere to blink once */
|
||||
// uint8_t blinkLed = 0;
|
||||
// static THD_WORKING_AREA(waBlinkerThread, 128);
|
||||
// static THD_FUNCTION(blinkerThread, arg) {
|
||||
// static THD_WORKING_AREA(waThread1, 128);
|
||||
// static THD_FUNCTION(Thread1, arg) {
|
||||
|
||||
// (void)arg;
|
||||
// chRegSetThreadName("blinkOrange");
|
||||
// while(true) {
|
||||
// if(blinkLed) {
|
||||
// blinkLed = 0;
|
||||
// palSetPad(TEENSY_PIN13_IOPORT, TEENSY_PIN13);
|
||||
// chThdSleepMilliseconds(100);
|
||||
// palClearPad(TEENSY_PIN13_IOPORT, TEENSY_PIN13);
|
||||
// }
|
||||
// chThdSleepMilliseconds(100);
|
||||
// chRegSetThreadName("blinker");
|
||||
// while (true) {
|
||||
// systime_t time;
|
||||
|
||||
// time = USB_DRIVER.state == USB_ACTIVE ? 250 : 500;
|
||||
// palClearLine(LINE_CAPS_LOCK);
|
||||
// chSysPolledDelayX(MS2RTC(STM32_HCLK, time));
|
||||
// palSetLine(LINE_CAPS_LOCK);
|
||||
// chSysPolledDelayX(MS2RTC(STM32_HCLK, time));
|
||||
// }
|
||||
// }
|
||||
|
||||
|
@ -96,7 +96,7 @@ int main(void) {
|
|||
chSysInit();
|
||||
|
||||
// TESTING
|
||||
// chThdCreateStatic(waBlinkerThread, sizeof(waBlinkerThread), NORMALPRIO, blinkerThread, NULL);
|
||||
// chThdCreateStatic(waThread1, sizeof(waThread1), NORMALPRIO, Thread1, NULL);
|
||||
|
||||
/* Init USB */
|
||||
init_usb_driver(&USB_DRIVER);
|
||||
|
@ -128,7 +128,7 @@ int main(void) {
|
|||
}
|
||||
serial_link_update();
|
||||
#endif
|
||||
chThdSleepMilliseconds(50);
|
||||
wait_ms(50);
|
||||
}
|
||||
|
||||
/* Do need to wait here!
|
||||
|
@ -136,7 +136,7 @@ int main(void) {
|
|||
* before the USB is completely ready, which sometimes causes
|
||||
* HardFaults.
|
||||
*/
|
||||
chThdSleepMilliseconds(50);
|
||||
wait_ms(50);
|
||||
|
||||
print("USB configured.\n");
|
||||
|
||||
|
|
|
@ -27,6 +27,7 @@
|
|||
#include "sleep_led.h"
|
||||
#include "led.h"
|
||||
#endif
|
||||
#include "wait.h"
|
||||
|
||||
#ifdef NKRO_ENABLE
|
||||
#include "keycode_config.h"
|
||||
|
@ -39,6 +40,14 @@
|
|||
* ---------------------------------------------------------
|
||||
*/
|
||||
|
||||
#ifndef usb_lld_connect_bus
|
||||
#define usb_lld_connect_bus(usbp)
|
||||
#endif
|
||||
|
||||
#ifndef usb_lld_disconnect_bus
|
||||
#define usb_lld_disconnect_bus(usbp)
|
||||
#endif
|
||||
|
||||
uint8_t keyboard_idle __attribute__((aligned(2))) = 0;
|
||||
uint8_t keyboard_protocol __attribute__((aligned(2))) = 1;
|
||||
uint16_t keyboard_led_stats __attribute__((aligned(2))) = 0;
|
||||
|
@ -1017,7 +1026,7 @@ void init_usb_driver(USBDriver *usbp) {
|
|||
* after a reset.
|
||||
*/
|
||||
usbDisconnectBus(usbp);
|
||||
chThdSleepMilliseconds(1500);
|
||||
wait_ms(1500);
|
||||
usbStart(usbp, &usbcfg);
|
||||
usbConnectBus(usbp);
|
||||
|
||||
|
@ -1037,16 +1046,16 @@ void send_remote_wakeup(USBDriver *usbp) {
|
|||
#if defined(K20x) || defined(KL2x)
|
||||
#if KINETIS_USB_USE_USB0
|
||||
USB0->CTL |= USBx_CTL_RESUME;
|
||||
chThdSleepMilliseconds(15);
|
||||
wait_ms(15);
|
||||
USB0->CTL &= ~USBx_CTL_RESUME;
|
||||
#endif /* KINETIS_USB_USE_USB0 */
|
||||
#elif defined(STM32F0XX) || defined(STM32F1XX) /* K20x || KL2x */
|
||||
#elif defined(STM32F0XX) || defined(STM32F1XX) || defined(STM32F3XX) /* End K20x || KL2x */
|
||||
STM32_USB->CNTR |= CNTR_RESUME;
|
||||
chThdSleepMilliseconds(15);
|
||||
wait_ms(15);
|
||||
STM32_USB->CNTR &= ~CNTR_RESUME;
|
||||
#else /* STM32F0XX || STM32F1XX */
|
||||
#else /* End STM32F0XX || STM32F1XX || STM32F3XX */
|
||||
#warning Sending remote wakeup packet not implemented for your platform.
|
||||
#endif /* K20x || KL2x */
|
||||
#endif
|
||||
}
|
||||
|
||||
/* ---------------------------------------------------------
|
||||
|
|
|
@ -385,4 +385,4 @@ $(eval $(foreach OUTPUT,$(OUTPUTS),$(shell mkdir -p $(OUTPUT) 2>/dev/null)))
|
|||
.PHONY : all finish sizebefore sizeafter qmkversion \
|
||||
gccversion build elf hex eep lss sym coff extcoff \
|
||||
clean clean_list debug gdb-config show_path \
|
||||
program teensy dfu flip dfu-ee flip-ee dfu-start
|
||||
program teensy dfu flip dfu-ee flip-ee dfu-start
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue