From e81c70149ecf73256f8bb7d77cefc07f2b91d2be Mon Sep 17 00:00:00 2001 From: tmk Date: Tue, 17 Jun 2014 22:41:14 +0900 Subject: Fix common files for mbed --- keyboard/mbed_onekey/Makefile | 8 +++ keyboard/mbed_onekey/common.mk | 70 ++++++++++++++++++++-- keyboard/mbed_onekey/config.h | 7 +++ keyboard/mbed_onekey/gcc.mk | 3 +- keyboard/mbed_onekey/main.cpp | 109 ++++++++++++++--------------------- keyboard/mbed_onekey/mbed_driver.cpp | 41 +++++++++++++ keyboard/mbed_onekey/mbed_driver.h | 3 + 7 files changed, 168 insertions(+), 73 deletions(-) create mode 100644 keyboard/mbed_onekey/config.h create mode 100644 keyboard/mbed_onekey/mbed_driver.cpp create mode 100644 keyboard/mbed_onekey/mbed_driver.h (limited to 'keyboard') diff --git a/keyboard/mbed_onekey/Makefile b/keyboard/mbed_onekey/Makefile index 1bc91bc7e..e686f424e 100644 --- a/keyboard/mbed_onekey/Makefile +++ b/keyboard/mbed_onekey/Makefile @@ -18,6 +18,8 @@ OBJECTS = \ $(OBJDIR)/./mbed_driver.o \ $(OBJDIR)/./main.o +CONFIG_H = config.h + SYS_OBJECTS = INCLUDE_PATHS = -I. @@ -25,6 +27,12 @@ INCLUDE_PATHS = -I. LIBRARY_PATHS = LIBRARIES = +# Build Options +# Comment out to disable +#BOOTMAGIC_ENABLE = yes +MOUSEKEY_ENABLE = yes + + include mbed.mk include common.mk include gcc.mk diff --git a/keyboard/mbed_onekey/common.mk b/keyboard/mbed_onekey/common.mk index 6eb7f7699..1bd7d6edb 100644 --- a/keyboard/mbed_onekey/common.mk +++ b/keyboard/mbed_onekey/common.mk @@ -1,21 +1,79 @@ COMMON_DIR = common OBJECTS += \ - $(OBJDIR)/$(COMMON_DIR)/mbed/timer.o \ - $(OBJDIR)/$(COMMON_DIR)/mbed/xprintf.o \ $(OBJDIR)/$(COMMON_DIR)/action.o \ $(OBJDIR)/$(COMMON_DIR)/action_tapping.o \ $(OBJDIR)/$(COMMON_DIR)/action_macro.o \ $(OBJDIR)/$(COMMON_DIR)/action_layer.o \ $(OBJDIR)/$(COMMON_DIR)/action_util.o \ $(OBJDIR)/$(COMMON_DIR)/host.o \ + $(OBJDIR)/$(COMMON_DIR)/keymap.o \ + $(OBJDIR)/$(COMMON_DIR)/keyboard.o \ + $(OBJDIR)/$(COMMON_DIR)/util.o \ + $(OBJDIR)/$(COMMON_DIR)/mbed/suspend.o \ + $(OBJDIR)/$(COMMON_DIR)/mbed/timer.o \ + $(OBJDIR)/$(COMMON_DIR)/mbed/xprintf.o \ + $(OBJDIR)/$(COMMON_DIR)/mbed/bootloader.o \ INCLUDE_PATHS += \ -I$(TMK_DIR)/$(COMMON_DIR) +CC_FLAGS += -include $(CONFIG_H) + + + +# Option modules +ifdef BOOTMAGIC_ENABLE + $(error Not Supported) + OBJECTS += $(OBJDIR)/$(COMMON_DIR)/bootmagic.o + OBJECTS += $(OBJDIR)/$(COMMON_DIR)/mbed/eeprom.o + OPT_DEFS += -DBOOTMAGIC_ENABLE +endif + +ifdef MOUSEKEY_ENABLE + OBJECTS += $(OBJDIR)/$(COMMON_DIR)/mousekey.o + OPT_DEFS += -DMOUSEKEY_ENABLE + OPT_DEFS += -DMOUSE_ENABLE +endif + +ifdef EXTRAKEY_ENABLE + $(error Not Supported) + OPT_DEFS += -DEXTRAKEY_ENABLE +endif + +ifdef CONSOLE_ENABLE + $(error Not Supported) + OPT_DEFS += -DCONSOLE_ENABLE +else + OPT_DEFS += -DNO_PRINT + OPT_DEFS += -DNO_DEBUG +endif + +ifdef COMMAND_ENABLE + $(error Not Supported) + SRC += $(COMMON_DIR)/command.c + OPT_DEFS += -DCOMMAND_ENABLE +endif + +ifdef NKRO_ENABLE + $(error Not Supported) + OPT_DEFS += -DNKRO_ENABLE +endif +ifdef SLEEP_LED_ENABLE + $(error Not Supported) + SRC += $(COMMON_DIR)/sleep_led.c + OPT_DEFS += -DSLEEP_LED_ENABLE + OPT_DEFS += -DNO_SUSPEND_POWER_DOWN +endif +ifdef BACKLIGHT_ENABLE + $(error Not Supported) + SRC += $(COMMON_DIR)/backlight.c + OPT_DEFS += -DBACKLIGHT_ENABLE +endif -# $(OBJDIR)/$(COMMON_DIR)/keyboard.o \ -# $(OBJDIR)/$(COMMON_DIR)/keymap.o \ -# $(OBJDIR)/$(COMMON_DIR)/bootloader.o \ -# $(OBJDIR)/$(COMMON_DIR)/suspend.o \ +ifdef KEYMAP_SECTION_ENABLE + $(error Not Supported) + OPT_DEFS += -DKEYMAP_SECTION_ENABLE + EXTRALDFLAGS = -Wl,-L$(TOP_DIR),-Tldscript_keymap_avr5.x +endif diff --git a/keyboard/mbed_onekey/config.h b/keyboard/mbed_onekey/config.h new file mode 100644 index 000000000..a3aadd038 --- /dev/null +++ b/keyboard/mbed_onekey/config.h @@ -0,0 +1,7 @@ +#ifndef CONFIG_H +#define CONFIG_H + +#define MATRIX_ROWS 1 +#define MATRIX_COLS 1 + +#endif diff --git a/keyboard/mbed_onekey/gcc.mk b/keyboard/mbed_onekey/gcc.mk index e31527bbc..0fc41fe27 100644 --- a/keyboard/mbed_onekey/gcc.mk +++ b/keyboard/mbed_onekey/gcc.mk @@ -10,7 +10,8 @@ SIZE = $(GCC_BIN)arm-none-eabi-size CHKSUM = ~/Dropbox/MBED/tool/lpc-vector-checksum CPU = -mcpu=cortex-m0 -mthumb -CC_FLAGS = $(CPU) -c -g -fno-common -fmessage-length=0 -Wall -fno-exceptions -ffunction-sections -fdata-sections + +CC_FLAGS += $(CPU) -c -g -fno-common -fmessage-length=0 -Wall -fno-exceptions -ffunction-sections -fdata-sections CC_FLAGS += -MMD -MP CC_SYMBOLS = -DTARGET_LPC11U35_401 -DTARGET_M0 -DTARGET_NXP -DTARGET_LPC11UXX -DTOOLCHAIN_GCC_ARM -DTOOLCHAIN_GCC -D__CORTEX_M0 -DARM_MATH_CM0 -DMBED_BUILD_TIMESTAMP=1399108688.49 -D__MBED__=1 diff --git a/keyboard/mbed_onekey/main.cpp b/keyboard/mbed_onekey/main.cpp index 1df940aa9..b2f7243c8 100644 --- a/keyboard/mbed_onekey/main.cpp +++ b/keyboard/mbed_onekey/main.cpp @@ -1,66 +1,43 @@ -#include "mbed.h" -#include "HIDKeyboard.h" -#include "debug.h" -#include "timer.h" - -/* -//#define DEBUG -#ifdef DEBUG -Serial ser(UART_TX, UART_RX); -#define dprintf(fmt, ...) ser.printf(fmt, ## __VA_ARGS__) -#else -#define dprintf(fmt, ...) -#endif -*/ - - -// button and LEDs -DigitalIn isp(P0_1); -DigitalOut led_red(P0_20); -DigitalOut led_green(P0_21); - -//USBKeyboard -HIDKeyboard keyboard; - - -int main(void) { - //isp.mode(PullUp); - //led_red = 0; - //led_green = 0; - debug_enable = true; - dprintf("HIDKeyboard:\r\n"); - - timer_init(); - xprintf("timer: %i\r\n", timer_read()); - - report_keyboard_t report = { 2, 0, 4, }; //a - report_keyboard_t report_off = { 0 }; - - bool last_isp = isp; - uint32_t last_timer; - while (1) { - //keyboard.mediaControl(KEY_VOLUME_DOWN); - //keyboard.printf("Hello World from Mbed\r\n"); - //keyboard.keyCode('s', KEY_CTRL); - //keyboard.keyCode(KEY_CAPS_LOCK); - - //led_green = !led_green; - //leds = keyboard.lockStatus(); - //ser.putc(ser.getc()); - - if (last_isp == isp) continue; - if (isp == 0) { - led_red = 0; // on - xprintf("timer: %i\r\n", timer_read32()); - xprintf("diff: %i\r\n", timer_elapsed32(last_timer)); - //keyboard.sendReport(report); - } else { - led_red = 1; // off - //keyboard.sendReport(report_off); - } - last_isp = isp; - last_timer = timer_read(); - //led_green = !led_green; - //wait(0.5); - } -} +#include "mbed.h" +#include "debug.h" +#include "timer.h" +#include "action.h" +#include "keycode.h" +#include "host.h" +#include "host_driver.h" +#include "mbed_driver.h" + + +// Button and LEDs of LPC11U35 board +DigitalIn isp(P0_1); // ISP button +DigitalOut led_red(P0_20); +DigitalOut led_green(P0_21); + + +int main(void) { + isp.mode(PullUp); + led_red = 1; + led_green = 0; + + timer_init(); + host_set_driver(&mbed_driver); + + //debug_enable = true; + xprintf("mbed_onekey ver.eee:\r\n"); + + + bool last_isp = isp; + while (1) { + //led_green = !led_green; + if (last_isp == isp) continue; + last_isp = isp; + if (last_isp == 0) { + led_red = 0; // on + dprintf("timer: %i\r\n", timer_read()); + register_code(KC_A); + } else { + led_red = 1; // off + unregister_code(KC_A); + } + } +} diff --git a/keyboard/mbed_onekey/mbed_driver.cpp b/keyboard/mbed_onekey/mbed_driver.cpp new file mode 100644 index 000000000..333f8e378 --- /dev/null +++ b/keyboard/mbed_onekey/mbed_driver.cpp @@ -0,0 +1,41 @@ +#include "HIDKeyboard.h" +#include "host.h" +#include "host_driver.h" +#include "mbed_driver.h" + +HIDKeyboard keyboard; + + +/* Host driver */ +static uint8_t keyboard_leds(void); +static void send_keyboard(report_keyboard_t *report); +static void send_mouse(report_mouse_t *report); +static void send_system(uint16_t data); +static void send_consumer(uint16_t data); + +host_driver_t mbed_driver = { + keyboard_leds, + send_keyboard, + send_mouse, + send_system, + send_consumer +}; + + +static uint8_t keyboard_leds(void) +{ + return 0; +} +static void send_keyboard(report_keyboard_t *report) +{ + keyboard.sendReport(*report); +} +static void send_mouse(report_mouse_t *report) +{ +} +static void send_system(uint16_t data) +{ +} +static void send_consumer(uint16_t data) +{ +} diff --git a/keyboard/mbed_onekey/mbed_driver.h b/keyboard/mbed_onekey/mbed_driver.h new file mode 100644 index 000000000..dd1153b43 --- /dev/null +++ b/keyboard/mbed_onekey/mbed_driver.h @@ -0,0 +1,3 @@ +#include "host_driver.h" + +extern host_driver_t mbed_driver; -- cgit v1.2.3-70-g09d2