diff options
-rw-r--r-- | README.md | 4 | ||||
-rw-r--r-- | prog/src/startup.c | 4 | ||||
-rw-r--r-- | prog/src/test_prog.s (renamed from prog/src/prog.s.tst) | 19 |
3 files changed, 10 insertions, 17 deletions
@@ -30,7 +30,7 @@ riscv_cpu |-> build # build folder |-> debug |-> cpu.gtkw # template for gtkwave - |-> prog + |-> prog # program that gets compiled to run on cpu |-> include |-> src |-> link.ld @@ -42,7 +42,7 @@ riscv_cpu |-> src |-> Makefile |-> sim - |-> gentestvec # generate testvectors for testbenches + |-> gentestvec # programs to generate testvectors for testbenches |-> src |-> Makefile |-> testbenches # testbench sources diff --git a/prog/src/startup.c b/prog/src/startup.c index c09f221..2ed3253 100644 --- a/prog/src/startup.c +++ b/prog/src/startup.c @@ -7,10 +7,14 @@ extern unsigned int _estack; // end of .stack section (stack top) void main(void); // main function declaration +// extern void test_prog(void); + void _start(void) __attribute__((section(".text.startup"), naked)); // entry point, cpu starts executing from here void _start(void) { + // test_prog(); + unsigned int *src, *dst; // copy .data section from ROM to RAM diff --git a/prog/src/prog.s.tst b/prog/src/test_prog.s index ec227a9..caa6d8c 100644 --- a/prog/src/prog.s.tst +++ b/prog/src/test_prog.s @@ -1,17 +1,6 @@ .section .text .globl test_prog - -/* - addi t0, zero, 31 -reset_loop: - addi t6, zero, 0 -loop: - addi t6, t6, 1 - beq t6, t0, reset_loop - j loop -*/ - test_prog: li t0, 0xFFFFFFFF li t1, 0x33333333 @@ -44,11 +33,11 @@ branch_eq_ret: j branch_ne_nt branch_ne_ret: - addi sp, sp, -16 # Adjust stack pointer to make space for ra and s0 - sw ra, 0(sp) # Save ra to the stack + addi sp, sp, -16 + sw ra, 0(sp) call func - lw ra, 0(sp) # Load ra from the stack - addi sp, sp, 16 # Restore stack pointer + lw ra, 0(sp) + addi sp, sp, 16 li t0, 0x00100000 sw t1, 0(t0) |