diff options
| author | cheapie <cheapiephp@gmail.com> | 2026-10-30 09:09:20 -0500 |
|---|---|---|
| committer | cheapie <cheapiephp@gmail.com> | 2026-10-30 09:09:20 -0500 |
| commit | a16b984f06ca52be0785073ee2c21fcae301fff3 (patch) | |
| tree | 78dd6761af6088d27e791a533bcb73a974cb3c89 /c/inline/inline.c | |
| parent | 1feb4eefe87b555a64d51e08eca7315b30521345 (diff) | |
| download | rvcontroller-a16b984f06ca52be0785073ee2c21fcae301fff3.tar rvcontroller-a16b984f06ca52be0785073ee2c21fcae301fff3.tar.gz rvcontroller-a16b984f06ca52be0785073ee2c21fcae301fff3.tar.bz2 rvcontroller-a16b984f06ca52be0785073ee2c21fcae301fff3.tar.xz rvcontroller-a16b984f06ca52be0785073ee2c21fcae301fff3.zip | |
Add console interrupt support
Diffstat (limited to 'c/inline/inline.c')
| -rw-r--r-- | c/inline/inline.c | 25 |
1 files changed, 25 insertions, 0 deletions
diff --git a/c/inline/inline.c b/c/inline/inline.c new file mode 100644 index 0000000..c8db8e3 --- /dev/null +++ b/c/inline/inline.c @@ -0,0 +1,25 @@ +#include <stdint.h> +#include <stdbool.h> +#include "rvcontroller-ecalls.h" + +volatile char thischar; + +volatile uint32_t nonblocking_read() { + volatile uint32_t ret; + asm( + "li a7,132 \n\ + ecall \n\ + mv %0,a0 \n" + : "=r" (ret) + : + : "a0" + ); + return ret; +} + +void main() { + while (true) { + thischar = nonblocking_read(); + //printint(thischar); + } +} |
