URL
https://opencores.org/ocsvn/neorv32/neorv32/trunk
Subversion Repositories neorv32
Compare Revisions
- This comparison shows the changes necessary to convert path
/neorv32/trunk/sw
- from Rev 18 to Rev 19
- ↔ Reverse comparison
Rev 18 → Rev 19
/bootloader/makefile
36,29 → 36,25
|
|
# ***************************************************************************** |
# USER CONFIGURATION |
# USER CONFIGURATION (use default if not set by user) |
# ***************************************************************************** |
# Compiler effort |
EFFORT = -Os |
EFFORT ?= -Os |
|
# User's application sources (add additional files here) |
APP_SRC = $(wildcard *.c) |
APP_SRC ?= $(wildcard *.c) |
|
# User's application include folders (don't forget the '-I' before each entry) |
APP_INC = -I . |
APP_INC ?= -I . |
|
# Compiler toolchain (use default if not set by user) |
# Compiler toolchain |
RISCV_TOOLCHAIN ?= riscv32-unknown-elf |
|
# CPU architecture and ABI |
MARCH = -march=rv32i |
MABI = -mabi=ilp32 |
MARCH ?= -march=rv32i |
MABI ?= -mabi=ilp32 |
|
# Path to runtime c library (use default if not set by user) |
LIBC_PATH ?= $(dir $(shell which $(CC)))../$(RISCV_TOOLCHAIN)/lib/libc.a |
LIBGCC_PATH ?= $(dir $(shell which $(CC)))../lib/gcc/$(RISCV_TOOLCHAIN)/*/libgcc.a |
|
# Relative or absolute path to the NEORV32 home folder (use default if not set by user) |
# Relative or absolute path to the NEORV32 home folder |
NEORV32_HOME ?= ../.. |
# ***************************************************************************** |
|
82,16 → 78,14
|
|
# ----------------------------------------------------------------------------- |
# Add NEORV32 sources to input SRCs |
# NEORV32 core sources |
# ----------------------------------------------------------------------------- |
APP_SRC += $(wildcard $(NEORV32_SRC_PATH)/*.c) |
CORE_SRC = $(wildcard $(NEORV32_SRC_PATH)/*.c) |
|
|
# ----------------------------------------------------------------------------- |
# Make defaults |
# ----------------------------------------------------------------------------- |
.SUFFIXES: |
.PHONY: all |
.DEFAULT_GOAL := help |
|
|
106,7 → 100,8
all: $(APP_ASM) $(APP_EXE) neorv32_application_image.vhd |
|
# define all object files |
OBJ = $(APP_SRC:.c=.o) |
OBJ = $(APP_SRC:.c=.o) |
OBJ += $(CORE_SRC:.c=.o) |
|
|
# ----------------------------------------------------------------------------- |
114,7 → 109,6
# ----------------------------------------------------------------------------- |
# compiler tools |
CC = $(RISCV_TOOLCHAIN)-gcc |
LD = $(RISCV_TOOLCHAIN)-ld |
OBJDUMP = $(RISCV_TOOLCHAIN)-objdump |
OBJCOPY = $(RISCV_TOOLCHAIN)-objcopy |
SIZE = $(RISCV_TOOLCHAIN)-size |
122,23 → 116,14
# NEORV32 executable image generator |
IMAGE_GEN = $(NEORV32_EXG_PATH)/image_gen |
|
# Compiler flags |
CC_OPTS = $(MARCH) $(MABI) $(EFFORT) -Wall -ffunction-sections -fdata-sections -lm |
# Compiler & linker flags |
CC_OPTS = $(MARCH) $(MABI) $(EFFORT) -Wall -ffunction-sections -fdata-sections -nostartfiles |
CC_OPTS += -Wl,--gc-sections -lm -lc -lgcc -lc |
|
# Linker flags |
LD_OPTS = $(EFFORT) --gc-sections |
|
# User flags for additional config |
# User flags for additional configuration |
USER_FLAGS = |
CC_OPTS += $(USER_FLAGS) |
|
# Use embedded RISC-V CPU extension? |
ifeq (,$(findstring rv32e,$(MARCH))) |
CC_OPTS += |
else |
CC_OPTS += -D__RISCV_EMBEDDED_CPU__ |
endif |
|
# ----------------------------------------------------------------------------- |
# Host native compiler |
# ----------------------------------------------------------------------------- |
167,7 → 152,7
|
# Link object files and show memory utilization |
main.elf: $(OBJ) |
@$(LD) $(LD_OPTS) -I $(NEORV32_INC_PATH) $(APP_INC) -T $(NEORV32_COM_PATH)/neorv32.ld $(OBJ) $(LIBC_PATH) $(LIBGCC_PATH) -o $@ |
@$(CC) $(CC_OPTS) -I $(NEORV32_INC_PATH) $(APP_INC) -T $(NEORV32_COM_PATH)/neorv32.ld $(OBJ) -o $@ |
@echo "Memory utilization:" |
@$(SIZE) main.elf |
|
213,7 → 198,7
# Compile and install bootloader |
bootloader: bootloader_crt0.elf $(OBJ) $(IMAGE_GEN) |
@set -e |
@$(LD) $(LD_OPTS) -I $(NEORV32_INC_PATH) $(APP_INC) -T $(NEORV32_COM_PATH)/bootloader_neorv32.ld $(OBJ) $(LIBC_PATH) $(LIBGCC_PATH) -o bootloader.elf |
@$(CC) $(CC_OPTS) -I $(NEORV32_INC_PATH) $(APP_INC) -T $(NEORV32_COM_PATH)/bootloader_neorv32.ld $(OBJ) -o bootloader.elf |
@echo "Memory utilization:" |
@$(SIZE) bootloader.elf |
@$(OBJDUMP) -D -S -z bootloader.elf > bootloader.s |
238,8 → 223,6
@echo "NEORV32_HOME: $(NEORV32_HOME)" |
@echo "---------------- Check: $(CC) ----------------" |
@$(CC) -v |
@echo "---------------- Check: $(LD) ----------------" |
@$(LD) -V |
@echo "---------------- Check: $(OBJDUMP) ----------------" |
@$(OBJDUMP) -V |
@echo "---------------- Check: $(OBJCOPY) ----------------" |
248,7 → 231,7
@$(SIZE) -V |
@echo "---------------- Check: NEORV32 image_gen ----------------" |
@$(IMAGE_GEN) -help |
@echo "---------------- Check: native gcc ----------------" |
@echo "---------------- Check: Native GCC ----------------" |
@$(CC_X86) -v |
@echo |
@echo "Toolchain check OK" |
259,13 → 242,18
# ----------------------------------------------------------------------------- |
info: |
@echo "---------------- Info: Project ----------------" |
@echo "Project: $(shell basename $(CURDIR))" |
@echo "Project source files: $(APP_SRC)" |
@echo "Project include folders: $(NEORV32_INC_PATH) $(APP_INC)" |
@echo "Project object files: $(OBJ)" |
@echo "Project folder: $(shell basename $(CURDIR))" |
@echo "Source files: $(APP_SRC)" |
@echo "Include folder(s): $(APP_INC)" |
@echo "---------------- Info: NEORV32 ----------------" |
@echo "NEORV32 home folder (NEORV32_HOME): $(NEORV32_HOME)" |
@echo "IMAGE_GEN: $(IMAGE_GEN)" |
@echo "Core source files:" |
@echo "$(CORE_SRC)" |
@echo "Core include folder:" |
@echo "$(NEORV32_INC_PATH)" |
@echo "Project object files:" |
@echo "$(OBJ)" |
@echo "---------------- Info: RISC-V CPU ----------------" |
@echo "MARCH: $(MARCH)" |
@echo "MABI: $(MABI)" |
272,17 → 260,17
@echo "---------------- Info: RISC-V Toolchain ----------------" |
@echo "Toolchain: $(RISCV_TOLLCHAIN)" |
@echo "CC: $(CC)" |
@echo "LD: $(LD)" |
@echo "OBJDUMP: $(OBJDUMP)" |
@echo "OBJCOPY: $(OBJCOPY)" |
@echo "SIZE: $(SIZE)" |
@echo "---------------- Info: C Lib ----------------" |
@echo "CLIB: $(LIBC_PATH)" |
@echo "GCCLIB: $(LIBGCC_PATH)" |
@echo "---------------- Info: Libraries ----------------" |
@echo "LIBGCC:" |
@$(CC) -print-libgcc-file-name |
@echo "SEARCH-DIRS:" |
@$(CC) -print-search-dirs |
@echo "---------------- Info: Flags ----------------" |
@echo "CC_OPTS: $(CC_OPTS)" |
@echo "LD_OPTS: $(LD_OPTS)" |
@echo "---------------- Info: Host Native GCC ----------------" |
@echo "---------------- Info: Host Native GCC Flags ----------------" |
@echo "CC_X86: $(CC_X86)" |
|
|
/common/crt0.S
68,34 → 68,15
addi x7, x6, 0 |
addi x8, x7, 0 |
addi x9, x8, 0 |
addi x10, x9, 0 |
addi x11, x10, 0 |
addi x12, x11, 0 |
addi x13, x12, 0 |
addi x14, x13, 0 |
//addi x10, x9, 0 |
//addi x11, x10, 0 |
//addi x12, x11, 0 |
//addi x13, x12, 0 |
//addi x14, x13, 0 |
addi x15, x14, 0 |
|
// the following registers do not exist in rv32e |
// "__RISCV_EMBEDDED_CPU__" is automatically defined by the makefiles when |
// compiling for a rv32e* architecture |
#ifndef __RISCV_EMBEDDED_CPU__ |
addi x16, x15, 0 |
addi x17, x16, 0 |
addi x18, x17, 0 |
addi x19, x18, 0 |
addi x20, x19, 0 |
addi x21, x20, 0 |
addi x22, x21, 0 |
addi x23, x22, 0 |
addi x24, x23, 0 |
addi x25, x24, 0 |
addi x26, x25, 0 |
addi x27, x26, 0 |
addi x28, x27, 0 |
addi x29, x28, 0 |
addi x30, x29, 0 |
addi x31, x30, 0 |
#endif |
// since we dont know here if we are compiling for a rv32e architecture |
// we won't touch registers above x15 |
|
|
// ********************************************************* |
/example/blink_led/makefile
36,29 → 36,25
|
|
# ***************************************************************************** |
# USER CONFIGURATION |
# USER CONFIGURATION (use default if not set by user) |
# ***************************************************************************** |
# Compiler effort |
EFFORT = -Os |
EFFORT ?= -Os |
|
# User's application sources (add additional files here) |
APP_SRC = $(wildcard *.c) |
APP_SRC ?= $(wildcard *.c) |
|
# User's application include folders (don't forget the '-I' before each entry) |
APP_INC = -I . |
APP_INC ?= -I . |
|
# Compiler toolchain (use default if not set by user) |
# Compiler toolchain |
RISCV_TOOLCHAIN ?= riscv32-unknown-elf |
|
# CPU architecture and ABI |
MARCH = -march=rv32i |
MABI = -mabi=ilp32 |
MARCH ?= -march=rv32i |
MABI ?= -mabi=ilp32 |
|
# Path to runtime c library (use default if not set by user) |
LIBC_PATH ?= $(dir $(shell which $(CC)))../$(RISCV_TOOLCHAIN)/lib/libc.a |
LIBGCC_PATH ?= $(dir $(shell which $(CC)))../lib/gcc/$(RISCV_TOOLCHAIN)/*/libgcc.a |
|
# Relative or absolute path to the NEORV32 home folder (use default if not set by user) |
# Relative or absolute path to the NEORV32 home folder |
NEORV32_HOME ?= ../../.. |
# ***************************************************************************** |
|
113,7 → 109,6
# ----------------------------------------------------------------------------- |
# compiler tools |
CC = $(RISCV_TOOLCHAIN)-gcc |
LD = $(RISCV_TOOLCHAIN)-ld |
OBJDUMP = $(RISCV_TOOLCHAIN)-objdump |
OBJCOPY = $(RISCV_TOOLCHAIN)-objcopy |
SIZE = $(RISCV_TOOLCHAIN)-size |
121,23 → 116,14
# NEORV32 executable image generator |
IMAGE_GEN = $(NEORV32_EXG_PATH)/image_gen |
|
# Compiler flags |
CC_OPTS = $(MARCH) $(MABI) $(EFFORT) -Wall -ffunction-sections -fdata-sections -lm |
# Compiler & linker flags |
CC_OPTS = $(MARCH) $(MABI) $(EFFORT) -Wall -ffunction-sections -fdata-sections -nostartfiles |
CC_OPTS += -Wl,--gc-sections -lm -lc -lgcc -lc |
|
# Linker flags |
LD_OPTS = $(EFFORT) --gc-sections |
|
# User flags for additional config |
# User flags for additional configuration |
USER_FLAGS = |
CC_OPTS += $(USER_FLAGS) |
|
# Use embedded RISC-V CPU extension? |
ifeq (,$(findstring rv32e,$(MARCH))) |
CC_OPTS += |
else |
CC_OPTS += -D__RISCV_EMBEDDED_CPU__ |
endif |
|
# ----------------------------------------------------------------------------- |
# Host native compiler |
# ----------------------------------------------------------------------------- |
166,7 → 152,7
|
# Link object files and show memory utilization |
main.elf: $(OBJ) |
@$(LD) $(LD_OPTS) -I $(NEORV32_INC_PATH) $(APP_INC) -T $(NEORV32_COM_PATH)/neorv32.ld $(OBJ) $(LIBC_PATH) $(LIBGCC_PATH) -o $@ |
@$(CC) $(CC_OPTS) -I $(NEORV32_INC_PATH) $(APP_INC) -T $(NEORV32_COM_PATH)/neorv32.ld $(OBJ) -o $@ |
@echo "Memory utilization:" |
@$(SIZE) main.elf |
|
212,7 → 198,7
# Compile and install bootloader |
bootloader: bootloader_crt0.elf $(OBJ) $(IMAGE_GEN) |
@set -e |
@$(LD) $(LD_OPTS) -I $(NEORV32_INC_PATH) $(APP_INC) -T $(NEORV32_COM_PATH)/bootloader_neorv32.ld $(OBJ) $(LIBC_PATH) $(LIBGCC_PATH) -o bootloader.elf |
@$(CC) $(CC_OPTS) -I $(NEORV32_INC_PATH) $(APP_INC) -T $(NEORV32_COM_PATH)/bootloader_neorv32.ld $(OBJ) -o bootloader.elf |
@echo "Memory utilization:" |
@$(SIZE) bootloader.elf |
@$(OBJDUMP) -D -S -z bootloader.elf > bootloader.s |
237,8 → 223,6
@echo "NEORV32_HOME: $(NEORV32_HOME)" |
@echo "---------------- Check: $(CC) ----------------" |
@$(CC) -v |
@echo "---------------- Check: $(LD) ----------------" |
@$(LD) -V |
@echo "---------------- Check: $(OBJDUMP) ----------------" |
@$(OBJDUMP) -V |
@echo "---------------- Check: $(OBJCOPY) ----------------" |
247,7 → 231,7
@$(SIZE) -V |
@echo "---------------- Check: NEORV32 image_gen ----------------" |
@$(IMAGE_GEN) -help |
@echo "---------------- Check: native gcc ----------------" |
@echo "---------------- Check: Native GCC ----------------" |
@$(CC_X86) -v |
@echo |
@echo "Toolchain check OK" |
276,17 → 260,17
@echo "---------------- Info: RISC-V Toolchain ----------------" |
@echo "Toolchain: $(RISCV_TOLLCHAIN)" |
@echo "CC: $(CC)" |
@echo "LD: $(LD)" |
@echo "OBJDUMP: $(OBJDUMP)" |
@echo "OBJCOPY: $(OBJCOPY)" |
@echo "SIZE: $(SIZE)" |
@echo "---------------- Info: C Lib ----------------" |
@echo "CLIB: $(LIBC_PATH)" |
@echo "GCCLIB: $(LIBGCC_PATH)" |
@echo "---------------- Info: Libraries ----------------" |
@echo "LIBGCC:" |
@$(CC) -print-libgcc-file-name |
@echo "SEARCH-DIRS:" |
@$(CC) -print-search-dirs |
@echo "---------------- Info: Flags ----------------" |
@echo "CC_OPTS: $(CC_OPTS)" |
@echo "LD_OPTS: $(LD_OPTS)" |
@echo "---------------- Info: Host Native GCC ----------------" |
@echo "---------------- Info: Host Native GCC Flags ----------------" |
@echo "CC_X86: $(CC_X86)" |
|
|
/example/coremark/makefile
36,29 → 36,25
|
|
# ***************************************************************************** |
# USER CONFIGURATION |
# USER CONFIGURATION (use default if not set by user) |
# ***************************************************************************** |
# Compiler effort |
EFFORT = -Os |
EFFORT ?= -Os |
|
# User's application sources (add additional files here) |
APP_SRC = $(wildcard *.c) |
APP_SRC ?= $(wildcard *.c) |
|
# User's application include folders (don't forget the '-I' before each entry) |
APP_INC = -I . |
APP_INC ?= -I . |
|
# Compiler toolchain (use default if not set by user) |
# Compiler toolchain |
RISCV_TOOLCHAIN ?= riscv32-unknown-elf |
|
# CPU architecture and ABI |
MARCH = -march=rv32i |
MABI = -mabi=ilp32 |
MARCH ?= -march=rv32i |
MABI ?= -mabi=ilp32 |
|
# Path to runtime c library (use default if not set by user) |
LIBC_PATH ?= $(dir $(shell which $(CC)))../$(RISCV_TOOLCHAIN)/lib/libc.a |
LIBGCC_PATH ?= $(dir $(shell which $(CC)))../lib/gcc/$(RISCV_TOOLCHAIN)/*/libgcc.a |
|
# Relative or absolute path to the NEORV32 home folder (use default if not set by user) |
# Relative or absolute path to the NEORV32 home folder |
NEORV32_HOME ?= ../../.. |
# ***************************************************************************** |
|
113,7 → 109,6
# ----------------------------------------------------------------------------- |
# compiler tools |
CC = $(RISCV_TOOLCHAIN)-gcc |
LD = $(RISCV_TOOLCHAIN)-ld |
OBJDUMP = $(RISCV_TOOLCHAIN)-objdump |
OBJCOPY = $(RISCV_TOOLCHAIN)-objcopy |
SIZE = $(RISCV_TOOLCHAIN)-size |
121,23 → 116,14
# NEORV32 executable image generator |
IMAGE_GEN = $(NEORV32_EXG_PATH)/image_gen |
|
# Compiler flags |
CC_OPTS = $(MARCH) $(MABI) $(EFFORT) -Wall -ffunction-sections -fdata-sections -lm |
# Compiler & linker flags |
CC_OPTS = $(MARCH) $(MABI) $(EFFORT) -Wall -ffunction-sections -fdata-sections -nostartfiles |
CC_OPTS += -Wl,--gc-sections -lm -lc -lgcc -lc |
|
# Linker flags |
LD_OPTS = $(EFFORT) --gc-sections |
|
# User flags for additional config |
# User flags for additional configuration |
USER_FLAGS = |
CC_OPTS += $(USER_FLAGS) |
|
# Use embedded RISC-V CPU extension? |
ifeq (,$(findstring rv32e,$(MARCH))) |
CC_OPTS += |
else |
CC_OPTS += -D__RISCV_EMBEDDED_CPU__ |
endif |
|
# ----------------------------------------------------------------------------- |
# Host native compiler |
# ----------------------------------------------------------------------------- |
166,7 → 152,7
|
# Link object files and show memory utilization |
main.elf: $(OBJ) |
@$(LD) $(LD_OPTS) -I $(NEORV32_INC_PATH) $(APP_INC) -T $(NEORV32_COM_PATH)/neorv32.ld $(OBJ) $(LIBC_PATH) $(LIBGCC_PATH) -o $@ |
@$(CC) $(CC_OPTS) -I $(NEORV32_INC_PATH) $(APP_INC) -T $(NEORV32_COM_PATH)/neorv32.ld $(OBJ) -o $@ |
@echo "Memory utilization:" |
@$(SIZE) main.elf |
|
212,7 → 198,7
# Compile and install bootloader |
bootloader: bootloader_crt0.elf $(OBJ) $(IMAGE_GEN) |
@set -e |
@$(LD) $(LD_OPTS) -I $(NEORV32_INC_PATH) $(APP_INC) -T $(NEORV32_COM_PATH)/bootloader_neorv32.ld $(OBJ) $(LIBC_PATH) $(LIBGCC_PATH) -o bootloader.elf |
@$(CC) $(CC_OPTS) -I $(NEORV32_INC_PATH) $(APP_INC) -T $(NEORV32_COM_PATH)/bootloader_neorv32.ld $(OBJ) -o bootloader.elf |
@echo "Memory utilization:" |
@$(SIZE) bootloader.elf |
@$(OBJDUMP) -D -S -z bootloader.elf > bootloader.s |
237,8 → 223,6
@echo "NEORV32_HOME: $(NEORV32_HOME)" |
@echo "---------------- Check: $(CC) ----------------" |
@$(CC) -v |
@echo "---------------- Check: $(LD) ----------------" |
@$(LD) -V |
@echo "---------------- Check: $(OBJDUMP) ----------------" |
@$(OBJDUMP) -V |
@echo "---------------- Check: $(OBJCOPY) ----------------" |
247,7 → 231,7
@$(SIZE) -V |
@echo "---------------- Check: NEORV32 image_gen ----------------" |
@$(IMAGE_GEN) -help |
@echo "---------------- Check: native gcc ----------------" |
@echo "---------------- Check: Native GCC ----------------" |
@$(CC_X86) -v |
@echo |
@echo "Toolchain check OK" |
276,17 → 260,17
@echo "---------------- Info: RISC-V Toolchain ----------------" |
@echo "Toolchain: $(RISCV_TOLLCHAIN)" |
@echo "CC: $(CC)" |
@echo "LD: $(LD)" |
@echo "OBJDUMP: $(OBJDUMP)" |
@echo "OBJCOPY: $(OBJCOPY)" |
@echo "SIZE: $(SIZE)" |
@echo "---------------- Info: C Lib ----------------" |
@echo "CLIB: $(LIBC_PATH)" |
@echo "GCCLIB: $(LIBGCC_PATH)" |
@echo "---------------- Info: Libraries ----------------" |
@echo "LIBGCC:" |
@$(CC) -print-libgcc-file-name |
@echo "SEARCH-DIRS:" |
@$(CC) -print-search-dirs |
@echo "---------------- Info: Flags ----------------" |
@echo "CC_OPTS: $(CC_OPTS)" |
@echo "LD_OPTS: $(LD_OPTS)" |
@echo "---------------- Info: Host Native GCC ----------------" |
@echo "---------------- Info: Host Native GCC Flags ----------------" |
@echo "CC_X86: $(CC_X86)" |
|
|
/example/cpu_test/main.c
108,6 → 108,11
} cpu_systime; |
|
|
// reset performance counter |
neorv32_cpu_set_minstret(0); |
neorv32_cpu_set_mcycle(0); |
|
|
// check if UART unit is implemented at all |
if (neorv32_uart_available() == 0) { |
return 0; |
255,43 → 260,8
#endif |
|
|
// ---------------------------------------------------------- |
// Test counter CSR access for mcycle[h] |
// ---------------------------------------------------------- |
neorv32_uart_printf("MCYCLE[H]: "); |
cnt_test++; |
|
neorv32_cpu_csr_write(CSR_MCYCLE, 0x1BCD1234); |
neorv32_cpu_csr_write(CSR_MCYCLEH, 0x00034455); |
|
if (((neorv32_cpu_csr_read(CSR_MCYCLE) & 0xffff0000L) == 0x1BCD0000) && |
(neorv32_cpu_csr_read(CSR_MCYCLEH) == 0x00034455)) { |
test_ok(); |
} |
else { |
test_fail(); |
} |
|
|
// ---------------------------------------------------------- |
// Test counter CSR access for minstret[h] |
// ---------------------------------------------------------- |
neorv32_uart_printf("MINSTRET[H]: "); |
cnt_test++; |
|
neorv32_cpu_csr_write(CSR_MINSTRET, 0x11224499); |
neorv32_cpu_csr_write(CSR_MINSTRETH, 0x00090011); |
|
if (((neorv32_cpu_csr_read(CSR_MINSTRET) & 0xffff0000L) == 0x11220000) && |
(neorv32_cpu_csr_read(CSR_MINSTRETH) == 0x00090011)) { |
test_ok(); |
} |
else { |
test_fail(); |
} |
|
|
// ---------------------------------------------------------- |
// Test time[h] (must be == MTIME) |
// ---------------------------------------------------------- |
neorv32_uart_printf("TIME[H]: "); |
807,9 → 777,9
} |
} |
|
neorv32_uart_printf("Min granularity (0x%x): ", pmp_test_g); |
neorv32_uart_printf("Min granularity: "); |
if (i < 29) { |
neorv32_uart_printf("%u bytes per region\n", (uint32_t)(1 << (i+1+2))); |
neorv32_uart_printf("%u bytes per region (0x%x)\n", (uint32_t)(1 << (i+1+2)), pmp_test_g); |
} |
else { |
neorv32_uart_printf("2^%u bytes per region\n", i+1+2); |
909,8 → 879,19
// ---------------------------------------------------------- |
// Final test reports |
// ---------------------------------------------------------- |
neorv32_uart_printf("\n\nTests: %i\nOK: %i\nFAIL: %i\n\n", cnt_test, cnt_ok, cnt_fail); |
union { |
uint64_t uint64; |
uint32_t uint32[sizeof(uint64_t)/2]; |
} exe_instr, exe_cycles; |
|
exe_cycles.uint64 = neorv32_cpu_get_cycle(); |
exe_instr.uint64 = neorv32_cpu_get_instret(); |
|
neorv32_uart_printf("\n\nExecuted instructions: 0x%x_%x\n", exe_instr.uint32[1], exe_instr.uint32[0]); |
neorv32_uart_printf( "Clock cycles: 0x%x_%x\n", exe_cycles.uint32[1], exe_cycles.uint32[0]); |
|
neorv32_uart_printf("\nTests: %i\nOK: %i\nFAIL: %i\n\n", cnt_test, cnt_ok, cnt_fail); |
|
// final result |
if (cnt_fail == 0) { |
neorv32_uart_printf("TEST OK!\n"); |
/example/cpu_test/makefile
36,29 → 36,25
|
|
# ***************************************************************************** |
# USER CONFIGURATION |
# USER CONFIGURATION (use default if not set by user) |
# ***************************************************************************** |
# Compiler effort |
EFFORT = -Os |
EFFORT ?= -Os |
|
# User's application sources (add additional files here) |
APP_SRC = $(wildcard *.c) |
APP_SRC ?= $(wildcard *.c) |
|
# User's application include folders (don't forget the '-I' before each entry) |
APP_INC = -I . |
APP_INC ?= -I . |
|
# Compiler toolchain (use default if not set by user) |
# Compiler toolchain |
RISCV_TOOLCHAIN ?= riscv32-unknown-elf |
|
# CPU architecture and ABI |
MARCH = -march=rv32i |
MABI = -mabi=ilp32 |
MARCH ?= -march=rv32i |
MABI ?= -mabi=ilp32 |
|
# Path to runtime c library (use default if not set by user) |
LIBC_PATH ?= $(dir $(shell which $(CC)))../$(RISCV_TOOLCHAIN)/lib/libc.a |
LIBGCC_PATH ?= $(dir $(shell which $(CC)))../lib/gcc/$(RISCV_TOOLCHAIN)/*/libgcc.a |
|
# Relative or absolute path to the NEORV32 home folder (use default if not set by user) |
# Relative or absolute path to the NEORV32 home folder |
NEORV32_HOME ?= ../../.. |
# ***************************************************************************** |
|
113,7 → 109,6
# ----------------------------------------------------------------------------- |
# compiler tools |
CC = $(RISCV_TOOLCHAIN)-gcc |
LD = $(RISCV_TOOLCHAIN)-ld |
OBJDUMP = $(RISCV_TOOLCHAIN)-objdump |
OBJCOPY = $(RISCV_TOOLCHAIN)-objcopy |
SIZE = $(RISCV_TOOLCHAIN)-size |
121,23 → 116,14
# NEORV32 executable image generator |
IMAGE_GEN = $(NEORV32_EXG_PATH)/image_gen |
|
# Compiler flags |
CC_OPTS = $(MARCH) $(MABI) $(EFFORT) -Wall -ffunction-sections -fdata-sections -lm |
# Compiler & linker flags |
CC_OPTS = $(MARCH) $(MABI) $(EFFORT) -Wall -ffunction-sections -fdata-sections -nostartfiles |
CC_OPTS += -Wl,--gc-sections -lm -lc -lgcc -lc |
|
# Linker flags |
LD_OPTS = $(EFFORT) --gc-sections |
|
# User flags for additional config |
# User flags for additional configuration |
USER_FLAGS = |
CC_OPTS += $(USER_FLAGS) |
|
# Use embedded RISC-V CPU extension? |
ifeq (,$(findstring rv32e,$(MARCH))) |
CC_OPTS += |
else |
CC_OPTS += -D__RISCV_EMBEDDED_CPU__ |
endif |
|
# ----------------------------------------------------------------------------- |
# Host native compiler |
# ----------------------------------------------------------------------------- |
166,7 → 152,7
|
# Link object files and show memory utilization |
main.elf: $(OBJ) |
@$(LD) $(LD_OPTS) -I $(NEORV32_INC_PATH) $(APP_INC) -T $(NEORV32_COM_PATH)/neorv32.ld $(OBJ) $(LIBC_PATH) $(LIBGCC_PATH) -o $@ |
@$(CC) $(CC_OPTS) -I $(NEORV32_INC_PATH) $(APP_INC) -T $(NEORV32_COM_PATH)/neorv32.ld $(OBJ) -o $@ |
@echo "Memory utilization:" |
@$(SIZE) main.elf |
|
212,7 → 198,7
# Compile and install bootloader |
bootloader: bootloader_crt0.elf $(OBJ) $(IMAGE_GEN) |
@set -e |
@$(LD) $(LD_OPTS) -I $(NEORV32_INC_PATH) $(APP_INC) -T $(NEORV32_COM_PATH)/bootloader_neorv32.ld $(OBJ) $(LIBC_PATH) $(LIBGCC_PATH) -o bootloader.elf |
@$(CC) $(CC_OPTS) -I $(NEORV32_INC_PATH) $(APP_INC) -T $(NEORV32_COM_PATH)/bootloader_neorv32.ld $(OBJ) -o bootloader.elf |
@echo "Memory utilization:" |
@$(SIZE) bootloader.elf |
@$(OBJDUMP) -D -S -z bootloader.elf > bootloader.s |
237,8 → 223,6
@echo "NEORV32_HOME: $(NEORV32_HOME)" |
@echo "---------------- Check: $(CC) ----------------" |
@$(CC) -v |
@echo "---------------- Check: $(LD) ----------------" |
@$(LD) -V |
@echo "---------------- Check: $(OBJDUMP) ----------------" |
@$(OBJDUMP) -V |
@echo "---------------- Check: $(OBJCOPY) ----------------" |
247,7 → 231,7
@$(SIZE) -V |
@echo "---------------- Check: NEORV32 image_gen ----------------" |
@$(IMAGE_GEN) -help |
@echo "---------------- Check: native gcc ----------------" |
@echo "---------------- Check: Native GCC ----------------" |
@$(CC_X86) -v |
@echo |
@echo "Toolchain check OK" |
276,17 → 260,17
@echo "---------------- Info: RISC-V Toolchain ----------------" |
@echo "Toolchain: $(RISCV_TOLLCHAIN)" |
@echo "CC: $(CC)" |
@echo "LD: $(LD)" |
@echo "OBJDUMP: $(OBJDUMP)" |
@echo "OBJCOPY: $(OBJCOPY)" |
@echo "SIZE: $(SIZE)" |
@echo "---------------- Info: C Lib ----------------" |
@echo "CLIB: $(LIBC_PATH)" |
@echo "GCCLIB: $(LIBGCC_PATH)" |
@echo "---------------- Info: Libraries ----------------" |
@echo "LIBGCC:" |
@$(CC) -print-libgcc-file-name |
@echo "SEARCH-DIRS:" |
@$(CC) -print-search-dirs |
@echo "---------------- Info: Flags ----------------" |
@echo "CC_OPTS: $(CC_OPTS)" |
@echo "LD_OPTS: $(LD_OPTS)" |
@echo "---------------- Info: Host Native GCC ----------------" |
@echo "---------------- Info: Host Native GCC Flags ----------------" |
@echo "CC_X86: $(CC_X86)" |
|
|
/example/demo_pwm/makefile
36,29 → 36,25
|
|
# ***************************************************************************** |
# USER CONFIGURATION |
# USER CONFIGURATION (use default if not set by user) |
# ***************************************************************************** |
# Compiler effort |
EFFORT = -Os |
EFFORT ?= -Os |
|
# User's application sources (add additional files here) |
APP_SRC = $(wildcard *.c) |
APP_SRC ?= $(wildcard *.c) |
|
# User's application include folders (don't forget the '-I' before each entry) |
APP_INC = -I . |
APP_INC ?= -I . |
|
# Compiler toolchain (use default if not set by user) |
# Compiler toolchain |
RISCV_TOOLCHAIN ?= riscv32-unknown-elf |
|
# CPU architecture and ABI |
MARCH = -march=rv32i |
MABI = -mabi=ilp32 |
MARCH ?= -march=rv32i |
MABI ?= -mabi=ilp32 |
|
# Path to runtime c library (use default if not set by user) |
LIBC_PATH ?= $(dir $(shell which $(CC)))../$(RISCV_TOOLCHAIN)/lib/libc.a |
LIBGCC_PATH ?= $(dir $(shell which $(CC)))../lib/gcc/$(RISCV_TOOLCHAIN)/*/libgcc.a |
|
# Relative or absolute path to the NEORV32 home folder (use default if not set by user) |
# Relative or absolute path to the NEORV32 home folder |
NEORV32_HOME ?= ../../.. |
# ***************************************************************************** |
|
113,7 → 109,6
# ----------------------------------------------------------------------------- |
# compiler tools |
CC = $(RISCV_TOOLCHAIN)-gcc |
LD = $(RISCV_TOOLCHAIN)-ld |
OBJDUMP = $(RISCV_TOOLCHAIN)-objdump |
OBJCOPY = $(RISCV_TOOLCHAIN)-objcopy |
SIZE = $(RISCV_TOOLCHAIN)-size |
121,23 → 116,14
# NEORV32 executable image generator |
IMAGE_GEN = $(NEORV32_EXG_PATH)/image_gen |
|
# Compiler flags |
CC_OPTS = $(MARCH) $(MABI) $(EFFORT) -Wall -ffunction-sections -fdata-sections -lm |
# Compiler & linker flags |
CC_OPTS = $(MARCH) $(MABI) $(EFFORT) -Wall -ffunction-sections -fdata-sections -nostartfiles |
CC_OPTS += -Wl,--gc-sections -lm -lc -lgcc -lc |
|
# Linker flags |
LD_OPTS = $(EFFORT) --gc-sections |
|
# User flags for additional config |
# User flags for additional configuration |
USER_FLAGS = |
CC_OPTS += $(USER_FLAGS) |
|
# Use embedded RISC-V CPU extension? |
ifeq (,$(findstring rv32e,$(MARCH))) |
CC_OPTS += |
else |
CC_OPTS += -D__RISCV_EMBEDDED_CPU__ |
endif |
|
# ----------------------------------------------------------------------------- |
# Host native compiler |
# ----------------------------------------------------------------------------- |
166,7 → 152,7
|
# Link object files and show memory utilization |
main.elf: $(OBJ) |
@$(LD) $(LD_OPTS) -I $(NEORV32_INC_PATH) $(APP_INC) -T $(NEORV32_COM_PATH)/neorv32.ld $(OBJ) $(LIBC_PATH) $(LIBGCC_PATH) -o $@ |
@$(CC) $(CC_OPTS) -I $(NEORV32_INC_PATH) $(APP_INC) -T $(NEORV32_COM_PATH)/neorv32.ld $(OBJ) -o $@ |
@echo "Memory utilization:" |
@$(SIZE) main.elf |
|
212,7 → 198,7
# Compile and install bootloader |
bootloader: bootloader_crt0.elf $(OBJ) $(IMAGE_GEN) |
@set -e |
@$(LD) $(LD_OPTS) -I $(NEORV32_INC_PATH) $(APP_INC) -T $(NEORV32_COM_PATH)/bootloader_neorv32.ld $(OBJ) $(LIBC_PATH) $(LIBGCC_PATH) -o bootloader.elf |
@$(CC) $(CC_OPTS) -I $(NEORV32_INC_PATH) $(APP_INC) -T $(NEORV32_COM_PATH)/bootloader_neorv32.ld $(OBJ) -o bootloader.elf |
@echo "Memory utilization:" |
@$(SIZE) bootloader.elf |
@$(OBJDUMP) -D -S -z bootloader.elf > bootloader.s |
237,8 → 223,6
@echo "NEORV32_HOME: $(NEORV32_HOME)" |
@echo "---------------- Check: $(CC) ----------------" |
@$(CC) -v |
@echo "---------------- Check: $(LD) ----------------" |
@$(LD) -V |
@echo "---------------- Check: $(OBJDUMP) ----------------" |
@$(OBJDUMP) -V |
@echo "---------------- Check: $(OBJCOPY) ----------------" |
247,7 → 231,7
@$(SIZE) -V |
@echo "---------------- Check: NEORV32 image_gen ----------------" |
@$(IMAGE_GEN) -help |
@echo "---------------- Check: native gcc ----------------" |
@echo "---------------- Check: Native GCC ----------------" |
@$(CC_X86) -v |
@echo |
@echo "Toolchain check OK" |
276,17 → 260,17
@echo "---------------- Info: RISC-V Toolchain ----------------" |
@echo "Toolchain: $(RISCV_TOLLCHAIN)" |
@echo "CC: $(CC)" |
@echo "LD: $(LD)" |
@echo "OBJDUMP: $(OBJDUMP)" |
@echo "OBJCOPY: $(OBJCOPY)" |
@echo "SIZE: $(SIZE)" |
@echo "---------------- Info: C Lib ----------------" |
@echo "CLIB: $(LIBC_PATH)" |
@echo "GCCLIB: $(LIBGCC_PATH)" |
@echo "---------------- Info: Libraries ----------------" |
@echo "LIBGCC:" |
@$(CC) -print-libgcc-file-name |
@echo "SEARCH-DIRS:" |
@$(CC) -print-search-dirs |
@echo "---------------- Info: Flags ----------------" |
@echo "CC_OPTS: $(CC_OPTS)" |
@echo "LD_OPTS: $(LD_OPTS)" |
@echo "---------------- Info: Host Native GCC ----------------" |
@echo "---------------- Info: Host Native GCC Flags ----------------" |
@echo "CC_X86: $(CC_X86)" |
|
|
/example/demo_trng/makefile
36,29 → 36,25
|
|
# ***************************************************************************** |
# USER CONFIGURATION |
# USER CONFIGURATION (use default if not set by user) |
# ***************************************************************************** |
# Compiler effort |
EFFORT = -Os |
EFFORT ?= -Os |
|
# User's application sources (add additional files here) |
APP_SRC = $(wildcard *.c) |
APP_SRC ?= $(wildcard *.c) |
|
# User's application include folders (don't forget the '-I' before each entry) |
APP_INC = -I . |
APP_INC ?= -I . |
|
# Compiler toolchain (use default if not set by user) |
# Compiler toolchain |
RISCV_TOOLCHAIN ?= riscv32-unknown-elf |
|
# CPU architecture and ABI |
MARCH = -march=rv32i |
MABI = -mabi=ilp32 |
MARCH ?= -march=rv32i |
MABI ?= -mabi=ilp32 |
|
# Path to runtime c library (use default if not set by user) |
LIBC_PATH ?= $(dir $(shell which $(CC)))../$(RISCV_TOOLCHAIN)/lib/libc.a |
LIBGCC_PATH ?= $(dir $(shell which $(CC)))../lib/gcc/$(RISCV_TOOLCHAIN)/*/libgcc.a |
|
# Relative or absolute path to the NEORV32 home folder (use default if not set by user) |
# Relative or absolute path to the NEORV32 home folder |
NEORV32_HOME ?= ../../.. |
# ***************************************************************************** |
|
113,7 → 109,6
# ----------------------------------------------------------------------------- |
# compiler tools |
CC = $(RISCV_TOOLCHAIN)-gcc |
LD = $(RISCV_TOOLCHAIN)-ld |
OBJDUMP = $(RISCV_TOOLCHAIN)-objdump |
OBJCOPY = $(RISCV_TOOLCHAIN)-objcopy |
SIZE = $(RISCV_TOOLCHAIN)-size |
121,23 → 116,14
# NEORV32 executable image generator |
IMAGE_GEN = $(NEORV32_EXG_PATH)/image_gen |
|
# Compiler flags |
CC_OPTS = $(MARCH) $(MABI) $(EFFORT) -Wall -ffunction-sections -fdata-sections -lm |
# Compiler & linker flags |
CC_OPTS = $(MARCH) $(MABI) $(EFFORT) -Wall -ffunction-sections -fdata-sections -nostartfiles |
CC_OPTS += -Wl,--gc-sections -lm -lc -lgcc -lc |
|
# Linker flags |
LD_OPTS = $(EFFORT) --gc-sections |
|
# User flags for additional config |
# User flags for additional configuration |
USER_FLAGS = |
CC_OPTS += $(USER_FLAGS) |
|
# Use embedded RISC-V CPU extension? |
ifeq (,$(findstring rv32e,$(MARCH))) |
CC_OPTS += |
else |
CC_OPTS += -D__RISCV_EMBEDDED_CPU__ |
endif |
|
# ----------------------------------------------------------------------------- |
# Host native compiler |
# ----------------------------------------------------------------------------- |
166,7 → 152,7
|
# Link object files and show memory utilization |
main.elf: $(OBJ) |
@$(LD) $(LD_OPTS) -I $(NEORV32_INC_PATH) $(APP_INC) -T $(NEORV32_COM_PATH)/neorv32.ld $(OBJ) $(LIBC_PATH) $(LIBGCC_PATH) -o $@ |
@$(CC) $(CC_OPTS) -I $(NEORV32_INC_PATH) $(APP_INC) -T $(NEORV32_COM_PATH)/neorv32.ld $(OBJ) -o $@ |
@echo "Memory utilization:" |
@$(SIZE) main.elf |
|
212,7 → 198,7
# Compile and install bootloader |
bootloader: bootloader_crt0.elf $(OBJ) $(IMAGE_GEN) |
@set -e |
@$(LD) $(LD_OPTS) -I $(NEORV32_INC_PATH) $(APP_INC) -T $(NEORV32_COM_PATH)/bootloader_neorv32.ld $(OBJ) $(LIBC_PATH) $(LIBGCC_PATH) -o bootloader.elf |
@$(CC) $(CC_OPTS) -I $(NEORV32_INC_PATH) $(APP_INC) -T $(NEORV32_COM_PATH)/bootloader_neorv32.ld $(OBJ) -o bootloader.elf |
@echo "Memory utilization:" |
@$(SIZE) bootloader.elf |
@$(OBJDUMP) -D -S -z bootloader.elf > bootloader.s |
237,8 → 223,6
@echo "NEORV32_HOME: $(NEORV32_HOME)" |
@echo "---------------- Check: $(CC) ----------------" |
@$(CC) -v |
@echo "---------------- Check: $(LD) ----------------" |
@$(LD) -V |
@echo "---------------- Check: $(OBJDUMP) ----------------" |
@$(OBJDUMP) -V |
@echo "---------------- Check: $(OBJCOPY) ----------------" |
247,7 → 231,7
@$(SIZE) -V |
@echo "---------------- Check: NEORV32 image_gen ----------------" |
@$(IMAGE_GEN) -help |
@echo "---------------- Check: native gcc ----------------" |
@echo "---------------- Check: Native GCC ----------------" |
@$(CC_X86) -v |
@echo |
@echo "Toolchain check OK" |
276,17 → 260,17
@echo "---------------- Info: RISC-V Toolchain ----------------" |
@echo "Toolchain: $(RISCV_TOLLCHAIN)" |
@echo "CC: $(CC)" |
@echo "LD: $(LD)" |
@echo "OBJDUMP: $(OBJDUMP)" |
@echo "OBJCOPY: $(OBJCOPY)" |
@echo "SIZE: $(SIZE)" |
@echo "---------------- Info: C Lib ----------------" |
@echo "CLIB: $(LIBC_PATH)" |
@echo "GCCLIB: $(LIBGCC_PATH)" |
@echo "---------------- Info: Libraries ----------------" |
@echo "LIBGCC:" |
@$(CC) -print-libgcc-file-name |
@echo "SEARCH-DIRS:" |
@$(CC) -print-search-dirs |
@echo "---------------- Info: Flags ----------------" |
@echo "CC_OPTS: $(CC_OPTS)" |
@echo "LD_OPTS: $(LD_OPTS)" |
@echo "---------------- Info: Host Native GCC ----------------" |
@echo "---------------- Info: Host Native GCC Flags ----------------" |
@echo "CC_X86: $(CC_X86)" |
|
|
/example/demo_twi/makefile
36,29 → 36,25
|
|
# ***************************************************************************** |
# USER CONFIGURATION |
# USER CONFIGURATION (use default if not set by user) |
# ***************************************************************************** |
# Compiler effort |
EFFORT = -Os |
EFFORT ?= -Os |
|
# User's application sources (add additional files here) |
APP_SRC = $(wildcard *.c) |
APP_SRC ?= $(wildcard *.c) |
|
# User's application include folders (don't forget the '-I' before each entry) |
APP_INC = -I . |
APP_INC ?= -I . |
|
# Compiler toolchain (use default if not set by user) |
# Compiler toolchain |
RISCV_TOOLCHAIN ?= riscv32-unknown-elf |
|
# CPU architecture and ABI |
MARCH = -march=rv32i |
MABI = -mabi=ilp32 |
MARCH ?= -march=rv32i |
MABI ?= -mabi=ilp32 |
|
# Path to runtime c library (use default if not set by user) |
LIBC_PATH ?= $(dir $(shell which $(CC)))../$(RISCV_TOOLCHAIN)/lib/libc.a |
LIBGCC_PATH ?= $(dir $(shell which $(CC)))../lib/gcc/$(RISCV_TOOLCHAIN)/*/libgcc.a |
|
# Relative or absolute path to the NEORV32 home folder (use default if not set by user) |
# Relative or absolute path to the NEORV32 home folder |
NEORV32_HOME ?= ../../.. |
# ***************************************************************************** |
|
113,7 → 109,6
# ----------------------------------------------------------------------------- |
# compiler tools |
CC = $(RISCV_TOOLCHAIN)-gcc |
LD = $(RISCV_TOOLCHAIN)-ld |
OBJDUMP = $(RISCV_TOOLCHAIN)-objdump |
OBJCOPY = $(RISCV_TOOLCHAIN)-objcopy |
SIZE = $(RISCV_TOOLCHAIN)-size |
121,23 → 116,14
# NEORV32 executable image generator |
IMAGE_GEN = $(NEORV32_EXG_PATH)/image_gen |
|
# Compiler flags |
CC_OPTS = $(MARCH) $(MABI) $(EFFORT) -Wall -ffunction-sections -fdata-sections -lm |
# Compiler & linker flags |
CC_OPTS = $(MARCH) $(MABI) $(EFFORT) -Wall -ffunction-sections -fdata-sections -nostartfiles |
CC_OPTS += -Wl,--gc-sections -lm -lc -lgcc -lc |
|
# Linker flags |
LD_OPTS = $(EFFORT) --gc-sections |
|
# User flags for additional config |
# User flags for additional configuration |
USER_FLAGS = |
CC_OPTS += $(USER_FLAGS) |
|
# Use embedded RISC-V CPU extension? |
ifeq (,$(findstring rv32e,$(MARCH))) |
CC_OPTS += |
else |
CC_OPTS += -D__RISCV_EMBEDDED_CPU__ |
endif |
|
# ----------------------------------------------------------------------------- |
# Host native compiler |
# ----------------------------------------------------------------------------- |
166,7 → 152,7
|
# Link object files and show memory utilization |
main.elf: $(OBJ) |
@$(LD) $(LD_OPTS) -I $(NEORV32_INC_PATH) $(APP_INC) -T $(NEORV32_COM_PATH)/neorv32.ld $(OBJ) $(LIBC_PATH) $(LIBGCC_PATH) -o $@ |
@$(CC) $(CC_OPTS) -I $(NEORV32_INC_PATH) $(APP_INC) -T $(NEORV32_COM_PATH)/neorv32.ld $(OBJ) -o $@ |
@echo "Memory utilization:" |
@$(SIZE) main.elf |
|
212,7 → 198,7
# Compile and install bootloader |
bootloader: bootloader_crt0.elf $(OBJ) $(IMAGE_GEN) |
@set -e |
@$(LD) $(LD_OPTS) -I $(NEORV32_INC_PATH) $(APP_INC) -T $(NEORV32_COM_PATH)/bootloader_neorv32.ld $(OBJ) $(LIBC_PATH) $(LIBGCC_PATH) -o bootloader.elf |
@$(CC) $(CC_OPTS) -I $(NEORV32_INC_PATH) $(APP_INC) -T $(NEORV32_COM_PATH)/bootloader_neorv32.ld $(OBJ) -o bootloader.elf |
@echo "Memory utilization:" |
@$(SIZE) bootloader.elf |
@$(OBJDUMP) -D -S -z bootloader.elf > bootloader.s |
237,8 → 223,6
@echo "NEORV32_HOME: $(NEORV32_HOME)" |
@echo "---------------- Check: $(CC) ----------------" |
@$(CC) -v |
@echo "---------------- Check: $(LD) ----------------" |
@$(LD) -V |
@echo "---------------- Check: $(OBJDUMP) ----------------" |
@$(OBJDUMP) -V |
@echo "---------------- Check: $(OBJCOPY) ----------------" |
247,7 → 231,7
@$(SIZE) -V |
@echo "---------------- Check: NEORV32 image_gen ----------------" |
@$(IMAGE_GEN) -help |
@echo "---------------- Check: native gcc ----------------" |
@echo "---------------- Check: Native GCC ----------------" |
@$(CC_X86) -v |
@echo |
@echo "Toolchain check OK" |
276,17 → 260,17
@echo "---------------- Info: RISC-V Toolchain ----------------" |
@echo "Toolchain: $(RISCV_TOLLCHAIN)" |
@echo "CC: $(CC)" |
@echo "LD: $(LD)" |
@echo "OBJDUMP: $(OBJDUMP)" |
@echo "OBJCOPY: $(OBJCOPY)" |
@echo "SIZE: $(SIZE)" |
@echo "---------------- Info: C Lib ----------------" |
@echo "CLIB: $(LIBC_PATH)" |
@echo "GCCLIB: $(LIBGCC_PATH)" |
@echo "---------------- Info: Libraries ----------------" |
@echo "LIBGCC:" |
@$(CC) -print-libgcc-file-name |
@echo "SEARCH-DIRS:" |
@$(CC) -print-search-dirs |
@echo "---------------- Info: Flags ----------------" |
@echo "CC_OPTS: $(CC_OPTS)" |
@echo "LD_OPTS: $(LD_OPTS)" |
@echo "---------------- Info: Host Native GCC ----------------" |
@echo "---------------- Info: Host Native GCC Flags ----------------" |
@echo "CC_X86: $(CC_X86)" |
|
|
/example/demo_wdt/makefile
36,29 → 36,25
|
|
# ***************************************************************************** |
# USER CONFIGURATION |
# USER CONFIGURATION (use default if not set by user) |
# ***************************************************************************** |
# Compiler effort |
EFFORT = -Os |
EFFORT ?= -Os |
|
# User's application sources (add additional files here) |
APP_SRC = $(wildcard *.c) |
APP_SRC ?= $(wildcard *.c) |
|
# User's application include folders (don't forget the '-I' before each entry) |
APP_INC = -I . |
APP_INC ?= -I . |
|
# Compiler toolchain (use default if not set by user) |
# Compiler toolchain |
RISCV_TOOLCHAIN ?= riscv32-unknown-elf |
|
# CPU architecture and ABI |
MARCH = -march=rv32i |
MABI = -mabi=ilp32 |
MARCH ?= -march=rv32i |
MABI ?= -mabi=ilp32 |
|
# Path to runtime c library (use default if not set by user) |
LIBC_PATH ?= $(dir $(shell which $(CC)))../$(RISCV_TOOLCHAIN)/lib/libc.a |
LIBGCC_PATH ?= $(dir $(shell which $(CC)))../lib/gcc/$(RISCV_TOOLCHAIN)/*/libgcc.a |
|
# Relative or absolute path to the NEORV32 home folder (use default if not set by user) |
# Relative or absolute path to the NEORV32 home folder |
NEORV32_HOME ?= ../../.. |
# ***************************************************************************** |
|
113,7 → 109,6
# ----------------------------------------------------------------------------- |
# compiler tools |
CC = $(RISCV_TOOLCHAIN)-gcc |
LD = $(RISCV_TOOLCHAIN)-ld |
OBJDUMP = $(RISCV_TOOLCHAIN)-objdump |
OBJCOPY = $(RISCV_TOOLCHAIN)-objcopy |
SIZE = $(RISCV_TOOLCHAIN)-size |
121,23 → 116,14
# NEORV32 executable image generator |
IMAGE_GEN = $(NEORV32_EXG_PATH)/image_gen |
|
# Compiler flags |
CC_OPTS = $(MARCH) $(MABI) $(EFFORT) -Wall -ffunction-sections -fdata-sections -lm |
# Compiler & linker flags |
CC_OPTS = $(MARCH) $(MABI) $(EFFORT) -Wall -ffunction-sections -fdata-sections -nostartfiles |
CC_OPTS += -Wl,--gc-sections -lm -lc -lgcc -lc |
|
# Linker flags |
LD_OPTS = $(EFFORT) --gc-sections |
|
# User flags for additional config |
# User flags for additional configuration |
USER_FLAGS = |
CC_OPTS += $(USER_FLAGS) |
|
# Use embedded RISC-V CPU extension? |
ifeq (,$(findstring rv32e,$(MARCH))) |
CC_OPTS += |
else |
CC_OPTS += -D__RISCV_EMBEDDED_CPU__ |
endif |
|
# ----------------------------------------------------------------------------- |
# Host native compiler |
# ----------------------------------------------------------------------------- |
166,7 → 152,7
|
# Link object files and show memory utilization |
main.elf: $(OBJ) |
@$(LD) $(LD_OPTS) -I $(NEORV32_INC_PATH) $(APP_INC) -T $(NEORV32_COM_PATH)/neorv32.ld $(OBJ) $(LIBC_PATH) $(LIBGCC_PATH) -o $@ |
@$(CC) $(CC_OPTS) -I $(NEORV32_INC_PATH) $(APP_INC) -T $(NEORV32_COM_PATH)/neorv32.ld $(OBJ) -o $@ |
@echo "Memory utilization:" |
@$(SIZE) main.elf |
|
212,7 → 198,7
# Compile and install bootloader |
bootloader: bootloader_crt0.elf $(OBJ) $(IMAGE_GEN) |
@set -e |
@$(LD) $(LD_OPTS) -I $(NEORV32_INC_PATH) $(APP_INC) -T $(NEORV32_COM_PATH)/bootloader_neorv32.ld $(OBJ) $(LIBC_PATH) $(LIBGCC_PATH) -o bootloader.elf |
@$(CC) $(CC_OPTS) -I $(NEORV32_INC_PATH) $(APP_INC) -T $(NEORV32_COM_PATH)/bootloader_neorv32.ld $(OBJ) -o bootloader.elf |
@echo "Memory utilization:" |
@$(SIZE) bootloader.elf |
@$(OBJDUMP) -D -S -z bootloader.elf > bootloader.s |
237,8 → 223,6
@echo "NEORV32_HOME: $(NEORV32_HOME)" |
@echo "---------------- Check: $(CC) ----------------" |
@$(CC) -v |
@echo "---------------- Check: $(LD) ----------------" |
@$(LD) -V |
@echo "---------------- Check: $(OBJDUMP) ----------------" |
@$(OBJDUMP) -V |
@echo "---------------- Check: $(OBJCOPY) ----------------" |
247,7 → 231,7
@$(SIZE) -V |
@echo "---------------- Check: NEORV32 image_gen ----------------" |
@$(IMAGE_GEN) -help |
@echo "---------------- Check: native gcc ----------------" |
@echo "---------------- Check: Native GCC ----------------" |
@$(CC_X86) -v |
@echo |
@echo "Toolchain check OK" |
276,17 → 260,17
@echo "---------------- Info: RISC-V Toolchain ----------------" |
@echo "Toolchain: $(RISCV_TOLLCHAIN)" |
@echo "CC: $(CC)" |
@echo "LD: $(LD)" |
@echo "OBJDUMP: $(OBJDUMP)" |
@echo "OBJCOPY: $(OBJCOPY)" |
@echo "SIZE: $(SIZE)" |
@echo "---------------- Info: C Lib ----------------" |
@echo "CLIB: $(LIBC_PATH)" |
@echo "GCCLIB: $(LIBGCC_PATH)" |
@echo "---------------- Info: Libraries ----------------" |
@echo "LIBGCC:" |
@$(CC) -print-libgcc-file-name |
@echo "SEARCH-DIRS:" |
@$(CC) -print-search-dirs |
@echo "---------------- Info: Flags ----------------" |
@echo "CC_OPTS: $(CC_OPTS)" |
@echo "LD_OPTS: $(LD_OPTS)" |
@echo "---------------- Info: Host Native GCC ----------------" |
@echo "---------------- Info: Host Native GCC Flags ----------------" |
@echo "CC_X86: $(CC_X86)" |
|
|
/example/game_of_life/makefile
36,29 → 36,25
|
|
# ***************************************************************************** |
# USER CONFIGURATION |
# USER CONFIGURATION (use default if not set by user) |
# ***************************************************************************** |
# Compiler effort |
EFFORT = -Os |
EFFORT ?= -Os |
|
# User's application sources (add additional files here) |
APP_SRC = $(wildcard *.c) |
APP_SRC ?= $(wildcard *.c) |
|
# User's application include folders (don't forget the '-I' before each entry) |
APP_INC = -I . |
APP_INC ?= -I . |
|
# Compiler toolchain (use default if not set by user) |
# Compiler toolchain |
RISCV_TOOLCHAIN ?= riscv32-unknown-elf |
|
# CPU architecture and ABI |
MARCH = -march=rv32i |
MABI = -mabi=ilp32 |
MARCH ?= -march=rv32i |
MABI ?= -mabi=ilp32 |
|
# Path to runtime c library (use default if not set by user) |
LIBC_PATH ?= $(dir $(shell which $(CC)))../$(RISCV_TOOLCHAIN)/lib/libc.a |
LIBGCC_PATH ?= $(dir $(shell which $(CC)))../lib/gcc/$(RISCV_TOOLCHAIN)/*/libgcc.a |
|
# Relative or absolute path to the NEORV32 home folder (use default if not set by user) |
# Relative or absolute path to the NEORV32 home folder |
NEORV32_HOME ?= ../../.. |
# ***************************************************************************** |
|
113,7 → 109,6
# ----------------------------------------------------------------------------- |
# compiler tools |
CC = $(RISCV_TOOLCHAIN)-gcc |
LD = $(RISCV_TOOLCHAIN)-ld |
OBJDUMP = $(RISCV_TOOLCHAIN)-objdump |
OBJCOPY = $(RISCV_TOOLCHAIN)-objcopy |
SIZE = $(RISCV_TOOLCHAIN)-size |
121,23 → 116,14
# NEORV32 executable image generator |
IMAGE_GEN = $(NEORV32_EXG_PATH)/image_gen |
|
# Compiler flags |
CC_OPTS = $(MARCH) $(MABI) $(EFFORT) -Wall -ffunction-sections -fdata-sections -lm |
# Compiler & linker flags |
CC_OPTS = $(MARCH) $(MABI) $(EFFORT) -Wall -ffunction-sections -fdata-sections -nostartfiles |
CC_OPTS += -Wl,--gc-sections -lm -lc -lgcc -lc |
|
# Linker flags |
LD_OPTS = $(EFFORT) --gc-sections |
|
# User flags for additional config |
# User flags for additional configuration |
USER_FLAGS = |
CC_OPTS += $(USER_FLAGS) |
|
# Use embedded RISC-V CPU extension? |
ifeq (,$(findstring rv32e,$(MARCH))) |
CC_OPTS += |
else |
CC_OPTS += -D__RISCV_EMBEDDED_CPU__ |
endif |
|
# ----------------------------------------------------------------------------- |
# Host native compiler |
# ----------------------------------------------------------------------------- |
166,7 → 152,7
|
# Link object files and show memory utilization |
main.elf: $(OBJ) |
@$(LD) $(LD_OPTS) -I $(NEORV32_INC_PATH) $(APP_INC) -T $(NEORV32_COM_PATH)/neorv32.ld $(OBJ) $(LIBC_PATH) $(LIBGCC_PATH) -o $@ |
@$(CC) $(CC_OPTS) -I $(NEORV32_INC_PATH) $(APP_INC) -T $(NEORV32_COM_PATH)/neorv32.ld $(OBJ) -o $@ |
@echo "Memory utilization:" |
@$(SIZE) main.elf |
|
212,7 → 198,7
# Compile and install bootloader |
bootloader: bootloader_crt0.elf $(OBJ) $(IMAGE_GEN) |
@set -e |
@$(LD) $(LD_OPTS) -I $(NEORV32_INC_PATH) $(APP_INC) -T $(NEORV32_COM_PATH)/bootloader_neorv32.ld $(OBJ) $(LIBC_PATH) $(LIBGCC_PATH) -o bootloader.elf |
@$(CC) $(CC_OPTS) -I $(NEORV32_INC_PATH) $(APP_INC) -T $(NEORV32_COM_PATH)/bootloader_neorv32.ld $(OBJ) -o bootloader.elf |
@echo "Memory utilization:" |
@$(SIZE) bootloader.elf |
@$(OBJDUMP) -D -S -z bootloader.elf > bootloader.s |
237,8 → 223,6
@echo "NEORV32_HOME: $(NEORV32_HOME)" |
@echo "---------------- Check: $(CC) ----------------" |
@$(CC) -v |
@echo "---------------- Check: $(LD) ----------------" |
@$(LD) -V |
@echo "---------------- Check: $(OBJDUMP) ----------------" |
@$(OBJDUMP) -V |
@echo "---------------- Check: $(OBJCOPY) ----------------" |
247,7 → 231,7
@$(SIZE) -V |
@echo "---------------- Check: NEORV32 image_gen ----------------" |
@$(IMAGE_GEN) -help |
@echo "---------------- Check: native gcc ----------------" |
@echo "---------------- Check: Native GCC ----------------" |
@$(CC_X86) -v |
@echo |
@echo "Toolchain check OK" |
276,17 → 260,17
@echo "---------------- Info: RISC-V Toolchain ----------------" |
@echo "Toolchain: $(RISCV_TOLLCHAIN)" |
@echo "CC: $(CC)" |
@echo "LD: $(LD)" |
@echo "OBJDUMP: $(OBJDUMP)" |
@echo "OBJCOPY: $(OBJCOPY)" |
@echo "SIZE: $(SIZE)" |
@echo "---------------- Info: C Lib ----------------" |
@echo "CLIB: $(LIBC_PATH)" |
@echo "GCCLIB: $(LIBGCC_PATH)" |
@echo "---------------- Info: Libraries ----------------" |
@echo "LIBGCC:" |
@$(CC) -print-libgcc-file-name |
@echo "SEARCH-DIRS:" |
@$(CC) -print-search-dirs |
@echo "---------------- Info: Flags ----------------" |
@echo "CC_OPTS: $(CC_OPTS)" |
@echo "LD_OPTS: $(LD_OPTS)" |
@echo "---------------- Info: Host Native GCC ----------------" |
@echo "---------------- Info: Host Native GCC Flags ----------------" |
@echo "CC_X86: $(CC_X86)" |
|
|