1 Star 0 Fork 0

wangpeng25/riscv学习

加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
文件
克隆/下载
Makefile 2.64 KB
一键复制 编辑 原始数据 按行查看 历史
wp 提交于 2024-03-18 18:02 +08:00 . update .gitignore
######################################################################
# makefile � (by lichuang)
#
######################################################################
###################��Ŀ·���ͳ�������#################################
DIR=$(shell pwd)
BIN_DIR=$(DIR)/bin
LIB_DIR=$(DIR)/lib
SRC_DIR=$(DIR)/src
INCLUDE_DIR=$(DIR)/include
OBJ_DIR=$(DIR)/obj
DEPS_DIR=$(DIR)/deps
DUMP_OBJ=$(BIN_DIR)/rv.dump
PROGRAM=$(BIN_DIR)/rv.elf
TAR_BIN=$(BIN_DIR)/rv.bin
###################obj文件############################################
EXTENSION=c
AMS := $(patsubst $(SRC_DIR)/%.s, $(OBJ_DIR)/%.o,$(wildcard $(SRC_DIR)/*.s))
OBJS:=$(patsubst $(SRC_DIR)/%.$(EXTENSION), $(OBJ_DIR)/%.o,$(wildcard $(SRC_DIR)/*.$(EXTENSION)))
OBJS+=$(AMS)
DEPS:=$(patsubst $(OBJ_DIR)/%.o, $(DEPS_DIR)/%.d, $(OBJS))
CODE :=
CODE +=$(wildcard $(SRC_DIR)/*.s)
CODE +=$(wildcard $(SRC_DIR)/*.c)
$(info $(DEPS))
###################includeͷ�ļ�·��##################################
INCLUDE=\
-I$(INCLUDE_DIR)
###################lib�ļ���·��######################################
###################����ѡ�������###################################
COMPLIE:=riscv64-unknown-elf-
CC :=$(COMPLIE)gcc
DUMP:=$(COMPLIE)objdump
CFLAGS=-Wall -W -g
OBJCP:=$(COMPLIE)objcopy
ARCH_BASE = rv32imc
ABI_BASE = ilp32
RISCV_MARCH = $(ARCH_BASE)
ABI =$(ABI_BASE)
RISCV_MARCH := $(RISCV_MARCH)
ARCH_FLAGS = -march=$(RISCV_MARCH) -mabi=$(ABI) -mcmodel=medlow
CFLAGS +=$(ARCH_FLAGS)
CFLAGS += -Wmaybe-uninitialized -ffunction-sections -fdata-sections -fno-exceptions \
-fno-builtin-printf -Wl,--wrap=_sbrk -Wno-unused-function -Wno-unused-parameter -Wno-format
LDFLAGS += -nostartfiles --specs=nano.specs
LINK_SCRIPT:=$(DIR)/ld/link_flash_bs1.lds
#LINK_SCRIPT:=$(DIR)/link_sram_bs1.lds
LDFLAGS +=$(ARCH_FLAGS)
LDFLAGS += -Wl,-T $(LINK_SCRIPT)
LDFLAGS += -Wl,--gc-sections
LDFLAGS += -Wl,--no-relax
# CFLAGS += -march=rv32imac -mabi=ilp32 -mcmodel=medlow -ffunction-sections -fdata-sections
###################����Ŀ��###########################################
.PHONY: all clean rebuild
all:$(OBJS)
@echo $(DEPS_DIR)
$(CC) -o $(PROGRAM) $(OBJS) $(LDFLAGS) $(CFLAGS)
$(DUMP) -D -S $(PROGRAM) > $(DUMP_OBJ) 2>&1
$(OBJCP) $(PROGRAM) -O binary $(TAR_BIN)
$(DEPS_DIR)/%.d: $(SRC_DIR)/%.$(EXTENSION)
$(CC) -MM $(INCLUDE) $(CFLAGS) $< | sed -e 1's,^,$(OBJ_DIR)/,' > $@
sinclude $(DEPS)
$(OBJ_DIR)/%.o: $(SRC_DIR)/%.s
$(CC) $< -o $@ -c $(CFLAGS) $(INCLUDE)
$(OBJ_DIR)/%.o: $(SRC_DIR)/%.c
$(CC) $< -o $@ -c $(CFLAGS) $(INCLUDE)
rebuild: clean all
clean:
rm -rf $(OBJS) $(BIN_DIR)/* $(OBJ_DIR)/* $(DEPS_DIR)/*
Loading...
马建仓 AI 助手
尝试更多
代码解读
代码找茬
代码优化
1
https://gitee.com/wangpeng25/riscv-learning.git
git@gitee.com:wangpeng25/riscv-learning.git
wangpeng25
riscv-learning
riscv学习
main

搜索帮助