From 9de992ba0be93a7fcc539ad0418c8ebfd3cd6281 Mon Sep 17 00:00:00 2001 From: Jun Wako Date: Wed, 10 Dec 2014 14:35:46 +0900 Subject: Change USB PID --- converter/usb_usb/Makefile | 2 +- converter/usb_usb/README | 15 ++++++++++++--- converter/usb_usb/config.h | 2 +- 3 files changed, 14 insertions(+), 5 deletions(-) diff --git a/converter/usb_usb/Makefile b/converter/usb_usb/Makefile index 13f77ca9b7..4f983e7f68 100644 --- a/converter/usb_usb/Makefile +++ b/converter/usb_usb/Makefile @@ -120,7 +120,7 @@ VPATH += $(TOP_DIR) # program Leonardo -PROGRAM_CMD = avrdude -p$(MCU) -cavr109 -P$(DEV) -b57600 -Uflash:w:$(TARGET).hex +PROGRAM_CMD = avrdude -p$(MCU) -cavr109 -b57600 -Uflash:w:$(TARGET).hex -P$(DEV) diff --git a/converter/usb_usb/README b/converter/usb_usb/README index a489371107..985458ed01 100644 --- a/converter/usb_usb/README +++ b/converter/usb_usb/README @@ -19,13 +19,22 @@ Build firmware $ cd converter/usb_usb $ make -You will get usb_usb.hex if you are lucky. -Program your Leonardo with avrdude(or easy-going Arduino IDE): +Program converter. Push reset button on Leonardo before run this command. Serial port name(COM17) depends your system. On Linux I got /dev/ttyACM0. + + $ DEV=COM17 make program + or + $ avrdude -patmega32u4 -cavr109 -b57600 -Uflash:w:usb_usb.hex -PCOM17 - $ avrdude -patmega32u4 -cavr109 -PCOM17 -b57600 -Uflash:w:usb_usb.hex Limitation ---------- Only supports 'HID Boot protocol'. Not support keyboard LED yet. + + +Resource +-------- +http://deskthority.net/workshop-f7/is-remapping-a-usb-keyboard-using-teensy-possible-t2841.html +https://github.com/felis/USB_Host_Shield_2.0 +https://github.com/arduino/Arduino/hardware/arduino/{cores,variants} diff --git a/converter/usb_usb/config.h b/converter/usb_usb/config.h index d614973f7e..bdc02868c8 100644 --- a/converter/usb_usb/config.h +++ b/converter/usb_usb/config.h @@ -20,7 +20,7 @@ along with this program. If not, see . #define VENDOR_ID 0xFEED -#define PRODUCT_ID 0xCAFE +#define PRODUCT_ID 0x005B #define DEVICE_VER 0x0814 #define MANUFACTURER t.m.k. #define PRODUCT USB to USB keyboard converter -- cgit v1.2.3 From 0a9d9b8f9c6579a47fbb35973c747e13fb93e4b8 Mon Sep 17 00:00:00 2001 From: Jun Wako Date: Wed, 10 Dec 2014 15:10:25 +0900 Subject: Fix print init; print_set_sendchar in main --- converter/usb_usb/main.cpp | 2 ++ 1 file changed, 2 insertions(+) diff --git a/converter/usb_usb/main.cpp b/converter/usb_usb/main.cpp index 20b7af66a2..4e655632e3 100644 --- a/converter/usb_usb/main.cpp +++ b/converter/usb_usb/main.cpp @@ -13,6 +13,7 @@ #include "lufa.h" #include "timer.h" +#include "sendchar.h" #include "debug.h" #include "keyboard.h" @@ -39,6 +40,7 @@ static void LUFA_setup(void) // for Console_Task USB_Device_EnableSOFEvents(); + print_set_sendchar(sendchar); } static void HID_setup() -- cgit v1.2.3 From 4b69ed2280743b8e992232e6c59b46ae23906fb9 Mon Sep 17 00:00:00 2001 From: Jun Wako Date: Wed, 10 Dec 2014 15:20:32 +0900 Subject: Remove submodule USB_Host_Shield_2.0 --- .gitmodules | 3 --- protocol/usb_hid/USB_Host_Shield_2.0 | 1 - 2 files changed, 4 deletions(-) delete mode 160000 protocol/usb_hid/USB_Host_Shield_2.0 diff --git a/.gitmodules b/.gitmodules index 17a20decb7..eef19ae080 100644 --- a/.gitmodules +++ b/.gitmodules @@ -1,6 +1,3 @@ -[submodule "protocol/usb_hid/USB_Host_Shield_2.0"] - path = protocol/usb_hid/USB_Host_Shield_2.0 - url = git@github.com:tmk/USB_Host_Shield_2.0.git [submodule "protocol/lufa/LUFA-git"] path = protocol/lufa/LUFA-git url = https://github.com/abcminiuser/lufa.git diff --git a/protocol/usb_hid/USB_Host_Shield_2.0 b/protocol/usb_hid/USB_Host_Shield_2.0 deleted file mode 160000 index 8bb790f83a..0000000000 --- a/protocol/usb_hid/USB_Host_Shield_2.0 +++ /dev/null @@ -1 +0,0 @@ -Subproject commit 8bb790f83af298b5f3e5516259c9d8ec27efe522 -- cgit v1.2.3 From 0a181c7eb58b79405ee91e7fca9f827678424872 Mon Sep 17 00:00:00 2001 From: Jun Wako Date: Wed, 10 Dec 2014 15:54:24 +0900 Subject: Add submodule legitimate USB_Host_Shield_2.0 --- .gitmodules | 3 +++ protocol/usb_hid/USB_Host_Shield_2.0 | 1 + 2 files changed, 4 insertions(+) create mode 160000 protocol/usb_hid/USB_Host_Shield_2.0 diff --git a/.gitmodules b/.gitmodules index eef19ae080..e21f449613 100644 --- a/.gitmodules +++ b/.gitmodules @@ -1,3 +1,6 @@ [submodule "protocol/lufa/LUFA-git"] path = protocol/lufa/LUFA-git url = https://github.com/abcminiuser/lufa.git +[submodule "protocol/usb_hid/USB_Host_Shield_2.0"] + path = protocol/usb_hid/USB_Host_Shield_2.0 + url = https://github.com/felis/USB_Host_Shield_2.0.git diff --git a/protocol/usb_hid/USB_Host_Shield_2.0 b/protocol/usb_hid/USB_Host_Shield_2.0 new file mode 160000 index 0000000000..2b4a56de3d --- /dev/null +++ b/protocol/usb_hid/USB_Host_Shield_2.0 @@ -0,0 +1 @@ +Subproject commit 2b4a56de3d090686f62d25ea34042759dc4352d6 -- cgit v1.2.3 From c9674d388d3b018cb1dfc0a34868642be53e913c Mon Sep 17 00:00:00 2001 From: Jun Wako Date: Wed, 10 Dec 2014 23:52:38 +0900 Subject: Add USB Hub support --- converter/usb_usb/main.cpp | 10 ++++++++++ protocol/usb_hid.mk | 1 + 2 files changed, 11 insertions(+) diff --git a/converter/usb_usb/main.cpp b/converter/usb_usb/main.cpp index 4e655632e3..0b536b05aa 100644 --- a/converter/usb_usb/main.cpp +++ b/converter/usb_usb/main.cpp @@ -8,6 +8,7 @@ #include "hid.h" #include "hidboot.h" #include "parser.h" +#include "usbhub.h" // LUFA #include "lufa.h" @@ -23,6 +24,15 @@ static USB usb_host; static HIDBoot kbd(&usb_host); static KBDReportParser kbd_parser; +static USBHub hub1(&usb_host); // one hub is enough for HHKB pro2 +/* may be needed for other device with more hub +static USBHub hub2(&usb_host); +static USBHub hub3(&usb_host); +static USBHub hub4(&usb_host); +static USBHub hub5(&usb_host); +static USBHub hub6(&usb_host); +static USBHub hub7(&usb_host); +*/ static void LUFA_setup(void) { diff --git a/protocol/usb_hid.mk b/protocol/usb_hid.mk index 6914dce809..8fda76c2e5 100644 --- a/protocol/usb_hid.mk +++ b/protocol/usb_hid.mk @@ -8,6 +8,7 @@ USB_HOST_SHIELD_DIR = $(USB_HID_DIR)/USB_Host_Shield_2.0 USB_HOST_SHIELD_SRC = \ $(USB_HOST_SHIELD_DIR)/Usb.cpp \ $(USB_HOST_SHIELD_DIR)/hid.cpp \ + $(USB_HOST_SHIELD_DIR)/usbhub.cpp \ $(USB_HOST_SHIELD_DIR)/parsetools.cpp \ $(USB_HOST_SHIELD_DIR)/message.cpp -- cgit v1.2.3 From 27795b6b191da88fbcbeefd21dd0f9eddacedcf9 Mon Sep 17 00:00:00 2001 From: Jun Wako Date: Thu, 11 Dec 2014 00:27:37 +0900 Subject: Change debug print config --- converter/usb_usb/main.cpp | 2 ++ 1 file changed, 2 insertions(+) diff --git a/converter/usb_usb/main.cpp b/converter/usb_usb/main.cpp index 0b536b05aa..30fd3348a3 100644 --- a/converter/usb_usb/main.cpp +++ b/converter/usb_usb/main.cpp @@ -72,9 +72,11 @@ int main(void) LED_TX_ON; debug_enable = true; +/* debug_matrix = true; debug_keyboard = true; debug_mouse = true; +*/ host_set_driver(&lufa_driver); keyboard_init(); -- cgit v1.2.3 From 30864ea5e48c15796cc2e3e2ba4a9b50322d82a4 Mon Sep 17 00:00:00 2001 From: Jun Wako Date: Thu, 11 Dec 2014 00:59:08 +0900 Subject: Update README --- converter/usb_usb/README | 26 +++++++++++++++++++++++--- 1 file changed, 23 insertions(+), 3 deletions(-) diff --git a/converter/usb_usb/README b/converter/usb_usb/README index 985458ed01..69caabb278 100644 --- a/converter/usb_usb/README +++ b/converter/usb_usb/README @@ -33,8 +33,28 @@ Only supports 'HID Boot protocol'. Not support keyboard LED yet. + +Update +------ +2014/12/11 Added Hub support(confirmed with HHKB pro2) + + + Resource -------- -http://deskthority.net/workshop-f7/is-remapping-a-usb-keyboard-using-teensy-possible-t2841.html -https://github.com/felis/USB_Host_Shield_2.0 -https://github.com/arduino/Arduino/hardware/arduino/{cores,variants} +USB Host Sheild 2.0 + https://www.circuitsathome.com/products-page/arduino-shields/usb-host-shield-2-0-for-arduino + https://www.circuitsathome.com/products-page/arduino-shields/usb-host-shield-for-arduino-pro-mini +USB Host Sheild 2.0 source + https://github.com/felis/USB_Host_Shield_2.0 +Arduino USB Host Shield(with bootst converter) + http://arduino.cc/en/Main/ArduinoUSBHostShield +Arduino source + https://github.com/arduino/Arduino/hardware/arduino/{cores,variants} +Initial release of TMK USB-USB converter + https://geekhack.org/index.php?topic=33057.msg653549#msg653549 + http://deskthority.net/workshop-f7/is-remapping-a-usb-keyboard-using-teensy-possible-t2841-30.html#p74854 +Arduino-based hardware keyboard remapper - Colemak forum + http://forum.colemak.com/viewtopic.php?id=1561 +Teensy + Host Shield + http://www.pjrc.com/teensy/td_libs_USBHostShield.html -- cgit v1.2.3 From a0d6bb1818b90f341b2a5daaea3652fe19cd4184 Mon Sep 17 00:00:00 2001 From: Jun Wako Date: Thu, 11 Dec 2014 03:52:05 +0900 Subject: usb_usb: Add SpaceFn and hasu keymap --- converter/usb_usb/Makefile | 10 ++- converter/usb_usb/config.h | 2 - converter/usb_usb/keymap.c | 128 ++---------------------------- converter/usb_usb/keymap_common.c | 31 ++++++++ converter/usb_usb/keymap_common.h | 77 ++++++++++++++++++ converter/usb_usb/keymap_hasu.c | 158 +++++++++++++++++++++++++++++++++++++ converter/usb_usb/keymap_spacefn.c | 61 ++++++++++++++ 7 files changed, 342 insertions(+), 125 deletions(-) create mode 100644 converter/usb_usb/keymap_common.c create mode 100644 converter/usb_usb/keymap_common.h create mode 100644 converter/usb_usb/keymap_hasu.c create mode 100644 converter/usb_usb/keymap_spacefn.c diff --git a/converter/usb_usb/Makefile b/converter/usb_usb/Makefile index 4f983e7f68..d6867bb002 100644 --- a/converter/usb_usb/Makefile +++ b/converter/usb_usb/Makefile @@ -99,16 +99,22 @@ CONSOLE_ENABLE = yes # Console for debug # Teensy halfKay 512 # Atmel DFU loader 4096 # LUFA bootloader 4096 -#OPT_DEFS += -DBOOTLOADER_SIZE=4096 +OPT_DEFS += -DBOOTLOADER_SIZE=4096 SRC = \ - keymap.c \ + keymap_common.c \ matrix.c \ led.c \ main.cpp +ifdef KEYMAP + SRC := keymap_$(KEYMAP).c $(SRC) +else + SRC := keymap.c $(SRC) +endif + CONFIG_H = config.h diff --git a/converter/usb_usb/config.h b/converter/usb_usb/config.h index bdc02868c8..c992456763 100644 --- a/converter/usb_usb/config.h +++ b/converter/usb_usb/config.h @@ -33,8 +33,6 @@ along with this program. If not, see . #define MATRIX_ROWS 32 #define MATRIX_COLS 8 -#define USE_LEGACY_KEYMAP - /* key combination for command */ #define IS_COMMAND() (keyboard_report->mods == (MOD_BIT(KC_LSHIFT) | MOD_BIT(KC_RSHIFT))) diff --git a/converter/usb_usb/keymap.c b/converter/usb_usb/keymap.c index ff166fcf1f..c14a8aa553 100644 --- a/converter/usb_usb/keymap.c +++ b/converter/usb_usb/keymap.c @@ -15,62 +15,10 @@ You should have received a copy of the GNU General Public License along with this program. If not, see . */ -#include -#include "keycode.h" -#include "util.h" -#include "keymap.h" +#include "keymap_common.h" -#define KEYMAP( \ - K29,K3A,K3B,K3C,K3D,K3E,K3F,K40,K41,K42,K43,K44,K45, K46,K47,K48, \ - K35,K1E,K1F,K20,K21,K22,K23,K24,K25,K26,K27,K2D,K2E,K2A, K49,K4A,K4B, K53,K54,K55,K56, \ - K2B,K14,K1A,K08,K15,K17,K1C,K18,K0C,K12,K13,K2F,K30,K31, K4C,K4D,K4E, K5F,K60,K61, \ - K39,K04,K16,K07,K09,K0A,K0B,K0D,K0E,K0F,K33,K34, K28, K5C,K5D,K5E,K57, \ - KE1,K1D,K1B,K06,K19,K05,K11,K10,K36,K37,K38, KE5, K52, K59,K5A,K5B, \ - KE0,KE3,KE2, K2C, KE6,KE7,K65,KE4, K50,K51,K4F, K62, K63,K58 \ -) { \ - { KC_NO, KC_NO, KC_NO, KC_NO, KC_##K04, KC_##K05, KC_##K06, KC_##K07 }, /* 00-07 */ \ - { KC_##K08, KC_##K09, KC_##K0A, KC_##K0B, KC_##K0C, KC_##K0D, KC_##K0E, KC_##K0F }, /* 08-0F */ \ - { KC_##K10, KC_##K11, KC_##K12, KC_##K13, KC_##K14, KC_##K15, KC_##K16, KC_##K17 }, /* 10-17 */ \ - { KC_##K18, KC_##K19, KC_##K1A, KC_##K1B, KC_##K1C, KC_##K1D, KC_##K1E, KC_##K1F }, /* 18-1F */ \ - { KC_##K20, KC_##K21, KC_##K22, KC_##K23, KC_##K24, KC_##K25, KC_##K26, KC_##K27 }, /* 20-27 */ \ - { KC_##K28, KC_##K29, KC_##K2A, KC_##K2B, KC_##K2C, KC_##K2D, KC_##K2E, KC_##K2F }, /* 28-2F */ \ - { KC_##K30, KC_##K31, KC_NO, KC_##K33, KC_##K34, KC_##K35, KC_##K36, KC_##K37 }, /* 30-37 */ \ - { KC_##K38, KC_##K39, KC_##K3A, KC_##K3B, KC_##K3C, KC_##K3D, KC_##K3E, KC_##K3F }, /* 38-3F */ \ - { KC_##K40, KC_##K41, KC_##K42, KC_##K43, KC_##K44, KC_##K45, KC_##K46, KC_##K47 }, /* 40-47 */ \ - { KC_##K48, KC_##K49, KC_##K4A, KC_##K4B, KC_##K4C, KC_##K4D, KC_##K4E, KC_##K4F }, /* 48-4F */ \ - { KC_##K50, KC_##K51, KC_##K52, KC_##K53, KC_##K54, KC_##K55, KC_##K56, KC_##K57 }, /* 50-57 */ \ - { KC_##K58, KC_##K59, KC_##K5A, KC_##K5B, KC_##K5C, KC_##K5D, KC_##K5E, KC_##K5F }, /* 58-5F */ \ - { KC_##K60, KC_##K61, KC_##K62, KC_##K63, KC_NO, KC_##K65, KC_NO, KC_NO }, /* 60-67 */ \ - { KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO }, /* 68-6F */ \ - { KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO }, /* 70-77 */ \ - { KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO }, /* 78-7F */ \ - { KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO }, /* 80-87 */ \ - { KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO }, /* 88-8F */ \ - { KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO }, /* 90-97 */ \ - { KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO }, /* 98-9F */ \ - { KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO }, /* A0-A7 */ \ - { KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO }, /* A8-AF */ \ - { KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO }, /* B0-B7 */ \ - { KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO }, /* B8-BF */ \ - { KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO }, /* C0-C7 */ \ - { KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO }, /* C8-CF */ \ - { KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO }, /* D0-D7 */ \ - { KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO }, /* D8-DF */ \ - { KC_##KE0, KC_##KE1, KC_##KE2, KC_##KE3, KC_##KE4, KC_##KE5, KC_##KE6, KC_##KE7 }, /* E0-E7 */ \ - { KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO }, /* E8-EF */ \ - { KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO }, /* F0-F7 */ \ - { KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO }, /* F8-FF */ \ -} - - -// Layers to switch by holding Fn key(0-7) -static const uint8_t PROGMEM fn_layer[] = { 5, 6, 5, 0, 0, 0, 0, 0 }; - -// Codes to register by clicking Fn key(0-7) -static const uint8_t PROGMEM fn_keycode[] = { KC_SCLN, KC_SLSH, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO }; - -static const uint8_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { +const uint8_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { /* 0: default * ,---. ,---------------. ,---------------. ,---------------. ,-----------. ,-----------. * |Esc| |F1 |F2 |F3 |F4 | |F5 |F6 |F7 |F8 | |F9 |F10|F11|F12| |PrS|ScL|Pau| |Pwr|Slp|Wak| @@ -86,16 +34,14 @@ static const uint8_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { * |-----------------------------------------------------------| ,-----------. |-----------|Ent| * |Ctrl |Gui |Alt | Space |Alt |Gui |Menu|Ctrl| |Lef|Dow|Rig| | 0| .| | * `-----------------------------------------------------------' `-----------' `---------------' - * ; = Fn0(to Layer 5) - * / = Fn1(to Layer 6) */ KEYMAP( ESC, F1, F2, F3, F4, F5, F6, F7, F8, F9, F10, F11, F12, PSCR,SLCK,PAUS, ESC, 1, 2, 3, 4, 5, 6, 7, 8, 9, 0, MINS,EQL, BSPC, INS, HOME,PGUP, NLCK,PSLS,PAST,PMNS, TAB, Q, W, E, R, T, Y, U, I, O, P, LBRC,RBRC,BSLS, DEL, END, PGDN, P7, P8, P9, - FN2, A, S, D, F, G, H, J, K, L, FN0, QUOT, ENT, P4, P5, P6, PPLS, - LSFT,Z, X, C, V, B, N, M, COMM,DOT, FN1, RSFT, UP, P1, P2, P3, - LCTL,LGUI,LALT, SPC, RALT,FN2, FN2, GRV, LEFT,DOWN,RGHT, P0, PDOT,PENT + CAPS,A, S, D, F, G, H, J, K, L, SCLN,QUOT, ENT, P4, P5, P6, PPLS, + LSFT,Z, X, C, V, B, N, M, COMM,DOT, SLSH, RSFT, UP, P1, P2, P3, + LCTL,LGUI,LALT, SPC, RALT,RGUI,APP, GRV, LEFT,DOWN,RGHT, P0, PDOT,PENT ), /* 1: plain Qwerty without layer switching @@ -185,67 +131,7 @@ static const uint8_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { LSFT,Z, X, M, C, V, K, L, COMM,DOT, SLSH, RSFT, UP, P1, P2, P3, LCTL,LGUI,LALT, SPC, RALT,RGUI,APP, RCTL, LEFT,DOWN,RGHT, P0, PDOT,PENT ), - - /* 5: Mouse keys - * ,-----------------------------------------------------------. - * |Esc| F1| F2| F3| F4| F5| F6| F7| F8| F9|F10|F11|F12|Backspa| - * |-----------------------------------------------------------| - * |Tab |MwL|MwU|McU|WwU|WwR|MwL|MwD|MwU|MwR| | | | \| - * |-----------------------------------------------------------| - * |CapsLo| |McL|McD|McR| |McL|McD|McU|McR|Fn0| |Return | - * |-----------------------------------------------------------| - * |Shift |VoD|VoU|Mut|Mb2|Mb3|Mb2|Mb1|VoD|VoU|Mut|Shift | - * |-----------------------------------------------------------| - * |Ctrl |Gui |Alt | Mb1 |Alt |Gui |Menu|Ctrl| - * `-----------------------------------------------------------' - * Mc = mouse cursor, Mw = mouse wheel, Mb = mouse button - * Vo = Volume, Mut = Mute - */ - KEYMAP( - ESC, F1, F2, F3, F4, F5, F6, F7, F8, F9, F10, F11, F12, PSCR,SLCK,PAUS, - GRV, F1, F2, F3, F4, F5, F6, F7, F8, F8, F10, F11, F12, DEL, INS, HOME,PGUP, NLCK,PSLS,PAST,PMNS, - CAPS,NO, NO, NO, NO, NO, WH_L,WH_D,WH_U,WH_R,PSCR,SLCK,PAUS,INS, DEL, END, PGDN, P7, P8, P9, - FN2, VOLD,VOLU,MUTE,NO, NO, MS_L,MS_D,MS_U,MS_R,FN0, NO, ENT, P4, P5, P6, PPLS, - LSFT,NO, NO, NO, NO, BTN3,BTN2,BTN1,NO, NO, NO, RSFT, UP, P1, P2, P3, - LCTL,LGUI,LALT, BTN1, RALT,FN2, FN2, RCTL, LEFT,DOWN,RGHT, P0, PDOT,PENT - ), - - /* 6: Cursor keys - * ,-----------------------------------------------------------. - * |Esc| F1| F2| F3| F4| F5| F6| F7| F8| F9|F10|F11|F12|Backspa| - * |-----------------------------------------------------------| - * |Tab |Hom|PgU| Up|PgU|End|Hom|PgD|PgU|End| | | | \| - * |-----------------------------------------------------------| - * |CapsLo| |Lef|Dow|Rig| |Lef|Dow| Up|Rig| | |Return | - * |-----------------------------------------------------------| - * |Shift | | | | | |Hom|PgD|PgU|End|Fn1|Shift | - * |-----------------------------------------------------------| - * |Ctrl |Gui |Alt | Space |Alt |Gui |Menu|Ctrl| - * `-----------------------------------------------------------' - */ - KEYMAP( - ESC, F1, F2, F3, F4, F5, F6, F7, F8, F9, F10, F11, F12, PSCR,SLCK,PAUS, - GRV, F1, F2, F3, F4, F5, F6, F7, F8, F8, F10, F11, F12, DEL, INS, HOME,PGUP, NLCK,PSLS,PAST,PMNS, - CAPS,NO, NO, NO, NO, NO, HOME,PGDN,PGUP,END, NO, NO, NO, INS, DEL, END, PGDN, P7, P8, P9, - LCTL,NO, NO, NO, NO, NO, LEFT,DOWN,UP, RGHT,NO, NO, ENT, P4, P5, P6, PPLS, - LSFT,NO, NO, NO, NO, NO, HOME,PGDN,PGUP,END, FN1, RSFT, UP, P1, P2, P3, - LCTL,LGUI,LALT, SPC, RALT,RGUI,APP, RCTL, LEFT,DOWN,RGHT, P0, PDOT,PENT - ), }; - - -uint8_t keymap_get_keycode(uint8_t layer, uint8_t row, uint8_t col) -{ - return pgm_read_byte(&keymaps[(layer)][(row)][(col)]); -} - -uint8_t keymap_fn_layer(uint8_t index) -{ - return pgm_read_byte(&fn_layer[index]); -} - -uint8_t keymap_fn_keycode(uint8_t index) -{ - return pgm_read_byte(&fn_keycode[index]); -} +const uint16_t PROGMEM fn_actions[] = { +}; diff --git a/converter/usb_usb/keymap_common.c b/converter/usb_usb/keymap_common.c new file mode 100644 index 0000000000..8ab5ba923e --- /dev/null +++ b/converter/usb_usb/keymap_common.c @@ -0,0 +1,31 @@ +/* +Copyright 2014 Jun Wako + +This program is free software: you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation, either version 2 of the License, or +(at your option) any later version. + +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. + +You should have received a copy of the GNU General Public License +along with this program. If not, see . +*/ +#include "keymap_common.h" +#include "progmem.h" + + +/* translates key to keycode */ +uint8_t keymap_key_to_keycode(uint8_t layer, keypos_t key) +{ + return pgm_read_byte(&keymaps[(layer)][(key.row)][(key.col)]); +} + +/* translates Fn keycode to action */ +action_t keymap_fn_to_action(uint8_t keycode) +{ + return (action_t){ .code = pgm_read_word(&fn_actions[FN_INDEX(keycode)]) }; +} diff --git a/converter/usb_usb/keymap_common.h b/converter/usb_usb/keymap_common.h new file mode 100644 index 0000000000..435d83fdc7 --- /dev/null +++ b/converter/usb_usb/keymap_common.h @@ -0,0 +1,77 @@ +/* +Copyright 2014 Jun Wako + +This program is free software: you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation, either version 2 of the License, or +(at your option) any later version. + +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. + +You should have received a copy of the GNU General Public License +along with this program. If not, see . +*/ +#ifndef KEYMAP_COMMON_H +#define KEYMAP_COMMON_H + +#include +#include +#include "keycode.h" +#include "action.h" +#include "action_macro.h" +#include "report.h" +#include "print.h" +#include "debug.h" +#include "keymap.h" + + +extern const uint8_t keymaps[][MATRIX_ROWS][MATRIX_COLS]; +extern const uint16_t fn_actions[]; + + +#define KEYMAP( \ + K29,K3A,K3B,K3C,K3D,K3E,K3F,K40,K41,K42,K43,K44,K45, K46,K47,K48, \ + K35,K1E,K1F,K20,K21,K22,K23,K24,K25,K26,K27,K2D,K2E,K2A, K49,K4A,K4B, K53,K54,K55,K56, \ + K2B,K14,K1A,K08,K15,K17,K1C,K18,K0C,K12,K13,K2F,K30,K31, K4C,K4D,K4E, K5F,K60,K61, \ + K39,K04,K16,K07,K09,K0A,K0B,K0D,K0E,K0F,K33,K34, K28, K5C,K5D,K5E,K57, \ + KE1,K1D,K1B,K06,K19,K05,K11,K10,K36,K37,K38, KE5, K52, K59,K5A,K5B, \ + KE0,KE3,KE2, K2C, KE6,KE7,K65,KE4, K50,K51,K4F, K62, K63,K58 \ +) { \ + { KC_NO, KC_NO, KC_NO, KC_NO, KC_##K04, KC_##K05, KC_##K06, KC_##K07 }, /* 00-07 */ \ + { KC_##K08, KC_##K09, KC_##K0A, KC_##K0B, KC_##K0C, KC_##K0D, KC_##K0E, KC_##K0F }, /* 08-0F */ \ + { KC_##K10, KC_##K11, KC_##K12, KC_##K13, KC_##K14, KC_##K15, KC_##K16, KC_##K17 }, /* 10-17 */ \ + { KC_##K18, KC_##K19, KC_##K1A, KC_##K1B, KC_##K1C, KC_##K1D, KC_##K1E, KC_##K1F }, /* 18-1F */ \ + { KC_##K20, KC_##K21, KC_##K22, KC_##K23, KC_##K24, KC_##K25, KC_##K26, KC_##K27 }, /* 20-27 */ \ + { KC_##K28, KC_##K29, KC_##K2A, KC_##K2B, KC_##K2C, KC_##K2D, KC_##K2E, KC_##K2F }, /* 28-2F */ \ + { KC_##K30, KC_##K31, KC_NO, KC_##K33, KC_##K34, KC_##K35, KC_##K36, KC_##K37 }, /* 30-37 */ \ + { KC_##K38, KC_##K39, KC_##K3A, KC_##K3B, KC_##K3C, KC_##K3D, KC_##K3E, KC_##K3F }, /* 38-3F */ \ + { KC_##K40, KC_##K41, KC_##K42, KC_##K43, KC_##K44, KC_##K45, KC_##K46, KC_##K47 }, /* 40-47 */ \ + { KC_##K48, KC_##K49, KC_##K4A, KC_##K4B, KC_##K4C, KC_##K4D, KC_##K4E, KC_##K4F }, /* 48-4F */ \ + { KC_##K50, KC_##K51, KC_##K52, KC_##K53, KC_##K54, KC_##K55, KC_##K56, KC_##K57 }, /* 50-57 */ \ + { KC_##K58, KC_##K59, KC_##K5A, KC_##K5B, KC_##K5C, KC_##K5D, KC_##K5E, KC_##K5F }, /* 58-5F */ \ + { KC_##K60, KC_##K61, KC_##K62, KC_##K63, KC_NO, KC_##K65, KC_NO, KC_NO }, /* 60-67 */ \ + { KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO }, /* 68-6F */ \ + { KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO }, /* 70-77 */ \ + { KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO }, /* 78-7F */ \ + { KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO }, /* 80-87 */ \ + { KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO }, /* 88-8F */ \ + { KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO }, /* 90-97 */ \ + { KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO }, /* 98-9F */ \ + { KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO }, /* A0-A7 */ \ + { KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO }, /* A8-AF */ \ + { KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO }, /* B0-B7 */ \ + { KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO }, /* B8-BF */ \ + { KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO }, /* C0-C7 */ \ + { KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO }, /* C8-CF */ \ + { KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO }, /* D0-D7 */ \ + { KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO }, /* D8-DF */ \ + { KC_##KE0, KC_##KE1, KC_##KE2, KC_##KE3, KC_##KE4, KC_##KE5, KC_##KE6, KC_##KE7 }, /* E0-E7 */ \ + { KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO }, /* E8-EF */ \ + { KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO }, /* F0-F7 */ \ + { KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO }, /* F8-FF */ \ +} + +#endif diff --git a/converter/usb_usb/keymap_hasu.c b/converter/usb_usb/keymap_hasu.c new file mode 100644 index 0000000000..de19e23076 --- /dev/null +++ b/converter/usb_usb/keymap_hasu.c @@ -0,0 +1,158 @@ +#include "keymap_common.h" + +const uint8_t keymaps[][MATRIX_ROWS][MATRIX_COLS] PROGMEM = { + /* Layer 0: Default Layer + * ,-----------------------------------------------------------. + * |Esc| 1| 2| 3| 4| 5| 6| 7| 8| 9| 0| -| =| \| `| + * |-----------------------------------------------------------| + * |Tab | Q| W| E| R| T| Y| U| I| O| P| [| ]|Backs| + * |-----------------------------------------------------------| + * |Contro| A| S| D| F| G| H| J| K| L|Fn3| '|Fn6 | + * |-----------------------------------------------------------| + * |Fn7 | Z| X| C| V| B| N| M| ,| .|Fn2|Shift |Fn1| + * `-----------------------------------------------------------' + * |Gui|Alt | Fn4 |Fn5 |Gui| + * `-------------------------------------------' + */ + [0] = \ + KEYMAP( + ESC, F1, F2, F3, F4, F5, F6, F7, F8, F9, F10, F11, F12, PSCR,SLCK,BRK, + ESC, 1, 2, 3, 4, 5, 6, 7, 8, 9, 0, MINS,EQL, BSPC, INS, HOME,PGUP, NLCK,PSLS,PAST,PMNS, + TAB, Q, W, E, R, T, Y, U, I, O, P, LBRC,RBRC,BSLS, DEL, END, PGDN, P7, P8, P9, + LCTL,A, S, D, F, G, H, J, K, L, FN3, QUOT, FN6, P4, P5, P6, PPLS, + FN7, Z, X, C, V, B, N, M, COMM,DOT, FN2, RSFT, UP, P1, P2, P3, + LCTL,LGUI,LALT, FN4, RALT,FN5, FN5, FN1, LEFT,DOWN,RGHT, P0, PDOT,PENT + ), + + /* Layer 1: HHKB mode[HHKB Fn] + * ,-----------------------------------------------------------. + * |Esc| F1| F2| F3| F4| F5| F6| F7| F8| F9|F10|F11|F12|Ins|Del| + * |-----------------------------------------------------------| + * |Caps | | | | | | | |Psc|Slk|Pus|Up | |Backs| + * |-----------------------------------------------------------| + * |Contro|VoD|VoU|Mut| | | *| /|Hom|PgU|Lef|Rig|Enter | + * |-----------------------------------------------------------| + * |Shift | | | | | | +| -|End|PgD|Dow|Shift | | + * `-----------------------------------------------------------' + * |Gui|Alt | Space |Alt |Gui| + * `-------------------------------------------' + */ + [1] = \ + KEYMAP( + ESC, F1, F2, F3, F4, F5, F6, F7, F8, F9, F10, F11, F12, PSCR,SLCK,BRK, + GRV, F1, F2, F3, F4, F5, F6, F7, F8, F9, F10, F11, F12, DEL, INS, HOME,PGUP, NLCK,PSLS,PAST,PMNS, + CAPS,NO, NO, NO, NO, NO, NO, NO, PSCR,SLCK,PAUS, UP, NO, BSLS, DEL, END, PGDN, P7, P8, P9, + LCTL,VOLD,VOLU,MUTE,NO, NO, PAST,PSLS,HOME,PGUP,LEFT,RGHT, ENT, P4, P5, P6, PPLS, + LSFT,NO, NO, NO, NO, NO, PPLS,PMNS,END, PGDN,DOWN, RSFT, UP, P1, P2, P3, + LCTL,LGUI,LALT, SPC, RALT,RGUI,APP, TRNS, LEFT,DOWN,RGHT, P0, PDOT,PENT + ), + + /* Layer 2: Vi mode[Slash] + * ,-----------------------------------------------------------. + * |Esc| F1| F2| F3| F4| F5| F6| F7| F8| F9|F10|F11|F12|Ins|Del| + * |-----------------------------------------------------------| + * |Tab |Hom|PgD|Up |PgU|End|Hom|PgD|PgUlEnd| | | |Backs| + * |-----------------------------------------------------------| + * |Contro| |Lef|Dow|Rig| |Lef|Dow|Up |Rig| | |Return | + * |-----------------------------------------------------------| + * |Shift | | | | | |Hom|PgD|PgUlEnd|Fn0|Shift | | + * `-----------------------------------------------------------' + * |Gui|Alt | Space |Alt |Gui| + * `-------------------------------------------' + */ + [2] = \ + KEYMAP( + ESC, F1, F2, F3, F4, F5, F6, F7, F8, F9, F10, F11, F12, PSCR,SLCK,BRK, + GRV, F1, F2, F3, F4, F5, F6, F7, F8, F9, F10, F11, F12, DEL, INS, HOME,PGUP, NLCK,PSLS,PAST,PMNS, + TAB, HOME,PGDN,UP, PGUP,END, HOME,PGDN,PGUP,END, NO, NO, NO, BSLS, DEL, END, PGDN, P7, P8, P9, + LCTL,NO, LEFT,DOWN,RGHT,NO, LEFT,DOWN,UP, RGHT,NO, NO, ENT, P4, P5, P6, PPLS, + LSFT,NO, NO, NO, NO, NO, HOME,PGDN,PGUP,END, TRNS, RSFT, UP, P1, P2, P3, + LCTL,LGUI,LALT, SPC, RALT,RGUI,APP, RCTL, LEFT,DOWN,RGHT, P0, PDOT,PENT + ), + + /* Layer 3: Mouse mode(IJKL)[Semicolon] + * ,-----------------------------------------------------------. + * |Esc| F1| F2| F3| F4| F5| F6| F7| F8| F9|F10|F11|F12|Ins|Del| + * |-----------------------------------------------------------| + * |Tab | | | | | |MwL|MwD|McU|MwU|MwR|Wbk|Wfr|Alt-T| + * |-----------------------------------------------------------| + * |Contro| | | | | |Mb2|McL|McD|McR|Fn | |Return | + * |-----------------------------------------------------------| + * |Shift | | | | |Mb3|Mb2|Mb1|Mb4|Mb5| |Shift | | + * `-----------------------------------------------------------' + * |Gui |Alt | Mb1 |Fn |Fn | + * `--------------------------------------------' + * Mc: Mouse Cursor / Mb: Mouse Button / Mw: Mouse Wheel8 + */ + [3] = \ + KEYMAP( + ESC, F1, F2, F3, F4, F5, F6, F7, F8, F9, F10, F11, F12, PSCR,SLCK,BRK, + GRV, F1, F2, F3, F4, F5, F6, F7, F8, F9, F10, F11, F12, FN8, INS, HOME,PGUP, NLCK,PSLS,PAST,PMNS, + FN8, NO, NO, NO, NO, NO, WH_L,WH_D,MS_U,WH_U,WH_R,WBAK,WFWD,FN8, DEL, END, PGDN, P7, P8, P9, + LCTL,ACL0,ACL1,ACL2,ACL2,NO, NO, MS_L,MS_D,MS_R,TRNS,NO, ENT, P4, P5, P6, PPLS, + LSFT,NO, NO, NO, NO, BTN3,BTN2,BTN1,BTN4,BTN5,NO, RSFT, UP, P1, P2, P3, + LCTL,LGUI,LALT, BTN1, RALT,TRNS,TRNS,RCTL, LEFT,DOWN,RGHT, P0, PDOT,PENT + ), + + /* Layer 5: Mouse mode(IJKL)[Space] + * ,-----------------------------------------------------------. + * |Esc| F1| F2| F3| F4| F5| F6| F7| F8| F9|F10|F11|F12|Ins|Del| + * |-----------------------------------------------------------| + * |Tab | | | | | |MwL|MwD|McU|MwU|MwR|Wbk|Wfr|Alt-T| + * |-----------------------------------------------------------| + * |Contro| | | | | |Mb2|McL|McD|McR|Mb1| |Return | + * |-----------------------------------------------------------| + * |Shift | | | | |Mb3|Mb2|Mb1|Mb4|Mb5| |Shift | | + * `-----------------------------------------------------------' + * |Gui |Alt | Mb1 |Fn |Fn | + * `--------------------------------------------' + * Mc: Mouse Cursor / Mb: Mouse Button / Mw: Mouse Wheel8 + */ + [4] = \ + KEYMAP( + ESC, F1, F2, F3, F4, F5, F6, F7, F8, F9, F10, F11, F12, PSCR,SLCK,BRK, + GRV, F1, F2, F3, F4, F5, F6, F7, F8, F9, F10, F11, F12, FN8, INS, HOME,PGUP, NLCK,PSLS,PAST,PMNS, + FN8, NO, NO, NO, NO, NO, WH_L,WH_D,MS_U,WH_U,WH_R,WBAK,WFWD,FN8, DEL, END, PGDN, P7, P8, P9, + LCTL,ACL0,ACL1,ACL2,ACL2,NO, NO, MS_L,MS_D,MS_R,BTN1,NO, ENT, P4, P5, P6, PPLS, + LSFT,NO, NO, NO, NO, BTN3,BTN2,BTN1,BTN4,BTN5,NO, RSFT, UP, P1, P2, P3, + LCTL,LGUI,LALT, TRNS, RALT,RGUI,APP, RCTL, LEFT,DOWN,RGHT, P0, PDOT,PENT + ), +}; + + +/* + * Macro definition + */ +enum macro_id { + ALT_TAB, +}; +const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) +{ + switch (id) { + case ALT_TAB: + return (record->event.pressed ? + MACRO( D(LALT), D(TAB), END ) : + MACRO( U(TAB), END )); + } + return MACRO_NONE; +} + + +/* + * Fn action definition + */ +#ifdef KEYMAP_SECTION_ENABLE +const uint16_t fn_actions[] __attribute__ ((section (".keymap.fn_actions"))) = { +#else +const uint16_t fn_actions[] PROGMEM = { +#endif + [0] = ACTION_DEFAULT_LAYER_SET(0), // Default layer(not used) + [1] = ACTION_LAYER_TAP_TOGGLE(1), // HHKB layer(toggle with 5 taps) + [2] = ACTION_LAYER_TAP_KEY(2, KC_SLASH), // Cursor layer with Slash* + [3] = ACTION_LAYER_TAP_KEY(3, KC_SCLN), // Mousekey layer with Semicolon* + [4] = ACTION_LAYER_TAP_KEY(4, KC_SPC), // Mousekey layer with Space + [5] = ACTION_LAYER_MOMENTARY(3), // Mousekey layer + [6] = ACTION_MODS_TAP_KEY(MOD_RCTL, KC_ENT), // RControl with tap Enter + [7] = ACTION_MODS_ONESHOT(MOD_LSFT), // Oneshot Shift + [8] = ACTION_MACRO(ALT_TAB), // Application switching +}; diff --git a/converter/usb_usb/keymap_spacefn.c b/converter/usb_usb/keymap_spacefn.c new file mode 100644 index 0000000000..bffd2bc606 --- /dev/null +++ b/converter/usb_usb/keymap_spacefn.c @@ -0,0 +1,61 @@ +/* + * SpaceFN layout + * http://geekhack.org/index.php?topic=51069.0 + */ +#include "keymap_common.h" + + +const uint8_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + /* 0: default + * ,---. ,---------------. ,---------------. ,---------------. ,-----------. ,-----------. + * |Esc| |F1 |F2 |F3 |F4 | |F5 |F6 |F7 |F8 | |F9 |F10|F11|F12| |PrS|ScL|Pau| |Pwr|Slp|Wak| + * `---' `---------------' `---------------' `---------------' `-----------' `-----------' + * ,-----------------------------------------------------------. ,-----------. ,---------------. + * | `| 1| 2| 3| 4| 5| 6| 7| 8| 9| 0| -| =|Backspa| |Ins|Hom|PgU| |NmL| /| *| -| + * |-----------------------------------------------------------| |-----------| |---------------| + * |Tab | Q| W| E| R| T| Y| U| I| O| P| [| ]| \| |Del|End|PgD| | 7| 8| 9| | + * |-----------------------------------------------------------| `-----------' |-----------| +| + * |CapsLo| A| S| D| F| G| H| J| K| L| ;| '|Return | | 4| 5| 6| | + * |-----------------------------------------------------------| ,---. |---------------| + * |Shift | Z| X| C| V| B| N| M| ,| ,| /|Shift | |Up | | 1| 2| 3| | + * |-----------------------------------------------------------| ,-----------. |-----------|Ent| + * |Ctrl |Gui |Alt | Space |Alt |Gui |Menu|Ctrl| |Lef|Dow|Rig| | 0| .| | + * `-----------------------------------------------------------' `-----------' `---------------' + */ + KEYMAP( + ESC, F1, F2, F3, F4, F5, F6, F7, F8, F9, F10, F11, F12, PSCR,SLCK,BRK, + ESC, 1, 2, 3, 4, 5, 6, 7, 8, 9, 0, MINS,EQL, BSPC, INS, HOME,PGUP, NLCK,PSLS,PAST,PMNS, + TAB, Q, W, E, R, T, Y, U, I, O, P, LBRC,RBRC,BSLS, DEL, END, PGDN, P7, P8, P9, + CAPS,A, S, D, F, G, H, J, K, L, SCLN,QUOT, ENT, P4, P5, P6, PPLS, + LSFT,Z, X, C, V, B, N, M, COMM,DOT, SLSH, RSFT, UP, P1, P2, P3, + LCTL,LGUI,LALT, FN0, RALT,RGUI,APP, RCTL, LEFT,DOWN,RGHT, P0, PDOT,PENT + ), + + /* 1: SpaceFN + * ,-----------------------------------------------------------. + * |` | F1| F2| F3| F4| F5| F6| F7| F8| F9|F10|F11|F12|Delete | + * |-----------------------------------------------------------| + * | | | |Esc| | | |Hom|Up |End|Psc|Slk|Pau|Ins | + * |-----------------------------------------------------------| + * | | | | | | |PgU|Lef|Dow|Rig| | | | + * |-----------------------------------------------------------| + * | | | | | |Spc|PgD|` |~ | |Men| | + * |-----------------------------------------------------------| + * | | | | | | | | | + * `-----------------------------------------------------------' + */ + KEYMAP( + ESC, F1, F2, F3, F4, F5, F6, F7, F8, F9, F10, F11, F12, PSCR,SLCK,BRK, + GRV, F1, F2, F3, F4, F5, F6, F7, F8, F9, F10, F11, F12, DEL, INS, HOME,PGUP, NLCK,PSLS,PAST,PMNS, + TRNS,TRNS,TRNS,ESC, TRNS,TRNS,TRNS,HOME,UP, END, PSCR,SLCK,PAUS,INS, DEL, END, PGDN, P7, P8, P9, + TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,PGUP,LEFT,DOWN,RGHT,TRNS,TRNS, TRNS, P4, P5, P6, PPLS, + TRNS,TRNS,TRNS,TRNS,TRNS,SPC, PGDN,GRV, FN1, TRNS,APP, TRNS, UP, P1, P2, P3, + TRNS,TRNS,TRNS, TRNS, TRNS,TRNS,TRNS,TRNS, LEFT,DOWN,RGHT, P0, PDOT,PENT + ), +}; + +const uint16_t PROGMEM fn_actions[] = { + [0] = ACTION_LAYER_TAP_KEY(1, KC_SPACE), + [1] = ACTION_MODS_KEY(MOD_LSFT, KC_GRV), // tilde +}; + -- cgit v1.2.3 From bb2596042428fad08509709bd9d63dbbb50e59f9 Mon Sep 17 00:00:00 2001 From: tmk Date: Wed, 24 Dec 2014 11:11:07 +0900 Subject: [ps2,terminal_usb] Quick fix for build problem --- protocol.mk | 2 ++ protocol/ps2_io_avr.c | 1 + 2 files changed, 3 insertions(+) diff --git a/protocol.mk b/protocol.mk index e057d1d601..d9194b2bfc 100644 --- a/protocol.mk +++ b/protocol.mk @@ -15,11 +15,13 @@ endif ifdef PS2_USE_INT SRC += protocol/ps2_interrupt.c + SRC += protocol/ps2_io_avr.c OPT_DEFS += -DPS2_USE_INT endif ifdef PS2_USE_USART SRC += protocol/ps2_usart.c + SRC += protocol/ps2_io_avr.c OPT_DEFS += -DPS2_USE_USART endif diff --git a/protocol/ps2_io_avr.c b/protocol/ps2_io_avr.c index be13d6696a..ed462345ba 100644 --- a/protocol/ps2_io_avr.c +++ b/protocol/ps2_io_avr.c @@ -1,4 +1,5 @@ #include +#include #include /* Check port settings for clock and data line */ -- cgit v1.2.3 From 5a8dbc63ea29eb454ad5f36de5c6c33172230f88 Mon Sep 17 00:00:00 2001 From: Colt Ma Date: Fri, 26 Dec 2014 11:02:25 +0800 Subject: Add keycode for Fast Forward & Rewind KC_MEDIA_FAST_FORWARD KC_MEDIA_REWIND --- common/keycode.h | 6 +++++- common/report.h | 5 ++++- 2 files changed, 9 insertions(+), 2 deletions(-) diff --git a/common/keycode.h b/common/keycode.h index 08c3cbf42b..074e0f68f9 100644 --- a/common/keycode.h +++ b/common/keycode.h @@ -140,6 +140,8 @@ along with this program. If not, see . #define KC_VOLD KC_AUDIO_VOL_DOWN #define KC_MNXT KC_MEDIA_NEXT_TRACK #define KC_MPRV KC_MEDIA_PREV_TRACK +#define KC_MFFD KC_MEDIA_FAST_FORWARD +#define KC_MRWD KC_MEDIA_REWIND #define KC_MSTP KC_MEDIA_STOP #define KC_MPLY KC_MEDIA_PLAY_PAUSE #define KC_MSEL KC_MEDIA_SELECT @@ -420,7 +422,9 @@ enum internal_special_keycodes { KC_WWW_FORWARD, KC_WWW_STOP, KC_WWW_REFRESH, - KC_WWW_FAVORITES, /* 0xBA */ + KC_WWW_FAVORITES, + KC_MEDIA_FAST_FORWARD, + KC_MEDIA_REWIND, /* 0xBC */ /* Fn key */ KC_FN0 = 0xC0, diff --git a/common/report.h b/common/report.h index 62190469a4..f6c0a315de 100644 --- a/common/report.h +++ b/common/report.h @@ -61,6 +61,7 @@ along with this program. If not, see . /* supplement for Bluegiga iWRAP HID(not supported by Windows?) */ #define AL_LOCK 0x019E #define TRANSPORT_RECORD 0x00B2 +#define TRANSPORT_FAST_FORWARD 0x00B3 #define TRANSPORT_REWIND 0x00B4 #define TRANSPORT_EJECT 0x00B8 #define AC_MINIMIZE 0x0206 @@ -158,6 +159,8 @@ typedef struct { (key == KC_AUDIO_VOL_DOWN ? AUDIO_VOL_DOWN : \ (key == KC_MEDIA_NEXT_TRACK ? TRANSPORT_NEXT_TRACK : \ (key == KC_MEDIA_PREV_TRACK ? TRANSPORT_PREV_TRACK : \ + (key == KC_MEDIA_FAST_FORWARD ? TRANSPORT_FAST_FORWARD : \ + (key == KC_MEDIA_REWIND ? TRANSPORT_REWIND : \ (key == KC_MEDIA_STOP ? TRANSPORT_STOP : \ (key == KC_MEDIA_EJECT ? TRANSPORT_STOP_EJECT : \ (key == KC_MEDIA_PLAY_PAUSE ? TRANSPORT_PLAY_PAUSE : \ @@ -171,7 +174,7 @@ typedef struct { (key == KC_WWW_FORWARD ? AC_FORWARD : \ (key == KC_WWW_STOP ? AC_STOP : \ (key == KC_WWW_REFRESH ? AC_REFRESH : \ - (key == KC_WWW_FAVORITES ? AC_BOOKMARKS : 0))))))))))))))))))) + (key == KC_WWW_FAVORITES ? AC_BOOKMARKS : 0))))))))))))))))))))) #ifdef __cplusplus } -- cgit v1.2.3 From af556d39d2f5a1ee30c34ee65ecd5d1b7a519bdc Mon Sep 17 00:00:00 2001 From: Jun Wako Date: Fri, 26 Dec 2014 13:27:06 +0900 Subject: Remove unwanted white space --- common/keycode.h | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/common/keycode.h b/common/keycode.h index 074e0f68f9..ac4ef00db6 100644 --- a/common/keycode.h +++ b/common/keycode.h @@ -15,7 +15,7 @@ You should have received a copy of the GNU General Public License along with this program. If not, see . */ -/* +/* * Keycodes based on HID Usage Keyboard/Keypad Page(0x07) plus special codes * http://www.usb.org/developers/devclass_docs/Hut1_12.pdf */ @@ -392,7 +392,7 @@ enum hid_keyboard_keypad_usage { KC_RALT, KC_RGUI, - /* NOTE: 0xE8-FF are used for internal special purpose */ + /* NOTE: 0xE8-FF are used for internal special purpose */ }; /* Special keycodes */ @@ -422,7 +422,7 @@ enum internal_special_keycodes { KC_WWW_FORWARD, KC_WWW_STOP, KC_WWW_REFRESH, - KC_WWW_FAVORITES, + KC_WWW_FAVORITES, KC_MEDIA_FAST_FORWARD, KC_MEDIA_REWIND, /* 0xBC */ -- cgit v1.2.3 From 2e17aa2d6006ce42889d489847e504575f5d0995 Mon Sep 17 00:00:00 2001 From: Jun Wako Date: Tue, 30 Dec 2014 13:52:53 +0900 Subject: usb_usb: update README --- converter/usb_usb/README | 16 +++++++++++++++- 1 file changed, 15 insertions(+), 1 deletion(-) diff --git a/converter/usb_usb/README b/converter/usb_usb/README index 69caabb278..30d5deb1e5 100644 --- a/converter/usb_usb/README +++ b/converter/usb_usb/README @@ -7,7 +7,19 @@ Arduino Leonardo http://arduino.cc/en/Main/ArduinoBoardLeonardo Circuit@Home USB Host Shield 2.0 - http://www.circuitsathome.com/products-page/arduino-shields/usb-host-shield-2-0-for-arduino + https://www.circuitsathome.com/products-page/arduino-shields/usb-host-shield-2-0-for-arduino-assembled/ + +Buying Arduino Leonardo and USB Host Shield 2.0(from Circuit@home) will be the easiest way, you won't need even soldering iron. +Arduino's Shield will also work well but I think Sparkfun's needs to be modified. + + http://arduino.cc/en/Main/ArduinoUSBHostShield + https://www.sparkfun.com/products/9947 + +Also Pro Micro 3.3V(not Mini) or Teensy with mini host shield will work with some fixes on signal/power routing. + https://www.circuitsathome.com/products-page/arduino-shields/usb-host-shield-for-arduino-pro-mini + https://www.sparkfun.com/products/12587 + https://www.pjrc.com/teensy/td_libs_USBHostShield.html + Build firmware @@ -32,6 +44,8 @@ Limitation Only supports 'HID Boot protocol'. Not support keyboard LED yet. +Note that the converter can host only USB "boot protocol" keyboard(6KRO) and not NKRO, it is possible to support NKRO keyboard but you will need to write HID report parser for that. Every NKRO keyboard can have different HID report and it is difficult to support all kind of NKRO keyboards in the market. + Update -- cgit v1.2.3 From 22d99f26af757c0bedb31ba3f63d793e4b2d4ca3 Mon Sep 17 00:00:00 2001 From: tmk Date: Thu, 1 Jan 2015 12:17:11 +0900 Subject: Fix modifier stuck of Lock command(#127) --- common/command.c | 1 + 1 file changed, 1 insertion(+) diff --git a/common/command.c b/common/command.c index 971ef7f0af..1a507e3a46 100644 --- a/common/command.c +++ b/common/command.c @@ -194,6 +194,7 @@ static bool command_common(uint8_t code) case KC_CAPSLOCK: if (host_get_driver()) { host_driver = host_get_driver(); + clear_keyboard(); host_set_driver(0); print("Locked.\n"); } else { -- cgit v1.2.3 From 06527bde4f873ffc6eb8e359fb3b150e880b89ba Mon Sep 17 00:00:00 2001 From: tmk Date: Sat, 3 Jan 2015 12:02:48 +0900 Subject: bluefruit, pjrc: Update protocols for new API --- converter/terminal_bluefruit/Makefile | 16 +--------------- converter/terminal_usb/Makefile | 15 --------------- protocol/bluefruit/bluefruit.c | 4 ++-- protocol/bluefruit/main.c | 2 +- protocol/pjrc/main.c | 3 ++- protocol/pjrc/usb_keyboard.c | 2 +- 6 files changed, 7 insertions(+), 35 deletions(-) diff --git a/converter/terminal_bluefruit/Makefile b/converter/terminal_bluefruit/Makefile index 83d68fc252..28b7397bae 100644 --- a/converter/terminal_bluefruit/Makefile +++ b/converter/terminal_bluefruit/Makefile @@ -83,21 +83,6 @@ COMMAND_ENABLE = yes # Commands for debug and configuration PS2_USE_INT = yes # uses external interrupt for falling edge of PS/2 clock pin #PS2_USE_BUSYWAIT = yes # uses primitive reference code -ifdef PS2_USE_USART - SRC += protocol/ps2_usart.c - OPT_DEFS += -DPS2_USE_USART -endif - -ifdef PS2_USE_INT - SRC += protocol/ps2.c - OPT_DEFS += -DPS2_USE_INT -endif - -ifdef PS2_USE_BUSYWAIT - SRC += protocol/ps2.c - OPT_DEFS += -DPS2_USE_BUSYWAIT -endif - #---------------- Programming Options -------------------------- PROGRAM_CMD = teensy_loader_cli -mmcu=$(MCU) -w -v $(TARGET).hex @@ -107,6 +92,7 @@ VPATH += $(TARGET_DIR) VPATH += $(TOP_DIR) +include $(TOP_DIR)/protocol.mk include $(TOP_DIR)/protocol/bluefruit.mk include $(TOP_DIR)/protocol.mk include $(TOP_DIR)/common.mk diff --git a/converter/terminal_usb/Makefile b/converter/terminal_usb/Makefile index 6154d86826..16df638b94 100644 --- a/converter/terminal_usb/Makefile +++ b/converter/terminal_usb/Makefile @@ -82,21 +82,6 @@ PS2_USE_USART = yes # uses hardware USART engine for PS/2 signal receive(recomen #PS2_USE_INT = yes # uses external interrupt for falling edge of PS/2 clock pin #PS2_USE_BUSYWAIT = yes # uses primitive reference code -ifdef PS2_USE_USART - SRC += protocol/ps2_usart.c - OPT_DEFS += -DPS2_USE_USART -endif - -ifdef PS2_USE_INT - SRC += protocol/ps2.c - OPT_DEFS += -DPS2_USE_INT -endif - -ifdef PS2_USE_BUSYWAIT - SRC += protocol/ps2.c - OPT_DEFS += -DPS2_USE_BUSYWAIT -endif - #---------------- Programming Options -------------------------- PROGRAM_CMD = teensy_loader_cli -mmcu=$(MCU) -w -v $(TARGET).hex diff --git a/protocol/bluefruit/bluefruit.c b/protocol/bluefruit/bluefruit.c index f991e4d04e..cf26b83dff 100644 --- a/protocol/bluefruit/bluefruit.c +++ b/protocol/bluefruit/bluefruit.c @@ -36,7 +36,7 @@ static void bluefruit_serial_send(uint8_t); void bluefruit_keyboard_print_report(report_keyboard_t *report) { if (!debug_keyboard) return; - dprintf("keys: "); for (int i = 0; i < REPORT_KEYS; i++) { debug_hex8(report->keys[i]); dprintf(" "); } + dprintf("keys: "); for (int i = 0; i < KEYBOARD_REPORT_KEYS; i++) { debug_hex8(report->keys[i]); dprintf(" "); } dprintf(" mods: "); debug_hex8(report->mods); dprintf(" reserved: "); debug_hex8(report->reserved); dprintf("\n"); @@ -99,7 +99,7 @@ static void send_keyboard(report_keyboard_t *report) bluefruit_trace_header(); #endif bluefruit_serial_send(0xFD); - for (uint8_t i = 0; i < REPORT_SIZE; i++) { + for (uint8_t i = 0; i < KEYBOARD_REPORT_SIZE; i++) { bluefruit_serial_send(report->raw[i]); } #ifdef BLUEFRUIT_TRACE_SERIAL diff --git a/protocol/bluefruit/main.c b/protocol/bluefruit/main.c index 871062ab11..094fdb3662 100644 --- a/protocol/bluefruit/main.c +++ b/protocol/bluefruit/main.c @@ -104,7 +104,7 @@ int main(void) dprintf("Starting main loop"); while (1) { while (suspend) { - suspend_power_down(); + suspend_power_down(WDTO_120MS); if (remote_wakeup && suspend_wakeup_condition()) { usb_remote_wakeup(); } diff --git a/protocol/pjrc/main.c b/protocol/pjrc/main.c index 1ef87f8651..4f87a17364 100644 --- a/protocol/pjrc/main.c +++ b/protocol/pjrc/main.c @@ -24,6 +24,7 @@ #include #include #include +#include #include #include "keyboard.h" #include "usb.h" @@ -60,7 +61,7 @@ int main(void) #endif while (1) { while (suspend) { - suspend_power_down(); + suspend_power_down(WDTO_120MS); if (remote_wakeup && suspend_wakeup_condition()) { usb_remote_wakeup(); } diff --git a/protocol/pjrc/usb_keyboard.c b/protocol/pjrc/usb_keyboard.c index 758a4edc6c..4b87b5d7b5 100644 --- a/protocol/pjrc/usb_keyboard.c +++ b/protocol/pjrc/usb_keyboard.c @@ -74,7 +74,7 @@ void usb_keyboard_print_report(report_keyboard_t *report) { if (!debug_keyboard) return; print("keys: "); - for (int i = 0; i < REPORT_KEYS; i++) { phex(report->keys[i]); print(" "); } + for (int i = 0; i < KEYBOARD_REPORT_KEYS; i++) { phex(report->keys[i]); print(" "); } print(" mods: "); phex(report->mods); print("\n"); } -- cgit v1.2.3 From 8f1e311cd7624d765901c69e61837db33a51928b Mon Sep 17 00:00:00 2001 From: Jun Wako Date: Fri, 12 Dec 2014 14:05:05 +0900 Subject: Ad hoc fix of print and debug for mbed --- common/print.c | 12 ++++++++++-- tool/mbed/common.mk | 2 ++ 2 files changed, 12 insertions(+), 2 deletions(-) diff --git a/common/print.c b/common/print.c index c13a29f317..ca94e1e5d6 100644 --- a/common/print.c +++ b/common/print.c @@ -22,13 +22,14 @@ * THE SOFTWARE. */ -#include -#include +#include #include "print.h" #ifndef NO_PRINT +#if defined(__AVR__) + #define sendchar(c) xputc(c) @@ -37,4 +38,11 @@ void print_set_sendchar(int8_t (*sendchar_func)(uint8_t)) xdev_out(sendchar_func); } +#elif defined(__arm__) + +// TODO +//void print_set_sendchar(int8_t (*sendchar_func)(uint8_t)) { } + +#endif + #endif diff --git a/tool/mbed/common.mk b/tool/mbed/common.mk index 93a927a3e8..403da9ac8d 100644 --- a/tool/mbed/common.mk +++ b/tool/mbed/common.mk @@ -7,6 +7,8 @@ OBJECTS += \ $(OBJDIR)/common/host.o \ $(OBJDIR)/common/keymap.o \ $(OBJDIR)/common/keyboard.o \ + $(OBJDIR)/common/print.o \ + $(OBJDIR)/common/debug.o \ $(OBJDIR)/common/util.o \ $(OBJDIR)/common/mbed/suspend.o \ $(OBJDIR)/common/mbed/timer.o \ -- cgit v1.2.3 From 75a59e4d12a13efc03cacd85b394fcf1204aad76 Mon Sep 17 00:00:00 2001 From: Jun Wako Date: Sun, 14 Dec 2014 13:59:22 +0900 Subject: Update makefiles to mbed-sdk 14666bb --- converter/ps2_usb/Makefile.mbed | 2 + tool/mbed/gcc.mk | 37 +++++++----- tool/mbed/lpc11u35_501.mk | 49 ++++++++++++++++ tool/mbed/mbed.mk | 126 +++++++++++++++++----------------------- 4 files changed, 127 insertions(+), 87 deletions(-) create mode 100644 tool/mbed/lpc11u35_501.mk diff --git a/converter/ps2_usb/Makefile.mbed b/converter/ps2_usb/Makefile.mbed index 631f270f75..ff8a0de7a4 100644 --- a/converter/ps2_usb/Makefile.mbed +++ b/converter/ps2_usb/Makefile.mbed @@ -39,6 +39,8 @@ LIBRARIES = MOUSEKEY_ENABLE = yes +#include $(TMK_DIR)/tool/mbed/mk20d50m.mk +include $(TMK_DIR)/tool/mbed/lpc11u35_501.mk include $(TMK_DIR)/tool/mbed/mbed.mk include $(TMK_DIR)/tool/mbed/common.mk include $(TMK_DIR)/tool/mbed/gcc.mk diff --git a/tool/mbed/gcc.mk b/tool/mbed/gcc.mk index 032f7c6cae..b8c7336b45 100644 --- a/tool/mbed/gcc.mk +++ b/tool/mbed/gcc.mk @@ -1,4 +1,6 @@ -############################################################################### +# based on Makefile exported form mbed.org +# see http://mbed.org/handbook/Exporting-to-GCC-ARM-Embedded + GCC_BIN = AS = $(GCC_BIN)arm-none-eabi-as CC = $(GCC_BIN)arm-none-eabi-gcc @@ -9,13 +11,21 @@ OBJDUMP = $(GCC_BIN)arm-none-eabi-objdump SIZE = $(GCC_BIN)arm-none-eabi-size CHKSUM = $(TMK_DIR)/tool/mbed/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 \ + -fomit-frame-pointer 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 -LD_FLAGS = -mcpu=cortex-m0 -mthumb -Wl,--gc-sections --specs=nano.specs +LD_FLAGS = $(CPU) -Wl,--gc-sections --specs=nano.specs +#LD_FLAGS += -u _printf_float -u _scanf_float LD_FLAGS += -Wl,-Map=$(OBJDIR)/$(PROJECT).map,--cref LD_SYS_LIBS = -lstdc++ -lsupc++ -lm -lc -lgcc -lnosys @@ -25,7 +35,7 @@ else CC_FLAGS += -DNDEBUG -Os endif -all: $(OBJDIR)/$(PROJECT).bin $(OBJDIR)/$(PROJECT).hex size +all: $(OBJDIR)/$(PROJECT).bin $(OBJDIR)/$(PROJECT).hex clean: rm -f $(OBJDIR)/$(PROJECT).bin $(OBJDIR)/$(PROJECT).elf $(OBJDIR)/$(PROJECT).hex $(OBJDIR)/$(PROJECT).map $(OBJDIR)/$(PROJECT).lst $(OBJECTS) $(DEPS) @@ -41,22 +51,21 @@ $(OBJDIR)/%.o: %.c $(OBJDIR)/%.o: %.cpp mkdir -p $(@D) - $(CPP) $(CC_FLAGS) $(CC_SYMBOLS) -std=gnu++98 $(INCLUDE_PATHS) -o $@ $< + $(CPP) $(CC_FLAGS) $(CC_SYMBOLS) -std=gnu++98 -fno-rtti $(INCLUDE_PATHS) -o $@ $< $(OBJDIR)/$(PROJECT).elf: $(OBJECTS) $(SYS_OBJECTS) $(LD) $(LD_FLAGS) -T$(LINKER_SCRIPT) $(LIBRARY_PATHS) -o $@ $^ $(LIBRARIES) $(LD_SYS_LIBS) $(LIBRARIES) $(LD_SYS_LIBS) - @echo "" - @echo "*****" - @echo "***** You must modify vector checksum value in *.bin and *.hex files." - @echo "*****" - @echo "" + $(SIZE) $@ $(OBJDIR)/$(PROJECT).bin: $(OBJDIR)/$(PROJECT).elf @$(OBJCOPY) -O binary $< $@ - @echo "Writing vector checksum value into $@ ..." +ifneq (,$(findstring TARGET_NXP,$(CC_SYMBOLS))) + @echo + @echo "For NXP writing vector checksum value into $@ ..." @$(CHKSUM) $@ @echo +endif $(OBJDIR)/$(PROJECT).hex: $(OBJDIR)/$(PROJECT).elf @$(OBJCOPY) -O ihex $< $@ diff --git a/tool/mbed/lpc11u35_501.mk b/tool/mbed/lpc11u35_501.mk new file mode 100644 index 0000000000..af1aad797f --- /dev/null +++ b/tool/mbed/lpc11u35_501.mk @@ -0,0 +1,49 @@ +# based on Makefile exported form mbed.org +# see http://mbed.org/handbook/Exporting-to-GCC-ARM-Embedded + +CPU = -mcpu=cortex-m0 -mthumb + +CC_SYMBOLS = \ + -DTARGET_LPC11U35_501 \ + -DTARGET_M0 \ + -DTARGET_CORTEX_M \ + -DTARGET_NXP \ + -DTARGET_LPC11UXX \ + -DTARGET_MCU_LPC11U35_501 \ + -DTOOLCHAIN_GCC_ARM \ + -DTOOLCHAIN_GCC \ + -D__CORTEX_M0 \ + -DARM_MATH_CM0 \ + -D__MBED__=1 + +OBJECTS += \ + $(OBJDIR)/libraries/mbed/targets/cmsis/TARGET_NXP/TARGET_LPC11UXX/TOOLCHAIN_GCC_ARM/startup_LPC11xx.o \ + $(OBJDIR)/libraries/mbed/targets/cmsis/TARGET_NXP/TARGET_LPC11UXX/cmsis_nvic.o \ + $(OBJDIR)/libraries/mbed/targets/cmsis/TARGET_NXP/TARGET_LPC11UXX/system_LPC11Uxx.o \ + $(OBJDIR)/libraries/mbed/targets/hal/TARGET_NXP/TARGET_LPC11UXX/TARGET_MCU_LPC11U35_501/PeripheralPins.o \ + $(OBJDIR)/libraries/mbed/targets/hal/TARGET_NXP/TARGET_LPC11UXX/analogin_api.o \ + $(OBJDIR)/libraries/mbed/targets/hal/TARGET_NXP/TARGET_LPC11UXX/gpio_api.o \ + $(OBJDIR)/libraries/mbed/targets/hal/TARGET_NXP/TARGET_LPC11UXX/gpio_irq_api.o \ + $(OBJDIR)/libraries/mbed/targets/hal/TARGET_NXP/TARGET_LPC11UXX/i2c_api.o \ + $(OBJDIR)/libraries/mbed/targets/hal/TARGET_NXP/TARGET_LPC11UXX/pinmap.o \ + $(OBJDIR)/libraries/mbed/targets/hal/TARGET_NXP/TARGET_LPC11UXX/port_api.o \ + $(OBJDIR)/libraries/mbed/targets/hal/TARGET_NXP/TARGET_LPC11UXX/pwmout_api.o \ + $(OBJDIR)/libraries/mbed/targets/hal/TARGET_NXP/TARGET_LPC11UXX/serial_api.o \ + $(OBJDIR)/libraries/mbed/targets/hal/TARGET_NXP/TARGET_LPC11UXX/sleep.o \ + $(OBJDIR)/libraries/mbed/targets/hal/TARGET_NXP/TARGET_LPC11UXX/spi_api.o \ + $(OBJDIR)/libraries/mbed/targets/hal/TARGET_NXP/TARGET_LPC11UXX/us_ticker.o + +INCLUDE_PATHS += \ + -I$(MBED_DIR)/libraries/mbed/targets \ + -I$(MBED_DIR)/libraries/mbed/targets/cmsis \ + -I$(MBED_DIR)/libraries/mbed/targets/cmsis/TARGET_NXP \ + -I$(MBED_DIR)/libraries/mbed/targets/cmsis/TARGET_NXP/TARGET_LPC11UXX \ + -I$(MBED_DIR)/libraries/mbed/targets/cmsis/TARGET_NXP/TARGET_LPC11UXX/TOOLCHAIN_GCC_ARM \ + -I$(MBED_DIR)/libraries/mbed/targets/cmsis/TARGET_NXP/TARGET_LPC11UXX/TOOLCHAIN_GCC_ARM/TARGET_LPC11U35_501 \ + -I$(MBED_DIR)/libraries/mbed/targets/hal \ + -I$(MBED_DIR)/libraries/mbed/targets/hal/TARGET_NXP \ + -I$(MBED_DIR)/libraries/mbed/targets/hal/TARGET_NXP/TARGET_LPC11UXX \ + -I$(MBED_DIR)/libraries/mbed/targets/hal/TARGET_NXP/TARGET_LPC11UXX/TARGET_MCU_LPC11U35_501 \ + -I$(MBED_DIR)/libraries/mbed/targets/hal/TARGET_NXP/TARGET_LPC11UXX/TARGET_MCU_LPC11U35_501/TARGET_LPC11U35_501 \ + +LINKER_SCRIPT = $(MBED_DIR)/libraries/mbed/targets/cmsis/TARGET_NXP/TARGET_LPC11UXX/TOOLCHAIN_GCC_ARM/TARGET_LPC11U35_501/LPC11U35.ld diff --git a/tool/mbed/mbed.mk b/tool/mbed/mbed.mk index 0f12ee2af3..242d78794f 100644 --- a/tool/mbed/mbed.mk +++ b/tool/mbed/mbed.mk @@ -1,99 +1,79 @@ +# based on Makefile exported form mbed.org +# see http://mbed.org/handbook/Exporting-to-GCC-ARM-Embedded + OBJECTS += \ - $(OBJDIR)/libraries/mbed/targets/cmsis/TARGET_NXP/TARGET_LPC11UXX/TOOLCHAIN_GCC_ARM/startup_LPC11xx.o \ - $(OBJDIR)/libraries/mbed/targets/cmsis/TARGET_NXP/TARGET_LPC11UXX/cmsis_nvic.o \ - $(OBJDIR)/libraries/mbed/targets/cmsis/TARGET_NXP/TARGET_LPC11UXX/system_LPC11Uxx.o \ - $(OBJDIR)/libraries/mbed/targets/hal/TARGET_NXP/TARGET_LPC11UXX/port_api.o \ - $(OBJDIR)/libraries/mbed/targets/hal/TARGET_NXP/TARGET_LPC11UXX/spi_api.o \ - $(OBJDIR)/libraries/mbed/targets/hal/TARGET_NXP/TARGET_LPC11UXX/analogin_api.o \ - $(OBJDIR)/libraries/mbed/targets/hal/TARGET_NXP/TARGET_LPC11UXX/gpio_api.o \ - $(OBJDIR)/libraries/mbed/targets/hal/TARGET_NXP/TARGET_LPC11UXX/gpio_irq_api.o \ - $(OBJDIR)/libraries/mbed/targets/hal/TARGET_NXP/TARGET_LPC11UXX/serial_api.o \ - $(OBJDIR)/libraries/mbed/targets/hal/TARGET_NXP/TARGET_LPC11UXX/i2c_api.o \ - $(OBJDIR)/libraries/mbed/targets/hal/TARGET_NXP/TARGET_LPC11UXX/pwmout_api.o \ - $(OBJDIR)/libraries/mbed/targets/hal/TARGET_NXP/TARGET_LPC11UXX/sleep.o \ - $(OBJDIR)/libraries/mbed/targets/hal/TARGET_NXP/TARGET_LPC11UXX/pinmap.o \ - $(OBJDIR)/libraries/mbed/targets/hal/TARGET_NXP/TARGET_LPC11UXX/us_ticker.o \ - $(OBJDIR)/libraries/mbed/common/board.o \ - $(OBJDIR)/libraries/mbed/common/mbed_interface.o \ - $(OBJDIR)/libraries/mbed/common/exit.o \ - $(OBJDIR)/libraries/mbed/common/rtc_time.o \ - $(OBJDIR)/libraries/mbed/common/us_ticker_api.o \ - $(OBJDIR)/libraries/mbed/common/pinmap_common.o \ - $(OBJDIR)/libraries/mbed/common/error.o \ - $(OBJDIR)/libraries/mbed/common/gpio.o \ - $(OBJDIR)/libraries/mbed/common/semihost_api.o \ - $(OBJDIR)/libraries/mbed/common/wait_api.o \ - $(OBJDIR)/libraries/mbed/common/RawSerial.o \ - $(OBJDIR)/libraries/mbed/common/Ticker.o \ - $(OBJDIR)/libraries/mbed/common/FilePath.o \ - $(OBJDIR)/libraries/mbed/common/I2C.o \ + $(OBJDIR)/libraries/mbed/common/BusIn.o \ + $(OBJDIR)/libraries/mbed/common/BusInOut.o \ + $(OBJDIR)/libraries/mbed/common/BusOut.o \ + $(OBJDIR)/libraries/mbed/common/CAN.o \ + $(OBJDIR)/libraries/mbed/common/CallChain.o \ + $(OBJDIR)/libraries/mbed/common/Ethernet.o \ $(OBJDIR)/libraries/mbed/common/FileBase.o \ - $(OBJDIR)/libraries/mbed/common/retarget.o \ - $(OBJDIR)/libraries/mbed/common/Serial.o \ - $(OBJDIR)/libraries/mbed/common/Stream.o \ + $(OBJDIR)/libraries/mbed/common/FileLike.o \ + $(OBJDIR)/libraries/mbed/common/FilePath.o \ $(OBJDIR)/libraries/mbed/common/FileSystemLike.o \ - $(OBJDIR)/libraries/mbed/common/CallChain.o \ - $(OBJDIR)/libraries/mbed/common/InterruptManager.o \ - $(OBJDIR)/libraries/mbed/common/SerialBase.o \ - $(OBJDIR)/libraries/mbed/common/BusInOut.o \ - $(OBJDIR)/libraries/mbed/common/SPISlave.o \ - $(OBJDIR)/libraries/mbed/common/I2CSlave.o \ $(OBJDIR)/libraries/mbed/common/FunctionPointer.o \ - $(OBJDIR)/libraries/mbed/common/Timer.o \ + $(OBJDIR)/libraries/mbed/common/I2C.o \ + $(OBJDIR)/libraries/mbed/common/I2CSlave.o \ + $(OBJDIR)/libraries/mbed/common/InterruptIn.o \ + $(OBJDIR)/libraries/mbed/common/InterruptManager.o \ + $(OBJDIR)/libraries/mbed/common/LocalFileSystem.o \ + $(OBJDIR)/libraries/mbed/common/RawSerial.o \ $(OBJDIR)/libraries/mbed/common/SPI.o \ + $(OBJDIR)/libraries/mbed/common/SPISlave.o \ + $(OBJDIR)/libraries/mbed/