Commit graph

185 commits

Author SHA1 Message Date
Toby Jaffey
23fc50c820 Unused. 2025-12-10 23:58:43 +00:00
Toby Jaffey
b83fc74c8d Align stack pointer to 16 bytes, needed if UVM32_MEMORY_SIZE is not multiple of 16.
On memory rd trap, set appropriate error code
2025-12-10 23:27:24 +00:00
Toby Jaffey
ac1975a820 Test metering, prove that system can resume after a hang error with a range of meter sizes 2025-12-10 22:30:19 +00:00
Toby Jaffey
9d9e7542fc Test parsing of syscall args, and responses to invalid behaviour 2025-12-10 22:29:33 +00:00
Toby Jaffey
46b6d1efba Ensure make errors when a test fails 2025-12-10 19:27:39 +00:00
Toby Jaffey
30b7ff4791 custom syscall example 2025-12-10 18:52:01 +00:00
Toby Jaffey
508d41c8c5 Remove stackoverflow error, have one CORE_INTERNAL error for catastrophic crash 2025-12-10 18:42:34 +00:00
Toby Jaffey
59f5d6449b Non-interactive shell for docker build 2025-12-10 16:40:56 +00:00
Toby Jaffey
1087a1a44f Only test on linux 2025-12-10 16:39:17 +00:00
Toby Jaffey
c8cb3ed106 Add Dockerfile 2025-12-10 16:38:22 +00:00
Toby Jaffey
da7f70c456 Initial test framework
Clean up makefiles
Everything buildable under docker (or natively)
2025-12-10 16:36:33 +00:00
Toby Jaffey
5a0c70a017 Anti-crash goal 2025-12-10 11:07:24 +00:00
Toby Jaffey
47fd83ed4c Add yield 2025-12-10 11:05:22 +00:00
Toby Jaffey
b4f170b6b6 Fix links 2025-12-10 11:03:28 +00:00
Toby Jaffey
a027c3fe7f Why? 2025-12-10 10:59:35 +00:00
Toby Jaffey
28135f3005 Update yield info 2025-12-10 10:48:01 +00:00
Toby Jaffey
f4cccc8853 Simple build check 2025-12-10 10:44:19 +00:00
Toby Jaffey
e07eeab043 Make yield a regular syscall taking an argument.
Allows "wait for interrupt"/"wait for event" type operation where VM code blocks until the host has something for it.
2025-12-10 10:35:18 +00:00
Toby Jaffey
d52baca7b2 Move example 2025-12-10 01:24:34 +00:00
Toby Jaffey
9baedb42e8 Add a stack canary, setup on boot 2025-12-10 01:00:36 +00:00
Toby Jaffey
9596838a4b Recursive maze demo, causes big stack usage 2025-12-09 23:29:16 +00:00
Toby Jaffey
428bd7cc6b Use signal, for linux 2025-12-09 22:20:11 +00:00
Toby Jaffey
d5df056914 Improve arduino setup 2025-12-09 22:18:40 +00:00
Toby Jaffey
ac554865a6 Make ROM const 2025-12-09 22:08:53 +00:00
Toby Jaffey
76fba39a21 Rework syscall ABI.
Syscalls now accept two parameters, allowing for things like "int count = read(buf, len)"
Rather than providing safe signatures for syscalls, the user is now given helper functions to safely parse incoming values, c-strings and slices.
2025-12-09 21:51:35 +00:00
Toby Jaffey
f046a590c0 Memory setup 2025-12-09 14:50:23 +00:00
Toby Jaffey
8c11b45670 Move CPU core out of RAM. This limits possibilities for self-modifying code hacks, but is cleaner/safer. 2025-12-09 10:46:29 +00:00
Toby Jaffey
941cd141f4 Cleanup terminal on ctrl-c 2025-12-09 09:49:30 +00:00
Toby Jaffey
37a178aad7 Remove refs to old CSRs 2025-12-09 01:23:46 +00:00
Toby Jaffey
3cdc9ae0ca Default behaviour is to run to end of main 2025-12-09 01:19:09 +00:00
Toby Jaffey
7b7b08e626 Show cursor on exit 2025-12-09 01:18:14 +00:00
Toby Jaffey
2cafc6fd74 Cursor keys 2025-12-09 00:58:38 +00:00
Toby Jaffey
d56f34dc4e Use cursors 2025-12-09 00:56:07 +00:00
Toby Jaffey
04e7aaef88 Exit on keypress 2025-12-09 00:54:22 +00:00
Toby Jaffey
71db6d1dea Reset terminal back to original state on exit 2025-12-09 00:50:30 +00:00
Toby Jaffey
b6f271ca5a Add newlines 2025-12-09 00:31:41 +00:00
Toby Jaffey
b34b144a8c Update example 2025-12-09 00:15:25 +00:00
Toby Jaffey
136f7a30bd Update with fib sketch 2025-12-09 00:13:38 +00:00
Toby Jaffey
c37286cf01 Add "self", example of building uvm32 to run inside uvm32
mandelbrot app is embedded in host-mini, which is then compiled to a .bin
2025-12-08 23:54:14 +00:00
Toby Jaffey
9be9e056cd Use internal memcpy/memset 2025-12-08 23:48:50 +00:00
Toby Jaffey
d7673eb0b9 Add common typedefs 2025-12-08 23:48:32 +00:00
Toby Jaffey
3db1d2433b Update to use mandel 2025-12-08 23:39:13 +00:00
Toby Jaffey
7e7cabeb24 Prettier, better terminal handling, more variation 2025-12-08 21:41:51 +00:00
Toby Jaffey
54f71f18c2 typo 2025-12-08 21:22:10 +00:00
Toby Jaffey
ebb6518ec3 Lissajous, showing floating point arithmetic 2025-12-08 21:20:57 +00:00
Toby Jaffey
de689bdeaf Resume after hang (with warning) 2025-12-08 21:19:59 +00:00
Toby Jaffey
41a94d0629 Fix putc() 2025-12-08 20:45:39 +00:00
Toby Jaffey
ee2ba56423 Add cmdline option to host <file.bin> [max_instrs_to_run], to set instruction meter.
Allow a host to continue after a hung error, if it wants to.

So, a program with while(1) {} can be run indefinitely.
2025-12-08 20:36:00 +00:00
Toby Jaffey
bbf5ccafb6 "critical" fix 2025-12-08 16:40:59 +00:00
Toby Jaffey
6735b159ac Make syscall names closer to libc 2025-12-08 16:28:00 +00:00