summaryrefslogtreecommitdiffstats
path: root/keyboard/mbed_onekey
diff options
context:
space:
mode:
Diffstat (limited to 'keyboard/mbed_onekey')
-rw-r--r--keyboard/mbed_onekey/Makefile8
-rw-r--r--keyboard/mbed_onekey/common.mk70
-rw-r--r--keyboard/mbed_onekey/config.h7
-rw-r--r--keyboard/mbed_onekey/gcc.mk3
-rw-r--r--keyboard/mbed_onekey/main.cpp109
-rw-r--r--keyboard/mbed_onekey/mbed_driver.cpp41
-rw-r--r--keyboard/mbed_onekey/mbed_driver.h3
7 files changed, 168 insertions, 73 deletions
diff --git a/keyboard/mbed_onekey/Makefile b/keyboard/mbed_onekey/Makefile
index 1bc91bc7e7..e686f424e6 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 6eb7f76995..1bd7d6edbe 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 0000000000..a3aadd0389
--- /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 e31527bbc1..0fc41fe275 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 1df940aa97..b2f7243c85 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 0000000000..333f8e3782
--- /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 0000000000..dd1153b43a
--- /dev/null
+++ b/keyboard/mbed_onekey/mbed_driver.h
@@ -0,0 +1,3 @@
+#include "host_driver.h"
+
+extern host_driver_t mbed_driver;