From 2a9ce332c7f77a63562f36e98f4f5d98d2bca8f9 Mon Sep 17 00:00:00 2001 From: Stanislaw Kaushanski Date: Fri, 9 Apr 2021 11:19:05 +0200 Subject: [PATCH] fix hello-world init --- hello-world/Makefile | 14 +++++++++++--- hello-world/bsp/env/start.S | 2 +- hello-world/hello | Bin 50524 -> 84296 bytes raven_spn/src/spn_data/data_array.py | 3 ++- 4 files changed, 14 insertions(+), 5 deletions(-) diff --git a/hello-world/Makefile b/hello-world/Makefile index d3ee587..58ec214 100644 --- a/hello-world/Makefile +++ b/hello-world/Makefile @@ -2,14 +2,22 @@ TARGET = hello C_SRCS = $(wildcard *.c) #HEADERS = $(wildcard *.h) -#CFLAGS += -O2 +CFLAGS += -g BOARD=freedom-e300-hifive1 LINK_TARGET=flash RISCV_ARCH:=rv32i RISCV_ABI:=ilp32 -LDFLAGS := -Wl,--wrap=scanf -Wl,--wrap=printf -march=$(RISCV_ARCH) -mabi=$(RISCV_ABI) +LDFLAGS := -Wl,--wrap=scanf -Wl,--wrap=printf -march=$(RISCV_ARCH) -mabi=$(RISCV_ABI) -g + +#TOOL_DIR?=/opt/shared/riscv/FreedomStudio/20180122/SiFive/riscv64-unknown-elf-gcc-20171231-x86_64-linux-centos6/bin +TOOL_DIR=/opt/shared/riscv/tools/Ubuntu/riscv64-unknown-elf-gcc-8.3.0-2020.04.1-x86_64-linux-ubuntu14/bin -TOOL_DIR?=/opt/shared/riscv/FreedomStudio/20180122/SiFive/riscv64-unknown-elf-gcc-20171231-x86_64-linux-centos6/bin BSP_BASE = ./bsp include $(BSP_BASE)/env/common.mk + +.PHONY: all +all: $(TARGET).dump + +$(TARGET).dump: $(TARGET) + $(TOOL_DIR)/$(TRIPLET)-objdump -d -S -C $< > $@ \ No newline at end of file diff --git a/hello-world/bsp/env/start.S b/hello-world/bsp/env/start.S index 4e9f665..1535a78 100644 --- a/hello-world/bsp/env/start.S +++ b/hello-world/bsp/env/start.S @@ -75,7 +75,7 @@ _start: #else sd ra, 8(sp) #endif - + call _init /* argc = argv = 0 */ li a0, 0 li a1, 0 diff --git a/hello-world/hello b/hello-world/hello index 0d9c2b2aaf7a81145fed6e130473c10aa124d9fd..1ee490e66060b74f674c58320a80e6334b8ed7f1 100755 GIT binary patch literal 84296 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 literal 50524 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\n" -cpp_file += "#include \n\n" +cpp_file += "#include \n" +cpp_file += "#include \n\n" # The results in the outputdata.txt file are not directly what comes out of the PE but the natural logarithm of it. cpp_file += "constexpr auto ln2 = std::log(2);\n" cpp_file += "std::array input_data = {\n" + str(in_data) + "}; \n\n"