diff --git a/Makefile b/Makefile new file mode 100644 index 0000000..dcd04be --- /dev/null +++ b/Makefile @@ -0,0 +1,122 @@ +.SUFFIXES: .o .a .c .s + +DEV_NUL=/dev/null + +RM=rm -f + +CROSS_COMPILE = arm-none-eabi- +AR = $(CROSS_COMPILE)ar +CC = $(CROSS_COMPILE)gcc +AS = $(CROSS_COMPILE)as +NM = $(CROSS_COMPILE)nm +SIZE = $(CROSS_COMPILE)size + +vpath %.c ./src + +INCLUDES = -Isdk/component/soc/realtek/8195a/fwlib/rtl8195a +INCLUDES += -Isdk/component/soc/realtek/8195a/fwlib +INCLUDES += -Isdk/component/soc/realtek/common/bsp +INCLUDES += -Isdk/component/soc/realtek/8195a/cmsis +INCLUDES += -Isdk/component/soc/realtek/8195a/cmsis/device/ +INCLUDES += -Isdk/component/os/freertos +INCLUDES += -Isdk/component/os/freertos/freertos_v8.1.2/Source/include +INCLUDES += -Isdk/component/os/freertos/freertos_v8.1.2/Source/portable/GCC/ARM_CM3 +INCLUDES += -Isdk/component/common/drivers/wlan/realtek/include +INCLUDES += -Isdk/component/common/api/wifi +INCLUDES += -Isdk/component/common/drivers/wlan/realtek/src/osdep +INCLUDES += -Isdk/component/common/drivers/sdio/realtek/sdio_host/inc +INCLUDES += -Isdk/project/realtek_ameba1_va0_example/inc + +OUTPUT_PATH=build + +CFLAGS = -c +CFLAGS += -g +CFLAGS += -w +CFLAGS += -mcpu=cortex-m3 +CFLAGS += -mtune=cortex-m3 +CFLAGS += -mthumb +CFLAGS += -O2 +CFLAGS += -ansi +CFLAGS += -std=gnu99 +CFLAGS += -fno-short-enums +CFLAGS += -fno-common +CFLAGS += -fmessage-length=0 +CFLAGS += -Wall +CFLAGS += -fno-exceptions +CFLAGS += -ffunction-sections +CFLAGS += -fdata-sections +CFLAGS += -fomit-frame-pointer +CFLAGS += -fno-short-enums +CFLAGS += -nostdlib +CFLAGS += -Werror +CFLAGS += -Wundef +CFLAGS += -Wpointer-arith +CFLAGS += -Wstrict-prototypes +CFLAGS += -Wno-write-strings +CFLAGS += -fsingle-precision-constant +CFLAGS += -Wdouble-promotion +CFLAGS += -nostartfiles +CFLAGS += -DCONFIG_PLATFORM_8195A $(INCLUDES) +CFLAGS += $(CFLAGS_MOD) + +ASFLAGS = -mcpu=cortex-m3 -mthumb -Wall -a -g $(INCLUDES) + +C_SRC+=$(wildcard src/*.c) + +C_OBJ_TEMP=$(patsubst %.c, %.o, $(notdir $(C_SRC))) + +# during development, remove some files +C_OBJ_FILTER= + +C_OBJ=$(filter-out $(C_OBJ_FILTER), $(C_OBJ_TEMP)) + +ELF_CFLAGS += -O2 +ELF_CFLAGS += -Wl,--gc-sections +ELF_CFLAGS += -mcpu=cortex-m3 +ELF_CFLAGS += -mthumb +ELF_CFLAGS += --specs=nano.specs + +ELF_LDFLAGS += -Lsdk/lib -Lsdk/scripts -Tsdk/scripts/rlx8195A-symbol-v03-img2_arduino_arduino.ld +ELF_LDFLAGS += -Wl,-Map=$(OUTPUT_PATH)/target.map +ELF_LDFLAGS += -Wl,--cref +ELF_LDFLAGS += -Wl,--warn-common +ELF_LDFLAGS += -Wl,--gc-sections +ELF_LDFLAGS += -Wl,--no-enum-size-warning +ELF_LDFLAGS += -Wl,--no-wchar-size-warning +ELF_LDFLAGS += -Wl,--entry=InfraStart +ELF_LDFLAGS += -Wl,-nostdlib + +ELF_ARLIST += ./sdk/lib/lib_platform.a +ELF_ARLIST += ./sdk/lib/lib_ameba.a +#ELF_ARLIST += ./sdk/lib/lib_wlan.a +#ELF_ARLIST += ./sdk/lib/lib_wlan_mp.a +#ELF_ARLIST += ./sdk/lib/lib_wps.a +#ELF_ARLIST += ./sdk/lib/lib_mdns.a +#ELF_ARLIST += ./sdk/lib/lib_rtlstd.a +#ELF_ARLIST += ./sdk/lib/lib_sdcard.a + + +all: $(OUTPUT_PATH)/target.axf + +makebin/ram_all.bin: $(OUTPUT_PATH)/target.axf + cd ./makebin && /bin/bash ./makebin.sh + +$(OUTPUT_PATH)/target.axf: $(addprefix $(OUTPUT_PATH)/,$(C_OBJ)) + echo build all objects + $(CC) $(ELF_CFLAGS) $(ELF_LDFLAGS) -o $(OUTPUT_PATH)/target.axf -Wl,--start-group $^ -Wl,--end-group $(ELF_ARLIST) -lstdc++ -lsupc++ -lm -lc -lgcc -lnosys + $(SIZE) $(OUTPUT_PATH)/target.axf + +$(addprefix $(OUTPUT_PATH)/,$(C_OBJ)): $(OUTPUT_PATH)/%.o: %.c + @echo "$(CC) -c $(CFLAGS) $< -o $@" + @"$(CC)" -c $(CFLAGS) $< -o $@ + +clean: + @echo clean + -@$(RM) $(OUTPUT_PATH)/target.* 1>$(DEV_NUL) 2>&1 + -@$(RM) $(OUTPUT_PATH)/*.d 1>$(DEV_NUL) 2>&1 + -@$(RM) $(OUTPUT_PATH)/*.o 1>$(DEV_NUL) 2>&1 + -@$(RM) $(OUTPUT_PATH)/*.i 1>$(DEV_NUL) 2>&1 + -@$(RM) $(OUTPUT_PATH)/*.s 1>$(DEV_NUL) 2>&1 + -@$(RM) ./makebin/target* 1>$(DEV_NUL) 2>&1 + -@$(RM) ./makebin/*.bin 1>$(DEV_NUL) 2>&1 + diff --git a/build/.gitkeep b/build/.gitkeep new file mode 100644 index 0000000..e69de29