Merge remote-tracking branch 'origin/main' into develop
This commit is contained in:
3
benchmarks/coremark/.gitignore
vendored
Normal file
3
benchmarks/coremark/.gitignore
vendored
Normal file
@@ -0,0 +1,3 @@
|
||||
*.o
|
||||
*.elf
|
||||
*.log
|
@@ -186,6 +186,7 @@ portable_init(core_portable *p, int *argc, char *argv[])
|
||||
ee_printf("ERROR! Please define ee_u32 to a 32b unsigned type!\n");
|
||||
}
|
||||
p->portable_id = 1;
|
||||
ee_printf("portable_init finished.\n");
|
||||
}
|
||||
/* Function : portable_fini
|
||||
Target specific final code
|
||||
|
@@ -16,27 +16,35 @@
|
||||
|
||||
#File : core_portme.mak
|
||||
ISA?=imc
|
||||
RISCV_ARCH:=rv32$(ISA)
|
||||
RISCV_ABI:=ilp32
|
||||
BOARD?=iss
|
||||
|
||||
RISCV_ARCH:=rv32$(ISA)_zicsr_zifencei
|
||||
ifeq ($(ISA),e)
|
||||
RISCV_ABI:=ilp32e
|
||||
else
|
||||
RISCV_ABI:=ilp32
|
||||
endif
|
||||
BSP_BASE = ../../../bare-metal-bsp
|
||||
|
||||
TRIPLET?=riscv64-unknown-elf
|
||||
# Flag : OUTFLAG
|
||||
# Use this flag to define how to to get an executable (e.g -o)
|
||||
OUTFLAG= -o
|
||||
# Flag : CC
|
||||
# Use this flag to define compiler to use
|
||||
CC = riscv32-unknown-elf-gcc
|
||||
CC = $(TRIPLET)-gcc
|
||||
# Flag : LD
|
||||
# Use this flag to define compiler to use
|
||||
LD = riscv32-unknown-elf-gcc
|
||||
LD = $(TRIPLET)-gcc
|
||||
# Flag : AS
|
||||
# Use this flag to define compiler to use
|
||||
AS = riscv32-unknown-elf-as
|
||||
AS = $(TRIPLET)-as
|
||||
# Flag : CFLAGS
|
||||
# Use this flag to define compiler options. Note, you can add compiler options from the command line using XCFLAGS="other flags"
|
||||
PORT_CFLAGS = -march=$(RISCV_ARCH) -mabi=$(RISCV_ABI) -O3 -DCLOCKS_PER_SEC=10000000 -nostdlib -nostartfiles -nodefaultlibs \
|
||||
-funroll-loops -fpeel-loops -fgcse-sm -fgcse-las -flto
|
||||
-funroll-loops -fpeel-loops -fgcse-sm -fgcse-las -flto -g
|
||||
FLAGS_STR = "$(PORT_CFLAGS) $(XCFLAGS) $(XLFLAGS) $(LFLAGS_END)"
|
||||
CFLAGS = $(PORT_CFLAGS) -I$(PORT_DIR) -I. -DFLAGS_STR=\"$(FLAGS_STR)\"
|
||||
CFLAGS = $(PORT_CFLAGS) -I$(PORT_DIR) -I. -DFLAGS_STR=\"$(FLAGS_STR)\" -I$(BSP_BASE)/env/$(BOARD)
|
||||
#Flag : LFLAGS_END
|
||||
# Define any libraries needed for linking or other flags that should come at the end of the link line (e.g. linker scripts).
|
||||
# Note : On certain platforms, the default clock_gettime implementation is supported but requires linking of librt.
|
||||
@@ -44,7 +52,7 @@ SEPARATE_COMPILE=1
|
||||
# Flag : SEPARATE_COMPILE
|
||||
# You must also define below how to create an object file, and how to link.
|
||||
OBJOUT = -o
|
||||
LFLAGS =
|
||||
LFLAGS = -march=$(RISCV_ARCH) -mabi=$(RISCV_ABI) -g
|
||||
#--specs=nano.specs -march=$(RISCV_ARCH) -mabi=$(RISCV_ABI)
|
||||
ASFLAGS =
|
||||
OFLAG = -o
|
||||
|
@@ -659,24 +659,30 @@ ee_vsprintf(char *buf, const char *fmt, va_list args)
|
||||
return str - buf;
|
||||
}
|
||||
|
||||
#define UART0_BASE_ADDR 0xffff0000ULL
|
||||
|
||||
#define UART_REG_TXFIFO 0x00
|
||||
#define UART_REG_RXFIFO 0x04
|
||||
#define UART_REG_TXCTRL 0x08
|
||||
#define UART_REG_RXCTRL 0x0c
|
||||
#define UART_REG_IE 0x10
|
||||
#define UART_REG_IP 0x14
|
||||
#define UART_REG_DIV 0x18
|
||||
#define UART_TXEN 0x1
|
||||
|
||||
#define UART0_REG(ADDR) *((ee_u32*) (UART0_BASE_ADDR + ADDR))
|
||||
#include <platform.h>
|
||||
|
||||
void
|
||||
uart_send_char(char c)
|
||||
{
|
||||
while (UART0_REG(UART_REG_TXFIFO) & 0x80000000) ;
|
||||
UART0_REG(UART_REG_TXFIFO) = (unsigned char)c;
|
||||
#if defined(BOARD_ehrenberg)
|
||||
while (get_uart_rx_tx_reg_tx_free(uart)==0) ;
|
||||
uart_write(uart, c);
|
||||
if (c == '\n') {
|
||||
while (get_uart_rx_tx_reg_tx_free(uart)==0) ;
|
||||
uart_write(uart, '\r');
|
||||
}
|
||||
#elif defined(BOARD_iss)
|
||||
*((uint32_t*) 0xFFFF0000) = c;
|
||||
#elif defined(BOARD_TGCP)
|
||||
//TODO: implement
|
||||
#else
|
||||
while (UART0_REG(UART_REG_TXFIFO) & 0x80000000) ;
|
||||
UART0_REG(UART_REG_TXFIFO) = c;
|
||||
if (c == '\n') {
|
||||
while (UART0_REG(UART_REG_TXFIFO) & 0x80000000) ;
|
||||
UART0_REG(UART_REG_TXFIFO) = '\r';
|
||||
}
|
||||
#endif
|
||||
}
|
||||
|
||||
int
|
||||
|
@@ -2,7 +2,7 @@ TARGET := dhrystone
|
||||
ISA?=imc
|
||||
|
||||
ASM_SRCS :=
|
||||
C_SRCS := dhry_stubs.c dhry_printf.c dhry_1.c dhry_2.c
|
||||
C_SRCS := dhry_stubs.c dhry_1.c dhry_2.c
|
||||
HEADERS := dhry.h
|
||||
|
||||
BOARD=iss
|
||||
@@ -14,12 +14,11 @@ else
|
||||
RISCV_ABI:=ilp32
|
||||
endif
|
||||
# '-lgcc -lm' are needed to add softfloat routines
|
||||
CFLAGS := -g -march=$(RISCV_ARCH) -mabi=$(RISCV_ABI) -mcmodel=medlow -O3 -DHZ=32768 -DTIME -DNO_INIT -fno-inline -fno-builtin-printf -fno-common -Wno-implicit \
|
||||
CFLAGS := -g -march=$(RISCV_ARCH)_zicsr_zifencei -mabi=$(RISCV_ABI) -mcmodel=medlow -O3 -DHZ=32768 -DTIME -DNO_INIT -fno-inline -fno-builtin-printf -fno-common -Wno-implicit \
|
||||
-funroll-loops -fpeel-loops -fgcse-sm -fgcse-las
|
||||
LDFLAGS := -g -march=$(RISCV_ARCH) -mabi=$(RISCV_ABI) -mcmodel=medlow -Wl,--wrap=scanf -Wl,--wrap=printf -Wl,--wrap=exit -lgcc -lm
|
||||
LDFLAGS := -g -march=$(RISCV_ARCH)_zicsr_zifencei -mabi=$(RISCV_ABI) -mcmodel=medlow -Wl,--wrap=scanf -Wl,--wrap=printf -Wl,--wrap=exit -lgcc -lm
|
||||
|
||||
TOOL_DIR=$(dir $(compiler))
|
||||
|
||||
TRIPLET=riscv32-unknown-elf
|
||||
BSP_BASE = ../../bare-metal-bsp
|
||||
include $(BSP_BASE)/env/common-gcc.mk
|
||||
|
@@ -1,15 +0,0 @@
|
||||
/* The functions in this file are only meant to support Dhrystone on an
|
||||
* embedded RV32 system and are obviously incorrect in general. */
|
||||
|
||||
#include <stdarg.h>
|
||||
#include <stddef.h>
|
||||
#include <stdio.h>
|
||||
#include <stdint.h>
|
||||
#include <string.h>
|
||||
#include <unistd.h>
|
||||
|
||||
//#undef putchar
|
||||
//int putchar(int ch)
|
||||
//{
|
||||
// return write(1, &ch, 1) == 1 ? ch : -1;
|
||||
//}
|
@@ -11,12 +11,12 @@ long time(void)
|
||||
// set the number of dhrystone iterations
|
||||
void __wrap_scanf(const char* fmt, int* n)
|
||||
{
|
||||
*n = 200000;
|
||||
*n = 20000;
|
||||
}
|
||||
|
||||
extern volatile uint32_t tohost;
|
||||
|
||||
void __wrap_exit(int n){
|
||||
void exit(int n){
|
||||
tohost = 0x1;
|
||||
for (;;);
|
||||
}
|
||||
|
Reference in New Issue
Block a user