Merge commit 'a074364c37' as 'tmk_core'

This commit is contained in:
tmk 2015-04-10 01:32:04 +09:00
commit 1a02ebcc61
533 changed files with 102049 additions and 0 deletions

View file

@ -0,0 +1,81 @@
OBJECTS += \
$(OBJDIR)/common/action.o \
$(OBJDIR)/common/action_tapping.o \
$(OBJDIR)/common/action_macro.o \
$(OBJDIR)/common/action_layer.o \
$(OBJDIR)/common/action_util.o \
$(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 \
$(OBJDIR)/common/mbed/xprintf.o \
$(OBJDIR)/common/mbed/bootloader.o \
INCLUDE_PATHS += \
-I$(TMK_DIR)/common \
-I$(TMK_DIR)/protocol
CC_FLAGS += -include $(CONFIG_H)
# Option modules
ifdef BOOTMAGIC_ENABLE
$(error Not Supported)
OBJECTS += $(OBJDIR)/common/bootmagic.o
OBJECTS += $(OBJDIR)/common/mbed/eeprom.o
OPT_DEFS += -DBOOTMAGIC_ENABLE
endif
ifdef MOUSEKEY_ENABLE
OBJECTS += $(OBJDIR)/common/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/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/sleep_led.c
OPT_DEFS += -DSLEEP_LED_ENABLE
OPT_DEFS += -DNO_SUSPEND_POWER_DOWN
endif
ifdef BACKLIGHT_ENABLE
$(error Not Supported)
SRC += common/backlight.c
OPT_DEFS += -DBACKLIGHT_ENABLE
endif
ifdef KEYMAP_SECTION_ENABLE
$(error Not Supported)
OPT_DEFS += -DKEYMAP_SECTION_ENABLE
EXTRALDFLAGS = -Wl,-L$(TMK_DIR),-Tldscript_keymap_avr5.x
endif

89
tmk_core/tool/mbed/gcc.mk Normal file
View file

@ -0,0 +1,89 @@
# 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
CPP = $(GCC_BIN)arm-none-eabi-g++
LD = $(GCC_BIN)arm-none-eabi-gcc
OBJCOPY = $(GCC_BIN)arm-none-eabi-objcopy
OBJDUMP = $(GCC_BIN)arm-none-eabi-objdump
SIZE = $(GCC_BIN)arm-none-eabi-size
CHKSUM = $(TMK_DIR)/tool/mbed/lpc-vector-checksum
CC_FLAGS += \
$(CPU) \
-c \
-g \
-fno-common \
-fmessage-length=0 \
-Wall \
-fno-exceptions \
-ffunction-sections \
-fdata-sections \
-fomit-frame-pointer
CC_FLAGS += -MMD -MP
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
ifeq ($(DEBUG), 1)
CC_FLAGS += -DDEBUG -O0
else
CC_FLAGS += -DNDEBUG -Os
endif
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)
rm -fr $(OBJDIR)
$(OBJDIR)/%.o: %.s
mkdir -p $(@D)
$(AS) $(CPU) -o $@ $<
$(OBJDIR)/%.o: %.c
mkdir -p $(@D)
$(CC) $(CC_FLAGS) $(CC_SYMBOLS) -std=gnu99 $(INCLUDE_PATHS) -o $@ $<
$(OBJDIR)/%.o: %.cpp
mkdir -p $(@D)
$(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)
$(SIZE) $@
$(OBJDIR)/$(PROJECT).bin: $(OBJDIR)/$(PROJECT).elf
@$(OBJCOPY) -O binary $< $@
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 $< $@
$(OBJDIR)/$(PROJECT).lst: $(OBJDIR)/$(PROJECT).elf
@$(OBJDUMP) -Sdh $< > $@
lst: $(OBJDIR)/$(PROJECT).lst
size:
$(SIZE) $(OBJDIR)/$(PROJECT).elf
prog: $(OBJDIR)/$(PROJECT).bin
@echo "Program..."
ifneq ($(shell mount | grep 'CRP DISABLD'),)
umount /dev/nxpisp >/dev/null 2>&1
endif
dd if=$< of=/dev/nxpisp seek=4
DEPS = $(OBJECTS:.o=.d) $(SYS_OBJECTS:.o=.d)
-include $(DEPS)

View file

@ -0,0 +1,99 @@
/***************************************************************************
* https://github.com/dhylands/projects/blob/master/lpc/lpc-vector-checksum/lpc-vector-checksum.c
*
* Copyright (c) 2012 by Dave Hylands
* All Rights Reserved
*
* Permission is granted to any individual or institution to use, copy,
* modify, or redistribute this file so long as it is not sold for profit,
* and that this copyright notice is retained.
*
***************************************************************************
*
* This program calculates the vector checksum used in LPC17xx binary
* images.
*
* Usage: lpc-vector-checksum file
*
***************************************************************************/
#include <stdio.h>
#include <stdlib.h>
#include <stdint.h>
#include <errno.h>
#include <string.h>
/***************************************************************************/
/**
* update_vector_checksum
*
* The algorithim is to write the checksum such that the checksum of the
* first 8 words is equal to zero.
*
* The LPC1768 uses little-endian, and this particular routine assumes
* that it's running on a little-endian architecture.
*/
static int update_vector_checksum( const char *filename )
{
uint32_t sum;
uint32_t header[8];
FILE *fs;
int i;
if (( fs = fopen( filename, "r+b" )) == NULL )
{
fprintf( stderr, "Unable to open '%s' for reading/writing (%d): %s\n",
filename, errno, strerror( errno ));
return 0;
}
if ( fread( header, sizeof( header ), 1, fs ) != 1 )
{
fprintf( stderr, "Failed to read header from '%s' (perhaps the file is too small?)",
filename );
fclose( fs );
return 0;
}
sum = 0;
for ( i = 0; i < 7; i++ )
{
sum += header[i];
}
printf( "sum = 0x%08x, value to write = 0x%08x\n", sum, -sum );
/* write back the checksum to location 7
* http://sigalrm.blogspot.jp/2011/10/cortex-m3-exception-vector-checksum.html
*/
fseek(fs, 0x1c, SEEK_SET);
sum = -sum;
fwrite(&sum, 4, 1, fs);
fclose( fs );
return 1;
}
/***************************************************************************/
/**
* main
*/
int main( int argc, char **argv )
{
int arg;
if ( argc < 2)
{
fprintf( stderr, "Usage: lpc-vector-checksum file ...\n" );
exit( 1 );
}
for ( arg = 1; arg < argc; arg++ )
{
update_vector_checksum( argv[ arg ]);
}
exit( 0 );
return 0;
}

View file

@ -0,0 +1,50 @@
# 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/USBDevice/USBDevice/USBHAL_LPC11U.o \
$(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

View file

@ -0,0 +1,85 @@
# based on Makefile exported form mbed.org
# see http://mbed.org/handbook/Exporting-to-GCC-ARM-Embedded
OBJECTS += \
$(OBJDIR)/libraries/mbed/common/gpio.o \
$(OBJDIR)/libraries/mbed/common/us_ticker_api.o \
$(OBJDIR)/libraries/mbed/common/wait_api.o \
$(OBJDIR)/libraries/USBDevice/USBDevice/USBDevice.o
# $(OBJDIR)/libraries/mbed/common/assert.o \
# $(OBJDIR)/libraries/mbed/common/board.o \
# $(OBJDIR)/libraries/mbed/common/BusIn.o \
# $(OBJDIR)/libraries/mbed/common/BusInOut.o \
# $(OBJDIR)/libraries/mbed/common/BusOut.o \
# $(OBJDIR)/libraries/mbed/common/CallChain.o \
# $(OBJDIR)/libraries/mbed/common/CAN.o \
# $(OBJDIR)/libraries/mbed/common/error.o \
# $(OBJDIR)/libraries/mbed/common/Ethernet.o \
# $(OBJDIR)/libraries/mbed/common/exit.o \
# $(OBJDIR)/libraries/mbed/common/FileBase.o \
# $(OBJDIR)/libraries/mbed/common/FileLike.o \
# $(OBJDIR)/libraries/mbed/common/FilePath.o \
# $(OBJDIR)/libraries/mbed/common/FileSystemLike.o \
# $(OBJDIR)/libraries/mbed/common/FunctionPointer.o \
# $(OBJDIR)/libraries/mbed/common/gpio.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/mbed_interface.o \
# $(OBJDIR)/libraries/mbed/common/pinmap_common.o \
# $(OBJDIR)/libraries/mbed/common/RawSerial.o \
# $(OBJDIR)/libraries/mbed/common/retarget.o \
# $(OBJDIR)/libraries/mbed/common/rtc_time.o \
# $(OBJDIR)/libraries/mbed/common/semihost_api.o \
# $(OBJDIR)/libraries/mbed/common/SerialBase.o \
# $(OBJDIR)/libraries/mbed/common/Serial.o \
# $(OBJDIR)/libraries/mbed/common/SPI.o \
# $(OBJDIR)/libraries/mbed/common/SPISlave.o \
# $(OBJDIR)/libraries/mbed/common/Stream.o \
# $(OBJDIR)/libraries/mbed/common/Ticker.o \
# $(OBJDIR)/libraries/mbed/common/Timeout.o \
# $(OBJDIR)/libraries/mbed/common/TimerEvent.o \
# $(OBJDIR)/libraries/mbed/common/Timer.o \
# $(OBJDIR)/libraries/mbed/common/us_ticker_api.o \
# $(OBJDIR)/libraries/mbed/common/wait_api.o \
# $(OBJDIR)/libraries/USBDevice/USBAudio/USBAudio.o \
# $(OBJDIR)/libraries/USBDevice/USBDevice/USBDevice.o \
# $(OBJDIR)/libraries/USBDevice/USBDevice/USBHAL_KL25Z.o \
# $(OBJDIR)/libraries/USBDevice/USBDevice/USBHAL_LPC11U.o \
# $(OBJDIR)/libraries/USBDevice/USBDevice/USBHAL_LPC17.o \
# $(OBJDIR)/libraries/USBDevice/USBDevice/USBHAL_LPC40.o \
# $(OBJDIR)/libraries/USBDevice/USBDevice/USBHAL_RZ_A1H.o \
# $(OBJDIR)/libraries/USBDevice/USBDevice/USBHAL_STM32F4.o \
# $(OBJDIR)/libraries/USBDevice/USBHID/USBHID.o \
# $(OBJDIR)/libraries/USBDevice/USBHID/USBKeyboard.o \
# $(OBJDIR)/libraries/USBDevice/USBHID/USBMouseKeyboard.o \
# $(OBJDIR)/libraries/USBDevice/USBHID/USBMouse.o \
# $(OBJDIR)/libraries/USBDevice/USBMIDI/USBMIDI.o \
# $(OBJDIR)/libraries/USBDevice/USBMSD/USBMSD.o \
# $(OBJDIR)/libraries/USBDevice/USBSerial/USBCDC.o \
# $(OBJDIR)/libraries/USBDevice/USBSerial/USBSerial.o
INCLUDE_PATHS += \
-I$(MBED_DIR)/libraries/mbed \
-I$(MBED_DIR)/libraries/mbed/api \
-I$(MBED_DIR)/libraries/mbed/common \
-I$(MBED_DIR)/libraries/mbed/hal \
-I$(MBED_DIR)/libraries/USBDevice \
-I$(MBED_DIR)/libraries/USBDevice/USBAudio \
-I$(MBED_DIR)/libraries/USBDevice/USBDevice \
-I$(MBED_DIR)/libraries/USBDevice/USBHID \
-I$(MBED_DIR)/libraries/USBDevice/USBMIDI \
-I$(MBED_DIR)/libraries/USBDevice/USBMSD \
-I$(MBED_DIR)/libraries/USBDevice/USBSerial
# TMK mbed protocol
OBJECTS += \
$(OBJDIR)/protocol/mbed/mbed_driver.o \
$(OBJDIR)/protocol/mbed/HIDKeyboard.o
INCLUDE_PATHS += \
-I$(TMK_DIR)/protocol/mbed