mirror of
https://github.com/ringtailsoftware/uvm32.git
synced 2026-06-05 22:43:39 +00:00
Initial test framework
Clean up makefiles Everything buildable under docker (or natively)
This commit is contained in:
parent
5a0c70a017
commit
da7f70c456
48 changed files with 7254 additions and 293 deletions
|
|
@ -1,5 +0,0 @@
|
|||
FROM ubuntu:25.04
|
||||
ENV LANG C.UTF-8
|
||||
ENV LC_ALL C.UTF-8
|
||||
RUN apt-get -y update
|
||||
RUN apt-get install -y gcc-riscv64-unknown-elf build-essential
|
||||
|
|
@ -1,7 +1,4 @@
|
|||
DOCKER_IMAGE=riscv-dev
|
||||
|
||||
all:
|
||||
docker build -t ${DOCKER_IMAGE} .
|
||||
(cd sketch && make)
|
||||
(cd helloworld && make)
|
||||
(cd lissajous && make)
|
||||
|
|
|
|||
|
|
@ -1,27 +1,7 @@
|
|||
PROJECT:=conio
|
||||
|
||||
DOCKER_IMAGE=riscv-dev
|
||||
DOCKER_CMD:=docker run --rm -v ${PWD}../../../:/data -w /data/apps/${PROJECT} ${DOCKER_IMAGE}
|
||||
PREFIX:=${DOCKER_CMD} riscv64-unknown-elf-
|
||||
CFLAGS+=-I../../common
|
||||
CFLAGS+=-fno-stack-protector
|
||||
CFLAGS+=-static-libgcc -fdata-sections -ffunction-sections
|
||||
CFLAGS+=-g -Os -march=rv32ima_zicsr -mabi=ilp32 -static
|
||||
LDFLAGS:= -T ../linker.ld -nostdlib -Wl,--gc-sections
|
||||
LIBS:= #-lgcc # needed for softfp
|
||||
|
||||
SRCS=${PROJECT}.c ../crt0.S
|
||||
|
||||
all:
|
||||
${PREFIX}gcc -o ${PROJECT}.elf ${CFLAGS} ${LDFLAGS} ${SRCS} ${LIBS}
|
||||
$(PREFIX)objcopy ${PROJECT}.elf -O binary ${PROJECT}.bin
|
||||
|
||||
disasm: all
|
||||
$(PREFIX)objdump -S -d -f ${PROJECT}.elf
|
||||
|
||||
test: all
|
||||
../../host/host ${PWD}/${PROJECT}.bin
|
||||
|
||||
clean:
|
||||
rm -f ${PROJECT}.o ${PROJECT}.elf ${PROJECT}.bin
|
||||
|
||||
TOPDIR=../../
|
||||
PROJECT:=$(shell basename ${PWD})
|
||||
SRCS=${PROJECT}.c ${TOPDIR}/apps/crt0.S
|
||||
all: all_common
|
||||
test: test_common
|
||||
clean: clean_common
|
||||
include ${TOPDIR}/apps/makefile.common
|
||||
|
|
|
|||
|
|
@ -1,27 +1,7 @@
|
|||
PROJECT:=fib
|
||||
|
||||
DOCKER_IMAGE=riscv-dev
|
||||
DOCKER_CMD:=docker run --rm -v ${PWD}../../../:/data -w /data/apps/${PROJECT} ${DOCKER_IMAGE}
|
||||
PREFIX:=${DOCKER_CMD} riscv64-unknown-elf-
|
||||
CFLAGS+=-I../../common
|
||||
CFLAGS+=-fno-stack-protector
|
||||
CFLAGS+=-static-libgcc -fdata-sections -ffunction-sections
|
||||
CFLAGS+=-g -Os -march=rv32ima_zicsr -mabi=ilp32 -static
|
||||
LDFLAGS:= -T ../linker.ld -nostdlib -Wl,--gc-sections
|
||||
LIBS:= #-lgcc # needed for softfp
|
||||
|
||||
SRCS=${PROJECT}.c ../crt0.S
|
||||
|
||||
all:
|
||||
${PREFIX}gcc -o ${PROJECT}.elf ${CFLAGS} ${LDFLAGS} ${SRCS} ${LIBS}
|
||||
$(PREFIX)objcopy ${PROJECT}.elf -O binary ${PROJECT}.bin
|
||||
|
||||
disasm: all
|
||||
$(PREFIX)objdump -S -d -f ${PROJECT}.elf
|
||||
|
||||
test: all
|
||||
../../host/host ${PWD}/${PROJECT}.bin
|
||||
|
||||
clean:
|
||||
rm -f ${PROJECT}.o ${PROJECT}.elf ${PROJECT}.bin
|
||||
|
||||
TOPDIR=../../
|
||||
PROJECT:=$(shell basename ${PWD})
|
||||
SRCS=${PROJECT}.c ${TOPDIR}/apps/crt0.S
|
||||
all: all_common
|
||||
test: test_common
|
||||
clean: clean_common
|
||||
include ${TOPDIR}/apps/makefile.common
|
||||
|
|
|
|||
|
|
@ -1,27 +1,7 @@
|
|||
TOPDIR=../../
|
||||
PROJECT:=hello-asm
|
||||
|
||||
DOCKER_IMAGE=riscv-dev
|
||||
DOCKER_CMD:=docker run --rm -v ${PWD}../../../:/data -w /data/apps/${PROJECT} ${DOCKER_IMAGE}
|
||||
PREFIX:=${DOCKER_CMD} riscv64-unknown-elf-
|
||||
CFLAGS+=-I../../common
|
||||
CFLAGS+=-fno-stack-protector
|
||||
CFLAGS+=-static-libgcc -fdata-sections -ffunction-sections
|
||||
CFLAGS+=-g -Os -march=rv32ima_zicsr -mabi=ilp32 -static
|
||||
LDFLAGS:= -T ../linker.ld -nostdlib -Wl,--gc-sections
|
||||
LIBS:= #-lgcc # needed for softfp
|
||||
|
||||
SRCS=hello-asm.S
|
||||
|
||||
all:
|
||||
${PREFIX}gcc -o ${PROJECT}.elf ${CFLAGS} ${LDFLAGS} ${SRCS} ${LIBS}
|
||||
$(PREFIX)objcopy ${PROJECT}.elf -O binary ${PROJECT}.bin
|
||||
|
||||
disasm: all
|
||||
$(PREFIX)objdump -S -d -f ${PROJECT}.elf
|
||||
|
||||
test: all
|
||||
../../host/host ${PWD}/${PROJECT}.bin
|
||||
|
||||
clean:
|
||||
rm -f ${PROJECT}.o ${PROJECT}.elf ${PROJECT}.bin
|
||||
|
||||
SRCS=${PROJECT}.S
|
||||
all: all_common
|
||||
test: test_common
|
||||
clean: clean_common
|
||||
include ${TOPDIR}/apps/makefile.common
|
||||
|
|
|
|||
|
|
@ -1,27 +1,7 @@
|
|||
PROJECT:=helloworld
|
||||
|
||||
DOCKER_IMAGE=riscv-dev
|
||||
DOCKER_CMD:=docker run --rm -v ${PWD}../../../:/data -w /data/apps/${PROJECT} ${DOCKER_IMAGE}
|
||||
PREFIX:=${DOCKER_CMD} riscv64-unknown-elf-
|
||||
CFLAGS+=-I../../common
|
||||
CFLAGS+=-fno-stack-protector
|
||||
CFLAGS+=-static-libgcc -fdata-sections -ffunction-sections
|
||||
CFLAGS+=-g -Os -march=rv32ima_zicsr -mabi=ilp32 -static
|
||||
LDFLAGS:= -T ../linker.ld -nostdlib -Wl,--gc-sections
|
||||
LIBS:= #-lgcc # needed for softfp
|
||||
|
||||
SRCS=${PROJECT}.c ../crt0.S
|
||||
|
||||
all:
|
||||
${PREFIX}gcc -o ${PROJECT}.elf ${CFLAGS} ${LDFLAGS} ${SRCS} ${LIBS}
|
||||
$(PREFIX)objcopy ${PROJECT}.elf -O binary ${PROJECT}.bin
|
||||
|
||||
disasm: all
|
||||
$(PREFIX)objdump -S -d -f ${PROJECT}.elf
|
||||
|
||||
test: all
|
||||
../../host/host ${PWD}/${PROJECT}.bin
|
||||
|
||||
clean:
|
||||
rm -f ${PROJECT}.o ${PROJECT}.elf ${PROJECT}.bin
|
||||
|
||||
TOPDIR=../../
|
||||
PROJECT:=$(shell basename ${PWD})
|
||||
SRCS=${PROJECT}.c ${TOPDIR}/apps/crt0.S
|
||||
all: all_common
|
||||
test: test_common
|
||||
clean: clean_common
|
||||
include ${TOPDIR}/apps/makefile.common
|
||||
|
|
|
|||
|
|
@ -1,27 +1,7 @@
|
|||
PROJECT:=lissajous
|
||||
|
||||
DOCKER_IMAGE=riscv-dev
|
||||
DOCKER_CMD:=docker run --rm -v ${PWD}../../../:/data -w /data/apps/${PROJECT} ${DOCKER_IMAGE}
|
||||
PREFIX:=${DOCKER_CMD} riscv64-unknown-elf-
|
||||
CFLAGS+=-I../../common
|
||||
CFLAGS+=-fno-stack-protector
|
||||
CFLAGS+=-static-libgcc -fdata-sections -ffunction-sections
|
||||
CFLAGS+=-g -O6 -march=rv32ima_zicsr -mabi=ilp32 -static
|
||||
LDFLAGS:= -T ../linker.ld -nostdlib -Wl,--gc-sections
|
||||
LIBS:= -lgcc # needed for softfp
|
||||
|
||||
SRCS=${PROJECT}.c ../crt0.S
|
||||
|
||||
all:
|
||||
${PREFIX}gcc -o ${PROJECT}.elf ${CFLAGS} ${LDFLAGS} ${SRCS} ${LIBS}
|
||||
$(PREFIX)objcopy ${PROJECT}.elf -O binary ${PROJECT}.bin
|
||||
|
||||
disasm: all
|
||||
$(PREFIX)objdump -S -d -f ${PROJECT}.elf
|
||||
|
||||
test: all
|
||||
../../host/host ${PWD}/${PROJECT}.bin
|
||||
|
||||
clean:
|
||||
rm -f ${PROJECT}.o ${PROJECT}.elf ${PROJECT}.bin
|
||||
|
||||
TOPDIR=../../
|
||||
PROJECT:=$(shell basename ${PWD})
|
||||
SRCS=${PROJECT}.c ${TOPDIR}/apps/crt0.S
|
||||
all: all_common
|
||||
test: test_common
|
||||
clean: clean_common
|
||||
include ${TOPDIR}/apps/makefile.common
|
||||
|
|
|
|||
35
apps/makefile.common
Normal file
35
apps/makefile.common
Normal file
|
|
@ -0,0 +1,35 @@
|
|||
PREFIX:=riscv64-elf-
|
||||
CFLAGS+=-I${TOPDIR}/common
|
||||
CFLAGS+=-fno-stack-protector
|
||||
CFLAGS+=-static-libgcc -fdata-sections -ffunction-sections
|
||||
CFLAGS+=-g -Os -march=rv32im -mabi=ilp32 -static
|
||||
LDFLAGS:= -T ${TOPDIR}/apps/linker.ld -nostdlib -Wl,--gc-sections
|
||||
LIBS:= -lgcc # needed for softfp
|
||||
|
||||
# check if the compiler is installed
|
||||
UNAME_S := $(shell uname -s)
|
||||
ifeq ($(UNAME_S),Darwin)
|
||||
PREFIX=riscv64-elf-
|
||||
ifeq (,$(shell which ${PREFIX}gcc))
|
||||
$(error "Try brew install riscv64-elf-gcc riscv64-elf-binutils")
|
||||
endif
|
||||
else
|
||||
PREFIX=riscv64-unknown-elf-
|
||||
ifeq (,$(shell which ${PREFIX}gcc))
|
||||
$(error "Try apt-get install gcc-riscv64-unknown-elf")
|
||||
endif
|
||||
endif
|
||||
|
||||
all_common:
|
||||
${PREFIX}gcc -o ${PROJECT}.elf ${CFLAGS} ${LDFLAGS} ${SRCS} ${LIBS}
|
||||
$(PREFIX)objcopy ${PROJECT}.elf -O binary ${PROJECT}.bin
|
||||
|
||||
disasm_common: all
|
||||
$(PREFIX)objdump -S -d -f ${PROJECT}.elf
|
||||
|
||||
test_common: all
|
||||
${TOPDIR}/host/host ${PWD}/${PROJECT}.bin
|
||||
|
||||
clean_common:
|
||||
rm -f ${PROJECT}.o ${PROJECT}.elf ${PROJECT}.bin
|
||||
|
||||
|
|
@ -1,27 +1,7 @@
|
|||
PROJECT:=maze
|
||||
|
||||
DOCKER_IMAGE=riscv-dev
|
||||
DOCKER_CMD:=docker run --rm -v ${PWD}../../../:/data -w /data/apps/${PROJECT} ${DOCKER_IMAGE}
|
||||
PREFIX:=${DOCKER_CMD} riscv64-unknown-elf-
|
||||
CFLAGS+=-I../../common
|
||||
CFLAGS+=-fno-stack-protector
|
||||
CFLAGS+=-static-libgcc -fdata-sections -ffunction-sections
|
||||
CFLAGS+=-g -Os -march=rv32ima_zicsr -mabi=ilp32 -static
|
||||
LDFLAGS:= -T ../linker.ld -nostdlib -Wl,--gc-sections
|
||||
LIBS:= #-lgcc # needed for softfp
|
||||
|
||||
SRCS=${PROJECT}.c ../crt0.S
|
||||
|
||||
all:
|
||||
${PREFIX}gcc -o ${PROJECT}.elf ${CFLAGS} ${LDFLAGS} ${SRCS} ${LIBS}
|
||||
$(PREFIX)objcopy ${PROJECT}.elf -O binary ${PROJECT}.bin
|
||||
|
||||
disasm: all
|
||||
$(PREFIX)objdump -S -d -f ${PROJECT}.elf
|
||||
|
||||
test: all
|
||||
../../host/host ${PWD}/${PROJECT}.bin
|
||||
|
||||
clean:
|
||||
rm -f ${PROJECT}.o ${PROJECT}.elf ${PROJECT}.bin
|
||||
|
||||
TOPDIR=../../
|
||||
PROJECT:=$(shell basename ${PWD})
|
||||
SRCS=${PROJECT}.c ${TOPDIR}/apps/crt0.S
|
||||
all: all_common
|
||||
test: test_common
|
||||
clean: clean_common
|
||||
include ${TOPDIR}/apps/makefile.common
|
||||
|
|
|
|||
2
apps/rust-hello/Cargo.lock
generated
2
apps/rust-hello/Cargo.lock
generated
|
|
@ -1,6 +1,6 @@
|
|||
# This file is automatically @generated by Cargo.
|
||||
# It is not intended for manual editing.
|
||||
version = 4
|
||||
version = 3
|
||||
|
||||
[[package]]
|
||||
name = "aho-corasick"
|
||||
|
|
|
|||
|
|
@ -1,8 +1,13 @@
|
|||
PROJECT=rust-hello
|
||||
TOPDIR=../../
|
||||
|
||||
all:
|
||||
cargo build -r --target riscv32im-unknown-none-elf && docker run -v `pwd`:/data -w /data --rm riscv-dev riscv64-unknown-elf-objcopy target/riscv32im-unknown-none-elf/release/rust-hello -O binary rust-hello.bin
|
||||
cargo build -r --target riscv32im-unknown-none-elf && ${PREFIX}objcopy target/riscv32im-unknown-none-elf/release/${PROJECT} -O binary ${PROJECT}.bin
|
||||
|
||||
clean: clean_common
|
||||
rm -rf target
|
||||
|
||||
test: all
|
||||
../../host/host rust-hello.bin
|
||||
${TOPDIR}/host/host ${PROJECT}.bin
|
||||
|
||||
clean:
|
||||
rm -rf rust-hello.bin target
|
||||
include ${TOPDIR}/apps/makefile.common
|
||||
|
|
|
|||
|
|
@ -1,27 +1,8 @@
|
|||
PROJECT:=self
|
||||
|
||||
DOCKER_IMAGE=riscv-dev
|
||||
DOCKER_CMD:=docker run --rm -v ${PWD}../../../:/data -w /data/apps/${PROJECT} ${DOCKER_IMAGE}
|
||||
PREFIX:=${DOCKER_CMD} riscv64-unknown-elf-
|
||||
CFLAGS+=-I../../common -I../../uvm32 -DUVM32_MEMORY_SIZE=8192
|
||||
CFLAGS+=-fno-stack-protector
|
||||
CFLAGS+=-static-libgcc -fdata-sections -ffunction-sections
|
||||
CFLAGS+=-g -Os -march=rv32ima_zicsr -mabi=ilp32 -static
|
||||
LDFLAGS:= -T ../linker.ld -nostdlib -Wl,--gc-sections
|
||||
LIBS:= #-lgcc # needed for softfp
|
||||
|
||||
SRCS=${PROJECT}.c ../../uvm32/uvm32.c ../crt0.S
|
||||
|
||||
all:
|
||||
${PREFIX}gcc -o ${PROJECT}.elf ${CFLAGS} ${LDFLAGS} ${SRCS} ${LIBS}
|
||||
$(PREFIX)objcopy ${PROJECT}.elf -O binary ${PROJECT}.bin
|
||||
|
||||
disasm: all
|
||||
$(PREFIX)objdump -S -d -f ${PROJECT}.elf
|
||||
|
||||
test: all
|
||||
../../host/host ${PWD}/${PROJECT}.bin
|
||||
|
||||
clean:
|
||||
rm -f ${PROJECT}.o ${PROJECT}.elf ${PROJECT}.bin
|
||||
|
||||
TOPDIR=../../
|
||||
PROJECT:=$(shell basename ${PWD})
|
||||
SRCS=${PROJECT}.c ${TOPDIR}/apps/crt0.S ${TOPDIR}/uvm32/uvm32.c
|
||||
CFLAGS=-DUVM32_MEMORY_SIZE=8192 -DCUSTOM_STDLIB_H=\"uvm32_target.h\" -I../../uvm32
|
||||
all: all_common
|
||||
test: test_common
|
||||
clean: clean_common
|
||||
include ${TOPDIR}/apps/makefile.common
|
||||
|
|
|
|||
|
|
@ -1,27 +1,7 @@
|
|||
PROJECT:=sketch
|
||||
|
||||
DOCKER_IMAGE=riscv-dev
|
||||
DOCKER_CMD:=docker run --rm -v ${PWD}../../../:/data -w /data/apps/${PROJECT} ${DOCKER_IMAGE}
|
||||
PREFIX:=${DOCKER_CMD} riscv64-unknown-elf-
|
||||
CFLAGS+=-I../../common
|
||||
CFLAGS+=-fno-stack-protector
|
||||
CFLAGS+=-static-libgcc -fdata-sections -ffunction-sections
|
||||
CFLAGS+=-g -Os -march=rv32ima_zicsr -mabi=ilp32 -static
|
||||
LDFLAGS:= -T ../linker.ld -nostdlib -Wl,--gc-sections
|
||||
LIBS:= #-lgcc # needed for softfp
|
||||
|
||||
SRCS=${PROJECT}.c ../crt0.S
|
||||
|
||||
all:
|
||||
${PREFIX}gcc -o ${PROJECT}.elf ${CFLAGS} ${LDFLAGS} ${SRCS} ${LIBS}
|
||||
$(PREFIX)objcopy ${PROJECT}.elf -O binary ${PROJECT}.bin
|
||||
|
||||
disasm: all
|
||||
$(PREFIX)objdump -S -d -f ${PROJECT}.elf
|
||||
|
||||
test: all
|
||||
../../host/host ${PWD}/${PROJECT}.bin
|
||||
|
||||
clean:
|
||||
rm -f ${PROJECT}.o ${PROJECT}.elf ${PROJECT}.bin
|
||||
|
||||
TOPDIR=../../
|
||||
PROJECT:=$(shell basename ${PWD})
|
||||
SRCS=${PROJECT}.c ${TOPDIR}/apps/crt0.S
|
||||
all: all_common
|
||||
test: test_common
|
||||
clean: clean_common
|
||||
include ${TOPDIR}/apps/makefile.common
|
||||
|
|
|
|||
|
|
@ -1,12 +1,15 @@
|
|||
all:
|
||||
# zig's objcopy is broken, so use external tool
|
||||
# https://ziggit.dev/t/addobjcopy-producing-zero-padding-at-start-of-binary/13384
|
||||
zig build && docker run -v `pwd`:/data -w /data --rm riscv-dev riscv64-unknown-elf-objcopy zig-out/bin/mandel -O binary mandel.bin
|
||||
PROJECT=mandel
|
||||
TOPDIR=../../
|
||||
|
||||
clean:
|
||||
rm -rf mandel.bin zig-out .zig-cache
|
||||
all:
|
||||
@# zig's objcopy is broken, so use external tool
|
||||
@# https://ziggit.dev/t/addobjcopy-producing-zero-padding-at-start-of-binary/13384
|
||||
zig build && ${PREFIX}objcopy zig-out/bin/${PROJECT} -O binary ${PROJECT}.bin
|
||||
|
||||
clean: clean_common
|
||||
rm -rf zig-out .zig-cache
|
||||
|
||||
test: all
|
||||
../../host/host mandel.bin
|
||||
|
||||
${TOPDIR}/host/host ${PROJECT}.bin
|
||||
|
||||
include ${TOPDIR}/apps/makefile.common
|
||||
|
|
|
|||
|
|
@ -1,12 +1,15 @@
|
|||
all:
|
||||
# zig's objcopy is broken, so use external tool
|
||||
# https://ziggit.dev/t/addobjcopy-producing-zero-padding-at-start-of-binary/13384
|
||||
zig build && docker run -v `pwd`:/data -w /data --rm riscv-dev riscv64-unknown-elf-objcopy zig-out/bin/zigtris -O binary zigtris.bin
|
||||
PROJECT=zigtris
|
||||
TOPDIR=../../
|
||||
|
||||
clean:
|
||||
rm -rf zigtris.bin zig-out .zig-cache
|
||||
all:
|
||||
@# zig's objcopy is broken, so use external tool
|
||||
@# https://ziggit.dev/t/addobjcopy-producing-zero-padding-at-start-of-binary/13384
|
||||
zig build && ${PREFIX}objcopy zig-out/bin/${PROJECT} -O binary ${PROJECT}.bin
|
||||
|
||||
clean: clean_common
|
||||
rm -rf zig-out .zig-cache
|
||||
|
||||
test: all
|
||||
../../host/host zigtris.bin
|
||||
|
||||
${TOPDIR}/host/host ${PROJECT}.bin
|
||||
|
||||
include ${TOPDIR}/apps/makefile.common
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue