0 / 0 / 1
Регистрация: 02.08.2015
Сообщений: 69
|
|
|
|
MAKE не собирает проект
06.07.2020, 19:25. Показов 1364. Ответов 0
есть проект под avr и stm32,все в одном make файле .
не получатся собрать прошику для stm32 . подскажите что не так .
общий make:
| Code | 1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
| ###############################################################################
#
# Makefile for LXR firmware image
# Author: Patrick Dowling
#
# This makefile uses the subdirectory makefiles to build
# - cortex firmware image
# - AVR firmware image
# - FirmwareImageBuilder tool
# - Binary firmware image
#
# For the cross-platform builds, the necessary compilers (ARM, AVR) must either
# be in the path, or the installation directories can be specified using
# ARM_TOOLKIT_ROOT
# and
# AVR_TOOLKIT_ROOT
#
# TODO(pld) Additional build options can be specified using environment variables
# DESTDIR : where final binary image is written
# FIRMWARE : name of final binary image
#
###############################################################################
ifdef VERBOSE
AT :=
else
AT := @
endif
ARM_PATH=./mainboard/LxrStm32/
AVR_PATH=./front/LxrAvr/
BINPATH=./tools/bin/
DESTDIR?="./firmware\ image"/
ARM_BINARY=$(ARM_PATH)LxrStm32.bin
AVR_BINARY=$(AVR_PATH)LxrAvr.bin
FIB=$(BINPATH)FirmwareImageBuilder
FIRMWARE?=FIRMWARE.BIN
IMAGE?="$(DESTDIR)$(FIRMWARE)"
JOBS?=-j3
.PHONY: all
all:
@echo "Valid targets are:"
@echo " clean : clean subdirectories"
@echo " firmware : build firmware"
.PHONY: clean
clean:
$(AT)make -C tools/FirmwareImageBuilder clean
$(AT)make -C $(AVR_PATH) clean
$(AT)make -C $(ARM_PATH) clean
$(AT)$(RM) $(IMAGE)
.PHONY: firmware
firmware: $(IMAGE)
$(IMAGE): $(ARM_BINARY) $(AVR_BINARY) $(FIB)
@echo "Building final firmware image $@..."
$(AT)$(FIB) $(ARM_BINARY) $(AVR_BINARY) "$@"
$(FIB):
@echo "** Building $@..."
$(AT)make -C tools/FirmwareImageBuilder exe
$(AVR_BINARY):
@echo "** Building $@..."
$(AT)make $(JOBS) -C $(AVR_PATH) avr
$(ARM_BINARY):
@echo "** Building $@..."
$(AT)make $(JOBS) -C $(ARM_PATH) stm32 |
|
далее идет второй make файл и на нем затык :
| Code | 1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
| ###############################################################################
#
# Makefile for LXR Cortex firmware
# Author: Patrick Dowling
#
# Requires either
# * arm compiler (arm-none-eabi-gcc et al) in path, or
# * ARM_TOOLKIT_ROOT set to installation directory
#
###############################################################################
###############################################################################
# OPTIONS
BINARY?=LxrStm32.bin
ifeq ($(DEBUG),1)
DEFINES += -DDEBUG
else
DEFINES += -DNDEBUG
endif
ifndef ARM_OPTIMIZE
ARM_OPTIMIZE=3
#ARM_OPTIMIZE=fast
endif
# if VERBOSE is defined, spam output
ifdef VERBOSE
AT :=
ECHO := @true
LDFLAGS += -v
else
AT := @
ECHO := @echo
endif
ifdef ARM_TOOLKIT_ROOT
BINPATH=$(ARM_TOOLKIT_ROOT)/bin/
else
BINPATH=""
endif
CC =$(addprefix $(BINPATH),arm-none-eabi-gcc)
CXX =$(addprefix $(BINPATH),arm-none-eabi-c++)
LD =$(addprefix $(BINPATH),arm-none-eabi-ld)
CP =$(addprefix $(BINPATH),arm-none-eabi-objcopy)
OD =$(addprefix $(BINPATH),arm-none-eabi-objdump)
AS =$(addprefix $(BINPATH),arm-none-eabi-as)
###############################################################################
# SOURCE FILES
SRCDIR=.
CCSRCFILES = $(shell find $(SRCDIR) -type f -name "*.c" | grep -v '/\.')
CXXSRCFILES = $(shell find $(SRCDIR) -type f -name "*.cpp" | grep -v '/\.')
ASSRCFILES = $(shell find $(SRCDIR) -type f -name "*.S" | grep -v '/\.')
vpath %.c ./Libraries/STM32_USB_Device_Library/Core/src
vpath %.c ./Libraries/STM32_USB_OTG_Driver/src
vpath %.c ./Libraries/STM32F4xx_StdPeriph_Driver/src
vpath %.c ./src
vpath %.S ./src
vpath %.c ./src/AudioCodecManager
vpath %.c ./src/DSPAudio
vpath %.c ./src/Hardware
vpath %.c ./src/Hardware/SD_FAT
vpath %.c ./src/Hardware/USB
vpath %.c ./src/MIDI
vpath %.c ./src/SampleRom
vpath %.c ./src/Sequencer
###############################################################################
# SETUP
OBJDIR=./build/
ELF=$(OBJDIR)/LxrStm32.elf
# Build object files from source...
OBJFILES = $(addprefix $(OBJDIR),$(notdir $(CCSRCFILES:.c=.o)))
OBJFILES+= $(addprefix $(OBJDIR),$(notdir $(CXXSRCFILES:.cpp=.o)))
OBJFILES+= $(addprefix $(OBJDIR),$(notdir $(ASSRCFILES:.S=.o)))
# Project defines
DEFINES += -DHSE_VALUE=8000000 -DSTM32F4XX -DUSE_STDPERIPH_DRIVER -DUSE_STM32F4_DISCOVERY
# Include directories
INCLUDES += -I"./Libraries/CMSIS/Include"
INCLUDES += -I"./Libraries/Device/STM32F4xx/Include"
INCLUDES += -I"./Libraries/STM32F4xx_StdPeriph_Driver/inc"
INCLUDES += -I"./Libraries/STM32_USB_Device_Library/Core/inc"
INCLUDES += -I"./Libraries/STM32_USB_OTG_Driver/inc"
INCLUDES += -I"./src"
INCLUDES += -I"./src/AudioCodecManager"
INCLUDES += -I"./src/DSPAudio"
INCLUDES += -I"./src/Hardware"
INCLUDES += -I"./src/Hardware/SD_FAT"
INCLUDES += -I"./src/Hardware/USB"
INCLUDES += -I"./src/MIDI"
INCLUDES += -I"./src/Sequencer"
ARCHFLAGS = -mcpu=cortex-m4 -mthumb -mfloat-abi=hard -mfpu=fpv4-sp-d16
CFLAGS += $(DEFINES) $(INCLUDES)
CFLAGS += $(ARCHFLAGS)
CFLAGS += -O$(ARM_OPTIMIZE) -ffunction-sections -fdata-sections -ffast-math -freciprocal-math -fsingle-precision-constant -fmessage-length=0 -fno-gcse
CFLAGS += -Wall -Wextra -c
CFLAGS += -Wl,--gc-sections
ifeq ($(PEDANTIC),1)
CFLAGS += -Werror
endif
CXXFLAGS += $(CFLAGS) -fno-rtti -fno-exceptions
ASFLAGS += -ahls $(ARCHFLAGS)
LDFLAGS += $(ARCHFLAGS) -Wl,--gc-sections --specs=nano.specs
LDFLAGS += -T./stm32_flash.ld
###############################################################################
# TARGETS
.PHONY: all
all:
@echo "Valid targets are"
@echo " clean : clean build directory"
@echo " stm32: build LXR STM32 firmware"
.PHONY: clean
clean:
@$(RM) $(BINARY)
@$(RM) $(OBJDIR)*.o
.PHONY: printenv
printenv:
@echo "AVR_TOOLKIT_ROOT='$(AVR_TOOLKIT_ROOT)'"
@echo "CC = $(CC)"
@echo "CXX = $(CXX)"
@echo "AS = $(AS)"
.PHONY: printfiles
printfiles:
@echo "** C FILES **"
@echo "$(CCSRCFILES)"
@echo ""
@echo "** CXX FILES **"
@echo "$(CXXSRCFILES)"
@echo ""
@echo "** S FILES **"
@echo "$(ASSRCFILES)"
@echo ""
.PHONY: stm32
stm32: $(BINARY)
$(ELF): $(OBJFILES)
$(ECHO) "Linking $@..."
$(AT)$(CXX) $(LDFLAGS) $^ -o $@
$(BINARY): $(ELF)
$(ECHO) "Creating binary $@..."
$(AT)$(CP) -O binary $(ELF) $(BINARY)
$(OBJFILES) : | $(OBJDIR)
###############################################################################
# BUILD RULES
$(OBJDIR):
@mkdir -p $(OBJDIR)
$(OBJDIR)%.o: %.c
$(ECHO) "Compiling $<..."
$(AT)$(CC) $(CFLAGS) $< -o $@
$(OBJDIR)%.o: %.cxx
$(ECHO) "Compiling $<..."
$(AT)$(CXX) $(CFLAGS) $< -o $@
$(OBJDIR)%.o: %.S
$(ECHO) "Assembling $<..."
$(AT)$(AS) $(ASFLAGS) $< -o $@ > $@.lst
# Automatic dependency generation
CFLAGS += -MMD
-include $(OBJFILES:.o=.d) |
|
вот результат
https://prnt.sc/tcv6oq
0
|