update client
[mTask.git] / client / stm32 / Makefile
1 ##############################################################################
2 # Build global options
3 # NOTE: Can be overridden externally.
4 #
5
6 # Compiler options here.
7 ifeq ($(USE_OPT),)
8 USE_OPT = -O2 -ggdb -fomit-frame-pointer -falign-functions=16
9 endif
10
11 # C specific options here (added to USE_OPT).
12 ifeq ($(USE_COPT),)
13 USE_COPT =
14 endif
15
16 # C++ specific options here (added to USE_OPT).
17 ifeq ($(USE_CPPOPT),)
18 USE_CPPOPT = -fno-rtti
19 endif
20
21 # Enable this if you want the linker to remove unused code and data
22 ifeq ($(USE_LINK_GC),)
23 USE_LINK_GC = yes
24 endif
25
26 # Linker extra options here.
27 ifeq ($(USE_LDOPT),)
28 USE_LDOPT =
29 endif
30
31 # Enable this if you want link time optimizations (LTO)
32 ifeq ($(USE_LTO),)
33 USE_LTO = yes
34 endif
35
36 # If enabled, this option allows to compile the application in THUMB mode.
37 ifeq ($(USE_THUMB),)
38 USE_THUMB = yes
39 endif
40
41 # Enable this if you want to see the full log while compiling.
42 ifeq ($(USE_VERBOSE_COMPILE),)
43 USE_VERBOSE_COMPILE = no
44 endif
45
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),)
49 USE_SMART_BUILD = yes
50 endif
51
52 #
53 # Build global options
54 ##############################################################################
55
56 ##############################################################################
57 # Architecture or project specific options
58 #
59
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
64 endif
65
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
70 endif
71
72 # Enables the use of FPU (no, softfp, hard).
73 ifeq ($(USE_FPU),)
74 USE_FPU = no
75 endif
76
77 # FPU-related options.
78 ifeq ($(USE_FPU_OPT),)
79 USE_FPU_OPT = -mfloat-abi=$(USE_FPU) -mfpu=fpv5-d16
80 endif
81
82 #
83 # Architecture or project specific options
84 ##############################################################################
85
86 ##############################################################################
87 # Project, sources and paths
88 #
89
90 # Define project name here
91 PROJECT = mTask
92
93 # Imported source files and paths
94 CHIBIOS = ./ChibiOS
95 # Startup files.
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
107
108 # Define linker script file here
109 LDSCRIPT= $(STARTUPLD)/STM32F76xxI.ld
110
111 # C sources that can be compiled in ARM or THUMB mode depending on the global
112 # setting.
113 CSRC = $(STARTUPSRC) \
114 $(KERNSRC) \
115 $(PORTSRC) \
116 $(OSALSRC) \
117 $(HALSRC) \
118 $(PLATFORMSRC) \
119 $(BOARDSRC) \
120 $(TESTSRC) \
121 $(CHIBIOS)/os/hal/lib/streams/memstreams.c \
122 $(CHIBIOS)/os/hal/lib/streams/chprintf.c
123
124 # C++ sources that can be compiled in ARM or THUMB mode depending on the global
125 # setting.
126 CPPSRC =
127
128 # C sources to be compiled in ARM mode regardless of the global setting.
129 # NOTE: Mixing ARM and THUMB mode enables the -mthumb-interwork compiler
130 # option that results in lower performance and larger code size.
131 ACSRC =
132
133 # C++ sources to be compiled in ARM mode regardless of the global setting.
134 # NOTE: Mixing ARM and THUMB mode enables the -mthumb-interwork compiler
135 # option that results in lower performance and larger code size.
136 ACPPSRC =
137
138 # C sources to be compiled in THUMB mode regardless of the global setting.
139 # NOTE: Mixing ARM and THUMB mode enables the -mthumb-interwork compiler
140 # option that results in lower performance and larger code size.
141 TCSRC =
142
143 # C sources to be compiled in THUMB mode regardless of the global setting.
144 # NOTE: Mixing ARM and THUMB mode enables the -mthumb-interwork compiler
145 # option that results in lower performance and larger code size.
146 TCPPSRC =
147
148 # List ASM source files here
149 ASMSRC =
150 ASMXSRC = $(STARTUPASM) $(PORTASM) $(OSALASM)
151
152 INCDIR = $(CHIBIOS)/os/license \
153 $(STARTUPINC) $(KERNINC) $(PORTINC) $(OSALINC) \
154 $(HALINC) $(PLATFORMINC) $(BOARDINC) $(TESTINC) \
155 $(CHIBIOS)/os/various
156
157 #
158 # Project, sources and paths
159 ##############################################################################
160
161 ##############################################################################
162 # Compiler settings
163 #
164
165 MCU = cortex-m7
166
167 #TRGT = arm-elf-
168 TRGT = arm-none-eabi-
169 CC = $(TRGT)gcc
170 CPPC = $(TRGT)g++
171 # Enable loading with g++ only if you need C++ runtime support.
172 # NOTE: You can use C++ even without C++ support if you are careful. C++
173 # runtime support makes code size explode.
174 LD = $(TRGT)gcc
175 #LD = $(TRGT)g++
176 CP = $(TRGT)objcopy
177 AS = $(TRGT)gcc -x assembler-with-cpp
178 AR = $(TRGT)ar
179 OD = $(TRGT)objdump
180 SZ = $(TRGT)size
181 HEX = $(CP) -O ihex
182 BIN = $(CP) -O binary
183
184 # ARM-specific options here
185 AOPT =
186
187 # THUMB-specific options here
188 TOPT = -mthumb -DTHUMB
189
190 # Define C warning options here
191 CWARN = -Wall -Wextra -Wundef -Wstrict-prototypes -Werror
192
193 # Define C++ warning options here
194 CPPWARN = -Wall -Wextra -Wundef
195
196 #
197 # Compiler settings
198 ##############################################################################
199
200 ##############################################################################
201 # Start of user section
202 #
203
204 # List all user C define here, like -D_DEBUG=1
205 UDEFS = -DSTM #-DDEBUG
206
207 # Define ASM defines here
208 UADEFS =
209
210 # List all user directories here
211 UINCDIR =
212
213 # List the user directory to look for the libraries here
214 ULIBDIR =
215
216 # List all user libraries here
217 ULIBS =
218
219 # End of user defines
220 ##############################################################################
221
222 RULESPATH = $(CHIBIOS)/os/common/startup/ARMCMx/compilers/GCC
223 include $(RULESPATH)/rules.mk
224
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 \
230 -c init\
231 -c "reset halt"\
232 -c "flash write_image erase "$<" 0x08000000"\
233 -c "reset run"\
234 -c shutdown