Problem Description
I was trying to run the tests compiled in 32-bit mode with the simulator. Some of the tests work fine (e.g. test/src/add.c returns the result correctly) but things involving mmio work strangely. Namely, test/src/hello.c doesn't print anything and doesn't terminate.
Reproduction Steps
- Clone the repo on an x86_64 Mac, then run
install_riscv_gcc.sh and . setup.sh to get riscv-none-embed-gcc and put it into PATH.
- cd into
test and run make to build the test binaries.
- cd back into the repo root and run
stack exec riscv-semantics -- test/build/hello32.hex.
Other Findings
putchar('A'); putchar('\n'); alone works fine. I suppose the problem is related to reading from .rodata section...
- Calling
putchar('A'); in main causes the program to never terminate.
Problem Description
I was trying to run the tests compiled in 32-bit mode with the simulator. Some of the tests work fine (e.g.
test/src/add.creturns the result correctly) but things involving mmio work strangely. Namely,test/src/hello.cdoesn't print anything and doesn't terminate.Reproduction Steps
install_riscv_gcc.shand. setup.shto getriscv-none-embed-gccand put it intoPATH.testand runmaketo build the test binaries.stack exec riscv-semantics -- test/build/hello32.hex.Other Findings
putchar('A'); putchar('\n');alone works fine. I suppose the problem is related to reading from.rodatasection...putchar('A');inmaincauses the program to never terminate.