From 63fd8ab89b9c4cdddcfd91aacbf12871aeff556e Mon Sep 17 00:00:00 2001 From: inmarket Date: Mon, 6 Oct 2014 15:50:19 +1000 Subject: Update support for ChibiOS v3 to the current repository. Update Make system to match. Add ability to make to a library rather than a program Stop ignoring objcode invalid format errors Multiple make tidy ups --- tools/gmake_scripts/os_chibios.mk | 31 ++++++++++++++++++++++++++----- 1 file changed, 26 insertions(+), 5 deletions(-) (limited to 'tools/gmake_scripts/os_chibios.mk') diff --git a/tools/gmake_scripts/os_chibios.mk b/tools/gmake_scripts/os_chibios.mk index b8205dd3..f583d186 100644 --- a/tools/gmake_scripts/os_chibios.mk +++ b/tools/gmake_scripts/os_chibios.mk @@ -12,6 +12,7 @@ # CHIBIOS: The location of the ChibiOS code eg CHIBIOS=../chibios # CHIBIOS_PLATFORM The name of the ChibiOS platform eg CHIBIOS_PLATFORM=AT91SAM7 # CHIBIOS_PORT The name of the ChibiOS port eg CHIBIOS_PORT=GCC/ARM/AT91SAM7 +# CHIBIOS_CPUCLASS The class of the CPU. Only required for ChibiOS v3 eg CHIBIOS_CPUCLASS=ARMCMx # # Optional: @@ -20,6 +21,8 @@ # CHIBIOS_BOARD The name of the ChibiOS board eg CHIBIOS_BOARD=OLIMEX_SAM7_EX256 - if not specified you must include equivalent code yourself # CHIBIOS_STM32LIB Use the STM32 library source for drivers instead of native drivers (yes or no) - default no # CHIBIOS_VERSION Which version of ChibiOS is this (2 or 3) - default is 2 +# CHIBIOS_PROCESS_STACKSIZE Size of the ChibiOS process stack. Only useful if the link script supports it - default is 0x400 +# CHIBIOS_EXCEPTIONS_STACKSIZE Size of the ChibiOS exceptopms stack. Only useful if the link script supports it - default is 0x400 # PATHLIST += CHIBIOS @@ -29,23 +32,40 @@ ifeq ($(CHIBIOS_VERSION),3) include $(CHIBIOS)/os/hal/osal/rt/osal.mk include $(CHIBIOS)/os/hal/ports/$(CHIBIOS_PLATFORM)/platform.mk include $(CHIBIOS)/os/rt/rt.mk - include $(CHIBIOS)/os/rt/ports/$(CHIBIOS_PORT).mk + include $(CHIBIOS)/os/rt/ports/$(CHIBIOS_CPUCLASS)/compilers/GCC/mk/port_$(CHIBIOS_PORT).mk + ifneq ($(CHIBIOS_BOARD),) + include $(CHIBIOS)/os/hal/boards/$(CHIBIOS_BOARD)/board.mk + endif + LIBPATH += $(CHIBIOS)/os/common/ports/$(CHIBIOS_CPUCLASS)/compilers/GCC else include $(CHIBIOS)/os/hal/hal.mk include $(CHIBIOS)/os/hal/platforms/$(CHIBIOS_PLATFORM)/platform.mk include $(CHIBIOS)/os/kernel/kernel.mk include $(CHIBIOS)/os/ports/$(CHIBIOS_PORT)/port.mk + ifneq ($(CHIBIOS_BOARD),) + include $(CHIBIOS)/boards/$(CHIBIOS_BOARD)/board.mk + endif endif -ifneq ($(CHIBIOS_BOARD),) - include $(CHIBIOS)/boards/$(CHIBIOS_BOARD)/board.mk -endif ifeq ($(LDSCRIPT),) ifneq ($(CHIBIOS_LDSCRIPT),) LDSCRIPT= $(PORTLD)/$(CHIBIOS_LDSCRIPT) endif endif +ifneq ($(LDSCRIPT),) + ifeq ($(CHIBIOS_PROCESS_STACKSIZE),) + LDFLAGS += -Wl,--defsym=__process_stack_size__=0x400 + else + LDFLAGS += -Wl,--defsym=__process_stack_size__=$(CHIBIOS_PROCESS_STACKSIZE) + endif + ifeq ($(CHIBIOS_EXCEPTIONS_STACKSIZE),) + LDFLAGS += -Wl,--defsym=__main_stack_size__=0x400 + else + LDFLAGS += -Wl,--defsym=__main_stack_size__=$(CHIBIOS_EXCEPTIONS_STACKSIZE) + endif +endif + ifeq ($(CHIBIOS_STM32LIB),yes) include $(CHIBIOS)/ext/stm32lib/stm32lib.mk SRC += $(STM32SRC) @@ -53,7 +73,7 @@ ifeq ($(CHIBIOS_STM32LIB),yes) INCPATH += $(STM32INC) endif -INCPATH += $(PORTINC) $(KERNINC) $(TESTINC) \ +INCPATH += $(PORTINC) $(KERNINC) $(TESTINC) $(OSALINC) \ $(HALINC) $(PLATFORMINC) $(BOARDINC) SRC += $(PORTSRC) \ $(KERNSRC) \ @@ -61,4 +81,5 @@ SRC += $(PORTSRC) \ $(HALSRC) \ $(PLATFORMSRC) \ $(BOARDSRC) \ + $(OSALSRC) \ $(PORTASM) -- cgit v1.2.3