diff options
Diffstat (limited to 'FreeRTOS/Demo/RISC-V-spike-htif_GCC/Makefile')
-rw-r--r-- | FreeRTOS/Demo/RISC-V-spike-htif_GCC/Makefile | 82 |
1 files changed, 82 insertions, 0 deletions
diff --git a/FreeRTOS/Demo/RISC-V-spike-htif_GCC/Makefile b/FreeRTOS/Demo/RISC-V-spike-htif_GCC/Makefile new file mode 100644 index 000000000..929da07ef --- /dev/null +++ b/FreeRTOS/Demo/RISC-V-spike-htif_GCC/Makefile @@ -0,0 +1,82 @@ +XLEN ?= 32 +CROSS = riscv$(XLEN)-unknown-elf- +CC = $(CROSS)gcc +OBJCOPY = $(CROSS)objcopy +ARCH = $(CROSS)ar +DEBUG ?= 0 + +ifeq ($(XLEN), 64) + MARCH = rv64ima + MABI = lp64 + STACK_SIZE = 600 +else + MARCH = rv32ima + MABI = ilp32 + STACK_SIZE = 300 +endif + +BUILD_DIR = build +RTOS_SOURCE_DIR = $(abspath ../../Source) +DEMO_SOURCE_DIR = $(abspath ../Common/Minimal) + +CPPFLAGS = \ + -D__riscv_float_abi_soft \ + -DportasmHANDLE_INTERRUPT=handle_trap \ + -I . -I ../Common/include \ + -I $(RTOS_SOURCE_DIR)/include \ + -I $(RTOS_SOURCE_DIR)/portable/GCC/RISC-V \ + -I $(RTOS_SOURCE_DIR)/portable/GCC/RISC-V/chip_specific_extensions/RV32I_CLINT_no_extensions +CFLAGS = -march=$(MARCH) -mabi=$(MABI) -mcmodel=medany \ + -Wall \ + -fmessage-length=0 \ + -ffunction-sections \ + -fdata-sections \ + -fno-builtin-printf +ASFLAGS = -march=$(MARCH) -mabi=$(MABI) -mcmodel=medany +LDFLAGS = -nostartfiles -Tfake_rom.lds \ + -Xlinker --gc-sections \ + -Xlinker --defsym=__stack_size=$(STACK_SIZE) + +ifeq ($(DEBUG), 1) + CFLAGS += -Og -ggdb3 +else + CFLAGS += -Os +endif + +SRCS = main.c main_blinky.c riscv-virt.c htif.c \ + $(DEMO_SOURCE_DIR)/EventGroupsDemo.c \ + $(DEMO_SOURCE_DIR)/TaskNotify.c \ + $(DEMO_SOURCE_DIR)/TimerDemo.c \ + $(DEMO_SOURCE_DIR)/blocktim.c \ + $(DEMO_SOURCE_DIR)/dynamic.c \ + $(DEMO_SOURCE_DIR)/recmutex.c \ + $(RTOS_SOURCE_DIR)/event_groups.c \ + $(RTOS_SOURCE_DIR)/list.c \ + $(RTOS_SOURCE_DIR)/queue.c \ + $(RTOS_SOURCE_DIR)/stream_buffer.c \ + $(RTOS_SOURCE_DIR)/tasks.c \ + $(RTOS_SOURCE_DIR)/timers.c \ + $(RTOS_SOURCE_DIR)/portable/MemMang/heap_4.c \ + $(RTOS_SOURCE_DIR)/portable/GCC/RISC-V/port.c + +ASMS = start.S \ + $(RTOS_SOURCE_DIR)/portable/GCC/RISC-V/portASM.S + +OBJS = $(SRCS:%.c=$(BUILD_DIR)/%.o) $(ASMS:%.S=$(BUILD_DIR)/%.o) +DEPS = $(SRCS:%.c=$(BUILD_DIR)/%.d) $(ASMS:%.S=$(BUILD_DIR)/%.d) + +$(BUILD_DIR)/RTOSDemo.axf: $(OBJS) fake_rom.lds Makefile + $(CC) $(LDFLAGS) $(OBJS) -o $@ + +$(BUILD_DIR)/%.o: %.c Makefile + @mkdir -p $(@D) + $(CC) $(CPPFLAGS) $(CFLAGS) -MMD -MP -c $< -o $@ + +$(BUILD_DIR)/%.o: %.S Makefile + @mkdir -p $(@D) + $(CC) $(CPPFLAGS) $(ASFLAGS) -MMD -MP -c $< -o $@ + +clean: + rm -rf $(BUILD_DIR) + +-include $(DEPS) |