1 ##############################################################################
3 # NOTE: Can be overridden externally.
6 # Compiler options here.
8 USE_OPT
= -O2
-ggdb
-fomit-frame-pointer
-falign-functions
=16
11 # C specific options here (added to USE_OPT).
16 # C++ specific options here (added to USE_OPT).
18 USE_CPPOPT
= -fno-rtti
21 # Enable this if you want the linker to remove unused code and data
22 ifeq ($(USE_LINK_GC
),)
26 # Linker extra options here.
31 # Enable this if you want link time optimizations (LTO)
36 # If enabled, this option allows to compile the application in THUMB mode.
41 # Enable this if you want to see the full log while compiling.
42 ifeq ($(USE_VERBOSE_COMPILE
),)
43 USE_VERBOSE_COMPILE
= no
46 # If enabled, this option makes the build process faster by not compiling
47 # modules not used in the current configuration.
48 ifeq ($(USE_SMART_BUILD
),)
53 # Build global options
54 ##############################################################################
56 ##############################################################################
57 # Architecture or project specific options
60 # Stack size to be allocated to the Cortex-M process stack. This stack is
61 # the stack used by the main() thread.
62 ifeq ($(USE_PROCESS_STACKSIZE
),)
63 USE_PROCESS_STACKSIZE
= 0x400
66 # Stack size to the allocated to the Cortex-M main/exceptions stack. This
67 # stack is used for processing interrupts and exceptions.
68 ifeq ($(USE_EXCEPTIONS_STACKSIZE
),)
69 USE_EXCEPTIONS_STACKSIZE
= 0x400
72 # Enables the use of FPU (no, softfp, hard).
77 # FPU-related options.
78 ifeq ($(USE_FPU_OPT
),)
79 USE_FPU_OPT
= -mfloat-abi
=$(USE_FPU
) -mfpu
=fpv5-d16
83 # Architecture or project specific options
84 ##############################################################################
86 ##############################################################################
87 # Project, sources and paths
90 # Define project name here
93 # Imported source files and paths
96 include $(CHIBIOS
)/os
/common
/startup
/ARMCMx
/compilers
/GCC
/mk
/startup_stm32f7xx.mk
97 # HAL-OSAL files (optional).
98 include $(CHIBIOS
)/os
/hal
/hal.mk
99 include $(CHIBIOS
)/os
/hal
/ports
/STM32
/STM32F7xx
/platform.mk
100 include $(CHIBIOS
)/os
/hal
/boards
/ST_NUCLEO144_F767ZI
/board.mk
101 include $(CHIBIOS
)/os
/hal
/osal
/rt
/osal.mk
102 # RTOS files (optional).
103 include $(CHIBIOS
)/os
/rt
/rt.mk
104 include $(CHIBIOS
)/os
/common
/ports
/ARMCMx
/compilers
/GCC
/mk
/port_v7m.mk
105 # Other files (optional).
106 include $(CHIBIOS
)/test/rt
/test.mk
108 # Define linker script file here
109 LDSCRIPT
= $(STARTUPLD
)/STM32F76xxI.
ld
111 # C sources that can be compiled in ARM or THUMB mode depending on the global
113 CSRC
= $(STARTUPSRC
) \
121 $(filter-out interface_linux.c
,$(wildcard *.c
))
123 # C++ sources that can be compiled in ARM or THUMB mode depending on the global
127 # C sources to be compiled in ARM mode regardless of the global setting.
128 # NOTE: Mixing ARM and THUMB mode enables the -mthumb-interwork compiler
129 # option that results in lower performance and larger code size.
132 # C++ sources to be compiled in ARM mode regardless of the global setting.
133 # NOTE: Mixing ARM and THUMB mode enables the -mthumb-interwork compiler
134 # option that results in lower performance and larger code size.
137 # C sources to be compiled in THUMB mode regardless of the global setting.
138 # NOTE: Mixing ARM and THUMB mode enables the -mthumb-interwork compiler
139 # option that results in lower performance and larger code size.
142 # C sources to be compiled in THUMB mode regardless of the global setting.
143 # NOTE: Mixing ARM and THUMB mode enables the -mthumb-interwork compiler
144 # option that results in lower performance and larger code size.
147 # List ASM source files here
149 ASMXSRC
= $(STARTUPASM
) $(PORTASM
) $(OSALASM
)
151 INCDIR
= $(CHIBIOS
)/os
/license \
152 $(STARTUPINC
) $(KERNINC
) $(PORTINC
) $(OSALINC
) \
153 $(HALINC
) $(PLATFORMINC
) $(BOARDINC
) $(TESTINC
) \
154 $(CHIBIOS
)/os
/various
157 # Project, sources and paths
158 ##############################################################################
160 ##############################################################################
167 TRGT
= arm-none-eabi-
170 # Enable loading with g++ only if you need C++ runtime support.
171 # NOTE: You can use C++ even without C++ support if you are careful. C++
172 # runtime support makes code size explode.
176 AS
= $(TRGT
)gcc
-x assembler-with-cpp
181 BIN
= $(CP
) -O binary
183 # ARM-specific options here
186 # THUMB-specific options here
187 TOPT
= -mthumb
-DTHUMB
189 # Define C warning options here
190 CWARN
= -Wall
-Wextra
-Wundef
-Wstrict-prototypes
-Werror
192 # Define C++ warning options here
193 CPPWARN
= -Wall
-Wextra
-Wundef
197 ##############################################################################
199 ##############################################################################
200 # Start of user section
203 # List all user C define here, like -D_DEBUG=1
204 UDEFS
= -DSTM
#-DDEBUG
206 # Define ASM defines here
209 # List all user directories here
212 # List the user directory to look for the libraries here
215 # List all user libraries here
219 # End of user defines
220 ##############################################################################
222 RULESPATH
= $(CHIBIOS
)/os
/common
/startup
/ARMCMx
/compilers
/GCC
223 include $(RULESPATH
)/rules.mk
225 flash
: build
/$(PROJECT
).bin
226 sudo
`which openocd` \
227 -f interface
/stlink-v2-1.cfg\
228 -c
"transport select hla_swd"\
229 -f target
/stm32f7x.cfg \
232 -c
"flash write_image erase "$<" 0x08000000"\