2020-05-30 14:42:07 +00:00
|
|
|
BUILD_DIR = build
|
|
|
|
|
|
|
|
C_SOURCES = \
|
2020-05-31 07:49:49 +00:00
|
|
|
src/drivers/xilinx_gpio.c \
|
|
|
|
src/drivers/xilinx_uartlite.c \
|
|
|
|
src/drivers/xilinx_timer.c \
|
|
|
|
src/ibex_it.c \
|
|
|
|
src/ibex_system.c \
|
|
|
|
src/soc_peripherals.c \
|
|
|
|
src/system_init.c \
|
|
|
|
src/syscalls.c \
|
|
|
|
src/main.c
|
|
|
|
|
|
|
|
INCLUDES = \
|
|
|
|
-Iinclude
|
2020-05-30 14:42:07 +00:00
|
|
|
|
|
|
|
ASM_SOURCES = \
|
|
|
|
startup.s
|
|
|
|
|
|
|
|
LDSCRIPT = linker.ld
|
|
|
|
|
|
|
|
TARGET = hello
|
|
|
|
|
|
|
|
CC = /home/imi415/Softwares/Arch/RISC-V/toolchains/rv32imc/bin/riscv32-unknown-elf-gcc
|
|
|
|
AS = /home/imi415/Softwares/Arch/RISC-V/toolchains/rv32imc/bin/riscv32-unknown-elf-gcc
|
|
|
|
CP = /home/imi415/Softwares/Arch/RISC-V/toolchains/rv32imc/bin/riscv32-unknown-elf-objcopy
|
|
|
|
SZ = /home/imi415/Softwares/Arch/RISC-V/toolchains/rv32imc/bin/riscv32-unknown-elf-size
|
|
|
|
|
|
|
|
HEX = $(CP) -O ihex
|
|
|
|
BIN = $(CP) -O binary
|
|
|
|
|
2020-05-31 07:49:49 +00:00
|
|
|
CFLAGS += -mabi=ilp32 -march=rv32imc -g $(INCLUDES)
|
2020-05-30 14:42:07 +00:00
|
|
|
ASFLAGS += -mabi=ilp32 -march=rv32imc -g
|
2020-06-02 13:34:58 +00:00
|
|
|
LDFLAGS += -nostartfiles -specs=nosys.specs -specs=nano.specs -lc -lm -lnosys
|
2020-05-30 14:42:07 +00:00
|
|
|
|
|
|
|
|
|
|
|
LDFLAGS += -T$(LDSCRIPT) -Wl,-Map=$(BUILD_DIR)/$(TARGET).map -Wl,--print-memory-usage
|
|
|
|
|
|
|
|
all: $(BUILD_DIR)/$(TARGET).elf $(BUILD_DIR)/$(TARGET).hex $(BUILD_DIR)/$(TARGET).bin
|
|
|
|
|
|
|
|
OBJECTS = $(addprefix $(BUILD_DIR)/,$(notdir $(C_SOURCES:.c=.o)))
|
|
|
|
vpath %.c $(sort $(dir $(C_SOURCES)))
|
|
|
|
|
|
|
|
OBJECTS += $(addprefix $(BUILD_DIR)/,$(notdir $(ASM_SOURCES:.s=.o)))
|
|
|
|
vpath %.s $(sort $(dir $(ASM_SOURCES)))
|
|
|
|
|
|
|
|
$(BUILD_DIR)/%.o: %.c Makefile | $(BUILD_DIR)
|
|
|
|
$(CC) -c $(CFLAGS) -Wa,-a,-ad,-alms=$(BUILD_DIR)/$(notdir $(<:.c=.lst)) $< -o $@
|
|
|
|
|
|
|
|
$(BUILD_DIR)/%.o: %.s Makefile | $(BUILD_DIR)
|
|
|
|
$(AS) -c $(CFLAGS) $< -o $@
|
|
|
|
|
|
|
|
$(BUILD_DIR)/$(TARGET).elf: $(OBJECTS) Makefile
|
|
|
|
$(CC) $(OBJECTS) $(LDFLAGS) -o $@
|
|
|
|
$(SZ) $@
|
|
|
|
|
|
|
|
$(BUILD_DIR)/%.hex: $(BUILD_DIR)/%.elf | $(BUILD_DIR)
|
|
|
|
$(HEX) $< $@
|
|
|
|
|
|
|
|
$(BUILD_DIR)/%.bin: $(BUILD_DIR)/%.elf | $(BUILD_DIR)
|
|
|
|
$(BIN) $< $@
|
|
|
|
|
|
|
|
$(BUILD_DIR):
|
|
|
|
mkdir $@
|