221 lines
6.4 KiB
Makefile
221 lines
6.4 KiB
Makefile
|
##############################################################################
|
||
|
# Build global options
|
||
|
# NOTE: Can be overridden externally.
|
||
|
#
|
||
|
|
||
|
# Compiler options here.
|
||
|
ifeq ($(USE_OPT),)
|
||
|
#-fno-inline
|
||
|
# Don't pay attention to the inline keyword. Normally this option is used to keep the compiler from expanding any functions inline. Note that if you are not optimizing, no functions can be expanded inline.
|
||
|
#-finline-functions
|
||
|
# Integrate all simple functions into their callers. The compiler heuristically decides which functions are simple enough to be worth integrating in this way.
|
||
|
# If all calls to a given function are integrated, and the function is declared static, then the function is normally not output as assembler code in its own right.
|
||
|
# Enabled at level '-O3'.
|
||
|
|
||
|
USE_OPT = -O0 -ggdb -fomit-frame-pointer -falign-functions=16
|
||
|
#USE_OPT = -O1 -ggdb -fomit-frame-pointer -falign-functions=16 -fno-inline
|
||
|
#USE_OPT = -O2 -ggdb -fomit-frame-pointer -falign-functions=16 -fno-strict-aliasing
|
||
|
#USE_OPT = -O3 -ggdb -fomit-frame-pointer -falign-functions=16
|
||
|
#USE_OPT = -Os -ggdb -fomit-frame-pointer -falign-functions=16
|
||
|
endif
|
||
|
|
||
|
# C++ specific options here (added to USE_OPT).
|
||
|
ifeq ($(USE_CPPOPT),)
|
||
|
USE_CPPOPT = -fno-rtti
|
||
|
endif
|
||
|
|
||
|
# Enable this if you want the linker to remove unused code and data
|
||
|
ifeq ($(USE_LINK_GC),)
|
||
|
USE_LINK_GC = yes
|
||
|
endif
|
||
|
|
||
|
# If enabled, this option allows to compile the application in THUMB mode.
|
||
|
ifeq ($(USE_THUMB),)
|
||
|
USE_THUMB = yes
|
||
|
endif
|
||
|
|
||
|
# Enable register caching optimization (read documentation).
|
||
|
ifeq ($(USE_CURRP_CACHING),)
|
||
|
USE_CURRP_CACHING = no
|
||
|
endif
|
||
|
|
||
|
#
|
||
|
# Build global options
|
||
|
##############################################################################
|
||
|
|
||
|
##############################################################################
|
||
|
# Architecture or project specific options
|
||
|
#
|
||
|
|
||
|
# Enable this if you really want to use the STM FWLib.
|
||
|
ifeq ($(USE_FWLIB),)
|
||
|
USE_FWLIB = no
|
||
|
endif
|
||
|
|
||
|
#
|
||
|
# Architecture or project specific options
|
||
|
##############################################################################
|
||
|
|
||
|
##############################################################################
|
||
|
# Project, sources and paths
|
||
|
#
|
||
|
|
||
|
# Define project name here
|
||
|
PROJECT = ch
|
||
|
|
||
|
# Imported source files
|
||
|
CHIBIOS = ../../..
|
||
|
include $(CHIBIOS)/boards/OLIMEX_STM32_P103/board.mk
|
||
|
include $(CHIBIOS)/os/hal/platforms/STM32F1xx/platform.mk
|
||
|
include $(CHIBIOS)/os/hal/hal.mk
|
||
|
include $(CHIBIOS)/os/ports/GCC/ARMCMx/STM32F1xx/port.mk
|
||
|
include $(CHIBIOS)/os/kernel/kernel.mk
|
||
|
#include $(CHIBIOS)/test/test.mk
|
||
|
|
||
|
# Define linker script file here
|
||
|
LDSCRIPT= $(PORTLD)/STM32F103xB.ld
|
||
|
|
||
|
# C sources that can be compiled in ARM or THUMB mode depending on the global
|
||
|
# setting.
|
||
|
CSRC = $(PORTSRC) \
|
||
|
$(KERNSRC) \
|
||
|
$(TESTSRC) \
|
||
|
$(HALSRC) \
|
||
|
$(PLATFORMSRC) \
|
||
|
$(BOARDSRC) \
|
||
|
$(CHIBIOS)/os/various/evtimer.c \
|
||
|
$(CHIBIOS)/os/various/syscalls.c \
|
||
|
main.c \
|
||
|
|
||
|
|
||
|
# C++ sources that can be compiled in ARM or THUMB mode depending on the global
|
||
|
# setting.
|
||
|
CPPSRC =
|
||
|
|
||
|
# C sources to be compiled in ARM mode regardless of the global setting.
|
||
|
# NOTE: Mixing ARM and THUMB mode enables the -mthumb-interwork compiler
|
||
|
# option that results in lower performance and larger code size.
|
||
|
ACSRC =
|
||
|
|
||
|
# C++ sources to be compiled in ARM mode regardless of the global setting.
|
||
|
# NOTE: Mixing ARM and THUMB mode enables the -mthumb-interwork compiler
|
||
|
# option that results in lower performance and larger code size.
|
||
|
ACPPSRC =
|
||
|
|
||
|
# C sources to be compiled in THUMB mode regardless of the global setting.
|
||
|
# NOTE: Mixing ARM and THUMB mode enables the -mthumb-interwork compiler
|
||
|
# option that results in lower performance and larger code size.
|
||
|
TCSRC =
|
||
|
|
||
|
# C sources to be compiled in THUMB mode regardless of the global setting.
|
||
|
# NOTE: Mixing ARM and THUMB mode enables the -mthumb-interwork compiler
|
||
|
# option that results in lower performance and larger code size.
|
||
|
TCPPSRC =
|
||
|
|
||
|
# List ASM source files here
|
||
|
ASMSRC = $(PORTASM)
|
||
|
|
||
|
INCDIR = $(PORTINC) $(KERNINC) $(TESTINC) \
|
||
|
$(HALINC) $(PLATFORMINC) $(BOARDINC) \
|
||
|
$(CHIBIOS)/os/various
|
||
|
|
||
|
#
|
||
|
# Project, sources and paths
|
||
|
##############################################################################
|
||
|
|
||
|
##############################################################################
|
||
|
# Compiler settings
|
||
|
#
|
||
|
|
||
|
MCU = cortex-m3
|
||
|
|
||
|
#TRGT = arm-elf-
|
||
|
TRGT = arm-none-eabi-
|
||
|
CC = $(TRGT)gcc
|
||
|
CPPC = $(TRGT)g++
|
||
|
# Enable loading with g++ only if you need C++ runtime support.
|
||
|
# NOTE: You can use C++ even without C++ support if you are careful. C++
|
||
|
# runtime support makes code size explode.
|
||
|
|
||
|
LD = $(TRGT)gcc
|
||
|
#LD = $(TRGT)g++
|
||
|
CP = $(TRGT)objcopy
|
||
|
AS = $(TRGT)gcc -x assembler-with-cpp
|
||
|
OD = $(TRGT)objdump
|
||
|
HEX = $(CP) -O ihex
|
||
|
BIN = $(CP) -O binary
|
||
|
|
||
|
# ARM-specific options here
|
||
|
AOPT =
|
||
|
|
||
|
# THUMB-specific options here
|
||
|
TOPT = -mthumb -DTHUMB
|
||
|
|
||
|
# Define C warning options here
|
||
|
CWARN = -Wall -Wextra -Wstrict-prototypes
|
||
|
|
||
|
# Define C++ warning options here
|
||
|
CPPWARN = -Wall -Wextra
|
||
|
|
||
|
#
|
||
|
# Compiler settings
|
||
|
##############################################################################
|
||
|
|
||
|
##############################################################################
|
||
|
# Start of default section
|
||
|
#
|
||
|
|
||
|
# List all default C defines here, like -D_DEBUG=1
|
||
|
DDEFS =
|
||
|
|
||
|
# List all default ASM defines here, like -D_DEBUG=1
|
||
|
DADEFS =
|
||
|
|
||
|
# List all default directories to look for include files here
|
||
|
DINCDIR =
|
||
|
|
||
|
# List the default directory to look for the libraries here
|
||
|
DLIBDIR =
|
||
|
|
||
|
# List all default libraries here
|
||
|
DLIBS =
|
||
|
|
||
|
#
|
||
|
# End of default section
|
||
|
##############################################################################
|
||
|
|
||
|
##############################################################################
|
||
|
# Start of user section
|
||
|
#
|
||
|
|
||
|
# List all user C define here, like -D_DEBUG=1
|
||
|
UDEFS =
|
||
|
|
||
|
# Define ASM defines here
|
||
|
UADEFS =
|
||
|
|
||
|
# List all user directories here
|
||
|
UINCDIR =
|
||
|
|
||
|
# List the user directory to look for the libraries here
|
||
|
ULIBDIR =
|
||
|
|
||
|
# List all user libraries here
|
||
|
ULIBS =
|
||
|
|
||
|
#
|
||
|
# End of user defines
|
||
|
##############################################################################
|
||
|
|
||
|
ifeq ($(USE_FWLIB),yes)
|
||
|
include $(CHIBIOS)/ext/stm32lib/stm32lib.mk
|
||
|
CSRC += $(STM32SRC)
|
||
|
INCDIR += $(STM32INC)
|
||
|
USE_OPT += -DUSE_STDPERIPH_DRIVER
|
||
|
endif
|
||
|
|
||
|
include $(CHIBIOS)/os/ports/GCC/ARMCMx/rules.mk
|
||
|
|
||
|
|
||
|
|