]> git.sur5r.net Git - freertos/blob - FreeRTOS/Demo/RISC-V-Qemu-sifive_e-FreedomStudio/BuildEnvironment.mk
Add makefiles that build the FreedomStudio project (provided by Dornerworks - thanks).
[freertos] / FreeRTOS / Demo / RISC-V-Qemu-sifive_e-FreedomStudio / BuildEnvironment.mk
1 BUILD_DIR = ./build\r
2 CROSS_COMPILE_PREFIX = riscv32-unknown-elf\r
3 \r
4 SDK_DIR = ./freedom-e-sdk\r
5 \r
6 LINKER_SCRIPT = $(SDK_DIR)/env/freedom-e300-hifive1/flash.lds\r
7 #-----------------------------------------------------------\r
8 GCC     = $(CROSS_COMPILE_PREFIX)-gcc\r
9 OBJCOPY = $(CROSS_COMPILE_PREFIX)-objcopy\r
10 OBJDUMP = $(CROSS_COMPILE_PREFIX)-objdump\r
11 AR      = $(CROSS_COMPILE_PREFIX)-ar\r
12 RANLIB  = $(CROSS_COMPILE_PREFIX)-ranlib\r
13 GDB     = $(CROSS_COMPILE_PREFIX)-gdb\r
14 \r
15 # if using the multi-arch (riscv64-unknown-elf-gcc):\r
16 ARCH_FLAGS = -march=rv32imac -mabi=ilp32 -mcmodel=medany\r
17 # Basic CFLAGS:\r
18 CFLAGS  = -Wall -Wextra -O0 -g3 -msmall-data-limit=8 -std=gnu11\r
19 CFLAGS += -ffunction-sections -fdata-sections -fno-builtin-printf\r
20 CFLAGS += -DDONT_USE_PLIC -DDONT_USE_M_TIME\r
21 CFLAGS += -include sys/cdefs.h\r
22 CFLAGS += $(ARCH_FLAGS)\r
23 # These flags are for outputing *.d dependency files for make\r
24 CFLAGS += -MT"$@" -MMD -MP -MF"$(@:%.o=%.d)" -MT"$(@)"\r
25 \r
26 ASMFLAGS =  -O0 -g3\r
27 ASMFLAGS += $(ARCH_FLAGS)\r
28 ASMFLAGS += -DportasmHANDLE_INTERRUPT=handle_trap\r
29 ASMFLAGS += -msmall-data-limit=8\r
30 ASMFLAGS += -ffunction-sections -fdata-sections\r
31 ASMFLAGS += -x assembler-with-cpp\r
32 ASMFLAGS += -MT"$@" -MMD -MP -MF"$(@:%.o=%.d)" -MT"$(@)"\r
33 \r
34 # Linker arguments __________________________________________\r
35 LDFLAGS :=  -Xlinker --gc-sections -Xlinker --defsym=__stack_size=1K\r
36 LDFLAGS += -O0 -g3\r
37 LDFLAGS += -ffunction-sections -fdata-sections --specs=nano.specs\r
38 LDFLAGS += -nostartfiles\r
39 LDFLAGS += -T $(LINKER_SCRIPT)\r
40 LDFLAGS += -L../\r
41 LDFLAGS += -Wl,--start-group -Wl,--end-group\r
42 LDFLAGS += -Wl,--wrap=malloc -Wl,--wrap=free -Wl,--wrap=open -Wl,--wrap=lseek -Wl,--wrap=read -Wl,--wrap=write\r
43 LDFLAGS += -Wl,--wrap=fstat -Wl,--wrap=stat -Wl,--wrap=close -Wl,--wrap=link -Wl,--wrap=unlink -Wl,--wrap=execve\r
44 LDFLAGS += -Wl,--wrap=fork -Wl,--wrap=getpid -Wl,--wrap=kill -Wl,--wrap=wait -Wl,--wrap=isatty -Wl,--wrap=times\r
45 LDFLAGS += -Wl,--wrap=sbrk -Wl,--wrap=_exit -Wl,--wrap=puts -Wl,--wrap=_malloc -Wl,--wrap=_free -Wl,--wrap=_open\r
46 LDFLAGS += -Wl,--wrap=_lseek -Wl,--wrap=_read -Wl,--wrap=_write -Wl,--wrap=_fstat -Wl,--wrap=_stat -Wl,--wrap=_close\r
47 LDFLAGS += -Wl,--wrap=_link -Wl,--wrap=_unlink -Wl,--wrap=_execve -Wl,--wrap=_fork -Wl,--wrap=_getpid -Wl,--wrap=_kill\r
48 LDFLAGS += -Wl,--wrap=_wait -Wl,--wrap=_isatty -Wl,--wrap=_times -Wl,--wrap=_sbrk -Wl,--wrap=__exit -Wl,--wrap=_puts\r