@@ -23,6 +23,7 @@ BINARY = stm32_ccs
2323SIZE = $(PREFIX ) -size
2424CC = $(PREFIX ) -gcc
2525CPP = $(PREFIX ) -g++
26+ AS = $(PREFIX ) -g++
2627LD = $(PREFIX ) -gcc
2728OBJCOPY = $(PREFIX ) -objcopy
2829OBJDUMP = $(PREFIX ) -objdump
@@ -33,6 +34,7 @@ CFLAGS = -Os -Iinclude/ -Ilibopeninv/include -Ilibopencm3/include -Iexi -Iccs \
3334CPPFLAGS = -Os -ggdb -Wall -Wextra -Iinclude/ -Ilibopeninv/include -Ilibopencm3/include -Iexi -Iccs \
3435 -fno-common -std=c++11 -pedantic -DSTM32F1 -DUSART_BAUDRATE=921600 \
3536 -ffunction-sections -fdata-sections -fno-builtin -fno-rtti -fno-exceptions -fno-unwind-tables -mcpu=cortex-m3 -mthumb
37+ ASFLAGS = $(CPPFLAGS ) -x assembler-with-cpp
3638# Check if the variable GITHUB_RUN_NUMBER exists. When running on the github actions running, this
3739# variable is automatically available.
3840# Create a compiler define with the content of the variable. Or, if it does not exist, use replacement value 0.
@@ -56,11 +58,19 @@ OBJSL = main.o hwinit.o stm32scheduler.o params.o terminal.o terminal_prj.o \
5658 BitInputStream.o dinEXIDatatypesEncoder.o MethodsBag.o \
5759 BitOutputStream.o dinEXIDatatypes.o projectExiConnector.o
5860
61+ ifneq ($(filter ReleaseQCAFlash,$(MAKECMDGOALS ) ) ,)
62+ CFLAGS += -Iplcboot -DENABLE_PLCBOOT
63+ CPPFLAGS += -Iplcboot -DENABLE_PLCBOOT
64+ ASFLAGS += -Iplcboot -DENABLE_PLCBOOT
65+ OBJSL += plcboot/plcboot.o plcboot/embedded_images.o plcboot/embedded_images_data.o
66+ endif
67+
5968
6069OBJS = $(patsubst % .o,obj/% .o, $(OBJSL ) )
6170DEPENDS := $(patsubst % .o,obj/% .d, $(OBJSL ) )
6271vpath % .c src/ libopeninv/src exi/ ccs/
6372vpath % .cpp src/ libopeninv/src exi/ ccs/
73+ vpath % .s plcboot/
6474
6575OPENOCD_BASE = /usr
6676OPENOCD = $(OPENOCD_BASE ) /bin/openocd
@@ -95,6 +105,7 @@ LDFLAGS += $(call ld-option,--no-warn-rwx-segments)
95105all : directories images
96106Debug :images
97107Release : images
108+ ReleaseQCAFlash : images
98109cleanDebug :clean
99110images : $(BINARY )
100111 @printf " OBJCOPY $( BINARY) .bin\n"
@@ -116,12 +127,19 @@ $(BINARY): $(OBJS) $(LDSCRIPT)
116127
117128$(OUT_DIR ) /% .o : % .c Makefile
118129 @printf " CC $( subst $( shell pwd) /,,$( @) ) \n"
130+ $(Q )$(MKDIR_P ) $(dir $@ )
119131 $(Q )$(CC ) $(CFLAGS ) -MMD -MP -o $@ -c $<
120132
121133$(OUT_DIR ) /% .o : % .cpp Makefile
122134 @printf " CPP $( subst $( shell pwd) /,,$( @) ) \n"
135+ $(Q )$(MKDIR_P ) $(dir $@ )
123136 $(Q )$(CPP ) $(CPPFLAGS ) $(EXTRACOMPILERFLAGS ) -MMD -MP -o $@ -c $<
124137
138+ $(OUT_DIR ) /% .o : % .s Makefile
139+ @printf " AS $( subst $( shell pwd) /,,$( @) ) \n"
140+ $(Q )$(MKDIR_P ) $(dir $@ )
141+ $(Q )$(AS ) $(ASFLAGS ) $(EXTRACOMPILERFLAGS ) -MMD -MP -o $@ -c $<
142+
125143clean :
126144 @printf " CLEAN ${OUT_DIR} \n"
127145 $(Q ) rm -rf ${OUT_DIR}
0 commit comments