diff options
Diffstat (limited to 'tmk_core/chibios.mk')
| -rw-r--r-- | tmk_core/chibios.mk | 154 |
1 files changed, 154 insertions, 0 deletions
diff --git a/tmk_core/chibios.mk b/tmk_core/chibios.mk new file mode 100644 index 000000000..0abb933a8 --- /dev/null +++ b/tmk_core/chibios.mk | |||
| @@ -0,0 +1,154 @@ | |||
| 1 | # Hey Emacs, this is a -*- makefile -*- | ||
| 2 | ############################################################################## | ||
| 3 | # Architecture or project specific options | ||
| 4 | # | ||
| 5 | |||
| 6 | # Stack size to be allocated to the Cortex-M process stack. This stack is | ||
| 7 | # the stack used by the main() thread. | ||
| 8 | ifeq ($(USE_PROCESS_STACKSIZE),) | ||
| 9 | USE_PROCESS_STACKSIZE = 0x200 | ||
| 10 | endif | ||
| 11 | |||
| 12 | # Stack size to the allocated to the Cortex-M main/exceptions stack. This | ||
| 13 | # stack is used for processing interrupts and exceptions. | ||
| 14 | ifeq ($(USE_EXCEPTIONS_STACKSIZE),) | ||
| 15 | USE_EXCEPTIONS_STACKSIZE = 0x400 | ||
| 16 | endif | ||
| 17 | |||
| 18 | # | ||
| 19 | # Architecture or project specific options | ||
| 20 | ############################################################################## | ||
| 21 | |||
| 22 | ############################################################################## | ||
| 23 | # Project, sources and paths | ||
| 24 | # | ||
| 25 | |||
| 26 | # Imported source files and paths | ||
| 27 | CHIBIOS = $(TOP_DIR)/lib/chibios | ||
| 28 | CHIBIOS_CONTRIB = $(TOP_DIR)/lib/chibios-contrib | ||
| 29 | # Startup files. Try a few different locations, for compability with old versions and | ||
| 30 | # for things hardware in the contrib repository | ||
| 31 | STARTUP_MK = $(CHIBIOS)/os/common/ports/ARMCMx/compilers/GCC/mk/startup_$(MCU_STARTUP).mk | ||
| 32 | ifeq ("$(wildcard $(STARTUP_MK))","") | ||
| 33 | STARTUP_MK = $(CHIBIOS)/os/common/startup/ARMCMx/compilers/GCC/mk/startup_$(MCU_STARTUP).mk | ||
| 34 | ifeq ("$(wildcard $(STARTUP_MK))","") | ||
| 35 | STARTUP_MK = $(CHIBIOS_CONTRIB)/os/common/startup/ARMCMx/compilers/GCC/mk/startup_$(MCU_STARTUP).mk | ||
| 36 | endif | ||
| 37 | endif | ||
| 38 | include $(STARTUP_MK) | ||
| 39 | # HAL-OSAL files (optional). | ||
| 40 | include $(CHIBIOS)/os/hal/hal.mk | ||
| 41 | |||
| 42 | PLATFORM_MK = $(CHIBIOS)/os/hal/ports/$(MCU_FAMILY)/$(MCU_SERIES)/platform.mk | ||
| 43 | ifeq ("$(wildcard $(PLATFORM_MK))","") | ||
| 44 | PLATFORM_MK = $(CHIBIOS_CONTRIB)/os/hal/ports/$(MCU_FAMILY)/$(MCU_SERIES)/platform.mk | ||
| 45 | endif | ||
| 46 | include $(PLATFORM_MK) | ||
| 47 | |||
| 48 | |||
| 49 | BOARD_MK = $(KEYBOARD_PATH)/boards/$(BOARD)/board.mk | ||
| 50 | ifeq ("$(wildcard $(BOARD_MK))","") | ||
| 51 | BOARD_MK = $(CHIBIOS)/os/hal/boards/$(BOARD)/board.mk | ||
| 52 | ifeq ("$(wildcard $(BOARD_MK))","") | ||
| 53 | BOARD_MK = $(CHIBIOS_CONTRIB)/os/hal/boards/$(BOARD)/board.mk | ||
| 54 | endif | ||
| 55 | endif | ||
| 56 | include $(BOARD_MK) | ||
| 57 | include $(CHIBIOS)/os/hal/osal/rt/osal.mk | ||
| 58 | # RTOS files (optional). | ||
| 59 | include $(CHIBIOS)/os/rt/rt.mk | ||
| 60 | # Compability with old version | ||
| 61 | PORT_V = $(CHIBIOS)/os/rt/ports/ARMCMx/compilers/GCC/mk/port_v$(ARMV)m.mk | ||
| 62 | ifeq ("$(wildcard $(PORT_V))","") | ||
| 63 | PORT_V = $(CHIBIOS)/os/common/ports/ARMCMx/compilers/GCC/mk/port_v$(ARMV)m.mk | ||
| 64 | endif | ||
| 65 | include $(PORT_V) | ||
| 66 | # Other files (optional). | ||
| 67 | include $(CHIBIOS)/os/hal/lib/streams/streams.mk | ||
| 68 | |||
| 69 | RULESPATH = $(CHIBIOS)/os/common/ports/ARMCMx/compilers/GCC | ||
| 70 | ifeq ("$(wildcard $(RULESPATH)/rules.mk)","") | ||
| 71 | RULESPATH = $(CHIBIOS)/os/common/startup/ARMCMx/compilers/GCC | ||
| 72 | endif | ||
| 73 | |||
| 74 | # Define linker script file here | ||
| 75 | ifneq ("$(wildcard $(KEYBOARD_PATH)/ld/$(MCU_LDSCRIPT).ld)","") | ||
| 76 | LDSCRIPT = $(KEYBOARD_PATH)/ld/$(MCU_LDSCRIPT).ld | ||
| 77 | else | ||
| 78 | LDSCRIPT = $(STARTUPLD)/$(MCU_LDSCRIPT).ld | ||
| 79 | endif | ||
| 80 | |||
| 81 | CHIBISRC = $(STARTUPSRC) \ | ||
| 82 | $(KERNSRC) \ | ||
| 83 | $(PORTSRC) \ | ||
| 84 | $(OSALSRC) \ | ||
| 85 | $(HALSRC) \ | ||
| 86 | $(PLATFORMSRC) \ | ||
| 87 | $(BOARDSRC) \ | ||
| 88 | $(STREAMSSRC) \ | ||
| 89 | $(STARTUPASM) \ | ||
| 90 | $(PORTASM) \ | ||
| 91 | $(OSALASM) | ||
| 92 | |||
| 93 | SRC += $(patsubst $(TOP_DIR)/%,%,$(CHIBISRC)) | ||
| 94 | |||
| 95 | EXTRAINCDIRS += $(CHIBIOS)/os/license \ | ||
| 96 | $(STARTUPINC) $(KERNINC) $(PORTINC) $(OSALINC) \ | ||
| 97 | $(HALINC) $(PLATFORMINC) $(BOARDINC) $(TESTINC) \ | ||
| 98 | $(STREAMSINC) $(CHIBIOS)/os/various | ||
| 99 | |||
| 100 | # | ||
| 101 | # Project, sources and paths | ||
| 102 | ############################################################################## | ||
| 103 | |||
| 104 | |||
| 105 | ############################################################################## | ||
| 106 | # Compiler settings | ||
| 107 | # | ||
| 108 | CC = arm-none-eabi-gcc | ||
| 109 | OBJCOPY = arm-none-eabi-objcopy | ||
| 110 | OBJDUMP = arm-none-eabi-objdump | ||
| 111 | SIZE = arm-none-eabi-size | ||
| 112 | AR = arm-none-eabi-ar | ||
| 113 | NM = arm-none-eabi-nm | ||
| 114 | HEX = $(OBJCOPY) -O $(FORMAT) | ||
| 115 | EEP = | ||
| 116 | |||
| 117 | THUMBFLAGS = -DTHUMB_PRESENT -mno-thumb-interwork -DTHUMB_NO_INTERWORKING -mthumb -DTHUMB | ||
| 118 | |||
| 119 | COMPILEFLAGS += -fomit-frame-pointer | ||
| 120 | COMPILEFLAGS += -falign-functions=16 | ||
| 121 | COMPILEFLAGS += -ffunction-sections | ||
| 122 | COMPILEFLAGS += -fdata-sections | ||
| 123 | COMPILEFLAGS += -fno-common | ||
| 124 | COMPILEFLAGS += $(THUMBFLAGS) | ||
| 125 | |||
| 126 | CFLAGS += $(COMPILEFLAGS) | ||
| 127 | |||
| 128 | ASFLAGS += $(THUMBFLAGS) | ||
| 129 | |||
| 130 | CPPFLAGS += $(COMPILEFLAGS) | ||
| 131 | CPPFLAGS += -fno-rtti | ||
| 132 | |||
| 133 | LDFLAGS +=-Wl,--gc-sections | ||
| 134 | LDFLAGS += -mno-thumb-interwork -mthumb | ||
| 135 | LDSYMBOLS =,--defsym=__process_stack_size__=$(USE_PROCESS_STACKSIZE) | ||
| 136 | LDSYMBOLS :=$(LDSYMBOLS),--defsym=__main_stack_size__=$(USE_EXCEPTIONS_STACKSIZE) | ||
| 137 | LDFLAGS += -Wl,--script=$(LDSCRIPT)$(LDSYMBOLS) | ||
| 138 | |||
| 139 | OPT_DEFS += -DPROTOCOL_CHIBIOS | ||
| 140 | |||
| 141 | MCUFLAGS = -mcpu=$(MCU) | ||
| 142 | |||
| 143 | DEBUG = gdb | ||
| 144 | |||
| 145 | # Define ASM defines here | ||
| 146 | # bootloader definitions may be used in the startup .s file | ||
| 147 | ifneq ("$(wildcard $(KEYBOARD_PATH)/bootloader_defs.h)","") | ||
| 148 | OPT_DEFS += -include $(KEYBOARD_PATH)/bootloader_defs.h | ||
| 149 | else ifneq ("$(wildcard $(KEYBOARD_PATH)/boards/$(BOARD)/bootloader_defs.h)","") | ||
| 150 | OPT_DEFS += -include $(KEYBOARD_PATH)/boards/$(BOARD)/bootloader_defs.h | ||
| 151 | endif | ||
| 152 | |||
| 153 | # List any extra directories to look for libraries here. | ||
| 154 | EXTRALIBDIRS = $(RULESPATH)/ld \ No newline at end of file | ||
