summaryrefslogtreecommitdiff
path: root/FreeRTOS/Demo/RISC-V-spike-htif_GCC/Makefile
diff options
context:
space:
mode:
Diffstat (limited to 'FreeRTOS/Demo/RISC-V-spike-htif_GCC/Makefile')
-rw-r--r--FreeRTOS/Demo/RISC-V-spike-htif_GCC/Makefile82
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)