From cb6f4698ce2a52378d26249028ee33094b3db49f Mon Sep 17 00:00:00 2001 From: chen <15335560115@163.com> Date: 星期二, 12 十一月 2024 09:42:19 +0800 Subject: [PATCH] 未改动版本 --- gcc/Makefile | 169 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 files changed, 169 insertions(+), 0 deletions(-) diff --git a/gcc/Makefile b/gcc/Makefile new file mode 100644 index 0000000..539f776 --- /dev/null +++ b/gcc/Makefile @@ -0,0 +1,169 @@ +PROJ_NAME = uwb_simple_example +# Build folder +ODIR = ./objects + +# Detect Unix-style shell +ifeq ($(findstring /,$(PWD)),/) +RM = rm -f +FixPath = $1 +MKDIR = mkdir -p +MV = mv -f +$(info Unix-Style) +else +SHELL := cmd.exe +RM = del /Q +FixPath = $(subst /,\,$1) +MKDIR = mkdir +MV = copy +$(info Windows) +endif + + +# Configure tool names +CC = arm-none-eabi-gcc +CXX = arm-none-eabi-g++ +AS = arm-none-eabi-as +OBJCOPY = arm-none-eabi-objcopy -O binary -S +SIZE = arm-none-eabi-size + + +# Define CPU target +# - Use Cortex-M1 if tools do not provide named support for Cortex-M0 +# - Compiling for Cortex-M1 will produce code compatible with Cortex-M0 +CPUTARGET = -mcpu=Cortex-M0 -mthumb -mthumb-interwork + +# +# CM0MCU compiler options +# +CCFLAGS = $(CPUTARGET) -std=c99 -O2 -g -DUWB_EN +CCFLAGS += -ffunction-sections -fdata-sections + +LDFLAGS = $(CPUTARGET) -T ../../../../../devices/MK800X/Source/GCC/gcc_arm.ld +# Use newlib-nano +LDFLAGS += --specs=nano.specs +LDFLAGS += --specs=nosys.specs +# print float +#LDFLAGS += -u_printf_float +# Link for code size +LDFLAGS += -Wl,--gc-sections +# Create map file +LDFLAGS += -Wl,-Map=$(PROJ_NAME).map + +ASFLAGS = $(CPUTARGET) --keep + + +# Source code +SRC = ../../../board.c \ + ../pin_config.c \ + ../../../../src/uwb_examples/uwb_simple_example/main.c \ + ../../../../src/uwb_examples/uwb_simple_example/simple_ds_twr_init/simple_ds_twr_init.c \ + ../../../../src/uwb_examples/uwb_simple_example/simple_ds_twr_init_sts/simple_ds_twr_init_sts.c \ + ../../../../src/uwb_examples/uwb_simple_example/simple_ds_twr_resp/simple_ds_twr_resp.c \ + ../../../../src/uwb_examples/uwb_simple_example/simple_ds_twr_resp_sts/simple_ds_twr_resp_sts.c \ + ../../../../src/uwb_examples/uwb_simple_example/simple_rx/simple_rx.c \ + ../../../../src/uwb_examples/uwb_simple_example/simple_tx/simple_tx.c \ + ../../../../../components/algo/src/steering_vector/cmp_svec.c \ + ../../../../../components/crc/crc.c \ + ../../../../../components/libc/libc.c \ + ../../../../../components/wsf/sources/platform/pal_flash.c \ + ../../../../../components/wsf/sources/platform/pal_sys.c \ + ../../../../../components/wsf/sources/platform/pal_uart.c \ + ../../../../../components/wsf/sources/port/baremetal/wsf_assert.c \ + ../../../../../components/wsf/sources/port/baremetal/wsf_buf.c \ + ../../../../../components/wsf/sources/port/baremetal/wsf_bufio.c \ + ../../../../../components/wsf/sources/port/baremetal/wsf_heap.c \ + ../../../../../components/wsf/sources/port/baremetal/wsf_msg.c \ + ../../../../../components/wsf/sources/port/baremetal/wsf_nvm.c \ + ../../../../../components/wsf/sources/port/baremetal/wsf_os.c \ + ../../../../../components/wsf/sources/port/baremetal/wsf_queue.c \ + ../../../../../components/wsf/sources/port/baremetal/wsf_timer.c \ + ../../../../../components/wsf/sources/port/baremetal/wsf_trace.c \ + ../../../../../devices/MK800X/Source/startup_MK800X.c \ + ../../../../../devices/MK800X/Source/system_MK800X.c \ + ../../../../../drivers/mk_adc.c \ + ../../../../../drivers/mk_aes.c \ + ../../../../../drivers/mk_calib.c \ + ../../../../../drivers/mk_clock.c \ + ../../../../../drivers/mk_dma.c \ + ../../../../../drivers/mk_dual_timer.c \ + ../../../../../drivers/mk_flash.c \ + ../../../../../drivers/mk_gpio.c \ + ../../../../../drivers/mk_io.c \ + ../../../../../drivers/mk_misc.c \ + ../../../../../drivers/mk_power.c \ + ../../../../../drivers/mk_reset.c \ + ../../../../../drivers/mk_rtc.c \ + ../../../../../drivers/mk_sleep_timer.c \ + ../../../../../drivers/mk_trace.c \ + ../../../../../drivers/mk_uart.c \ + ../../../../../drivers/mk_uwb.c \ + ../../../../../drivers/mk_wdt.c \ + + +# Include path +INC = -I../../../../../CMSIS/Include \ + -I../../.. \ + -I.. \ + -I../../../../../components/algo/inc \ + -I../../../../../components/crc \ + -I../../../../../components/libc \ + -I../../../../../components/wsf/include \ + -I../../../../../components/wsf/include/platform \ + -I../../../../../devices/MK800X/Include \ + -I../../../../../drivers \ + + +# Include library +LIB = ../../../../../components/algo/lib/lib_aoa.a \ + ../../../../../components/algo/lib/lib_ranging.a \ + ../../../../../drivers/lib/lib_lsp.a \ + ../../../../../drivers/lib/lib_mac_phy.a \ + -lm \ + +ODIR_ = $(call FixPath, $(ODIR)) +OBJS = $(patsubst %.c, $(ODIR)/%.o, $(notdir $(SRC))) +OBJS_ = $(call FixPath, $(OBJS)) + +ifneq ($(ODIR), $(wildcard $(ODIR))) +$(shell $(MKDIR) $(ODIR_)) +endif + +$(info $(ODIR)) +$(info $(OBJS)) + +SOURSE_DIR = $(dir $(SRC)) + +vpath %.c $(SOURSE_DIR) + +.PHONY: all clean + +################################################################################ +# +# Rule deck +# + +all: $(PROJ_NAME).bin $(PROJ_NAME).elf $(OBJS) + +$(ODIR)/%.o: %.c + $(info $< $@) + $(CC) -c $(CCFLAGS) $(INC) $< -o $@ + +%.elf: $(OBJS) + $(CC) $(LDFLAGS) $^ -Xlinker "-(" $(LIB) -Xlinker "-)" -o $(PROJ_NAME).elf + $(SIZE) $@ + +%.bin: %.elf + $(OBJCOPY) $(PROJ_NAME).elf $(PROJ_NAME).bin + + +################################################################################ +# +# Clean - remove all .bin, .elf, .map +# + +clean: + $(RM) $(OBJS_) *.bin *.elf *.map + +download: + -./pyjlink -f $(PROJ_NAME).bin +# EOF -- Gitblit v1.9.3