############################################################################## # GNU GCC ARM Embeded Toolchain base directories and binaries ############################################################################## FLAG_ABS_PATH = y ifeq (${FLAG_ABS_PATH},y) TOOLCHAIN_PREFIX = /opt/cross/arm-ronetix-eabi-8.1.0/bin/arm-ronetix-eabi TOOLCHAIN_PREFIX_AARCH64 = /opt/cross/aarch64-ronetix-elf/bin/aarch64-ronetix-elf else TOOLCHAIN_PREFIX = arm-ronetix-eabi TOOLCHAIN_PREFIX_AARCH64 = aarch64-ronetix-elf endif GCC = $(TOOLCHAIN_PREFIX)-gcc LD = $(TOOLCHAIN_PREFIX)-ld OBJCOPY = $(TOOLCHAIN_PREFIX)-objcopy LDS_PATH=ld-scripts BUILD_PATH=build-$* CFLAGS = -Wall -g3 -Wall -O0 CFLAGS_FPU = -mfloat-abi=hard -mfpu=vfpv3 -mcpu=cortex-a9 CFLAGS_NEON = -mfloat-abi=hard -mfpu=neon -mcpu=cortex-a9 all: mx6_c0 mx6_c1 mx6_c2 mx6_c3 mx6_fpu mx6_neon \ mx8_c0_64 mx8_c1_64 mx8_c2_64 mx8_c3_64 \ zynq_c0_64 zynq_c1_64 zynq_c2_64 zynq_c3_64 #----------------------------------------------------------------------------- # build-firmware() # Parameter: # $1 - toolchain prefix # $2 - source file # $3 - parameter for -D # $4 - extra CFLAGS # Description: # Build one image #----------------------------------------------------------------------------- define build-image mkdir -p $(BUILD_PATH) $(eval PREFIX := $1) $(eval SRC := $2) $(eval SYMBOL := $3) $(eval CFLAGS_EXTRA := $4) $(PREFIX)-gcc $(CFLAGS) $(CFLAGS_EXTRA) -c -o $(BUILD_PATH)/start_$@.o start.S $(PREFIX)-gcc $(CFLAGS) $(CFLAGS_EXTRA) -D$(SYMBOL) -fverbose-asm -S -o $(BUILD_PATH)/$@.s $(SRC) $(PREFIX)-gcc $(CFLAGS) $(CFLAGS_EXTRA) -D$(SYMBOL) -c -o $(BUILD_PATH)/$@.o $(BUILD_PATH)/$@.s $(PREFIX)-ld $(LDFLAGS) -Map=$(BUILD_PATH)/$@.map -o $(BUILD_PATH)/$@.elf $(BUILD_PATH)/start_$@.o $(BUILD_PATH)/$@.o -T $(LDS_PATH)/$@.ld $(PREFIX)-objcopy -O binary $(BUILD_PATH)/$@.elf $(BUILD_PATH)/$@.bin endef %_c0: $(call build-image, $(TOOLCHAIN_PREFIX),main.c,DEFINED_CORE0) %_c1: $(call build-image, $(TOOLCHAIN_PREFIX),main.c,DEFINED_CORE1) %_c2: $(call build-image, $(TOOLCHAIN_PREFIX),main.c,DEFINED_CORE2) %_c3: $(call build-image, $(TOOLCHAIN_PREFIX),main.c,DEFINED_CORE3) %_fpu: $(call build-image, $(TOOLCHAIN_PREFIX),main_fpu.c,DEFINED_CORE0,$(CFLAGS_FPU)) %_neon: $(call build-image, $(TOOLCHAIN_PREFIX),main_neon.c,DEFINED_CORE0,$(CFLAGS_NEON)) %_c0_64: $(call build-image, $(TOOLCHAIN_PREFIX_AARCH64),main.c,DEFINED_CORE0) %_c1_64: $(call build-image, $(TOOLCHAIN_PREFIX_AARCH64),main.c,DEFINED_CORE1) %_c2_64: $(call build-image, $(TOOLCHAIN_PREFIX_AARCH64),main.c,DEFINED_CORE2) %_c3_64: $(call build-image, $(TOOLCHAIN_PREFIX_AARCH64),main.c,DEFINED_CORE3) clean: rm -f *.elf *.o *.map *.s *.bin rm -rf build-mx6 rm -rf build-mx8 rm -rf build-zynq