Toby Jaffey
978ddb52f0
Fix memory size in extram test
2025-12-11 11:16:46 +00:00
Toby Jaffey
9ca720d35c
auto-generate Arduino example, to keep in sync
2025-12-11 11:05:44 +00:00
Toby Jaffey
7a1656ab10
Handle 8, 16 and 32 bit accesses to extram.
2025-12-11 10:33:45 +00:00
Toby Jaffey
63386f9a92
Missing header
2025-12-11 02:40:30 +00:00
Toby Jaffey
b55c2bc88a
Add system for memory mapping a block of memory from the host.
2025-12-11 02:36:46 +00:00
Toby Jaffey
8802b4c268
Maze works at -O2 with -fpeel-loops
2025-12-11 01:33:04 +00:00
Toby Jaffey
a55300c8c3
Updated maze binary
2025-12-11 01:11:41 +00:00
Toby Jaffey
58f8caee5a
Prevent gcc converting block copies/sets to memcpy() and memset(), which don't exist.
2025-12-11 01:10:55 +00:00
Toby Jaffey
59e6ebfedf
Show pc on error
2025-12-11 01:10:12 +00:00
Toby Jaffey
1fa58ed800
On crash, dump the entire memory to a file
2025-12-11 00:22:19 +00:00
Toby Jaffey
15806b592b
Rebuilt binaries
2025-12-11 00:01:03 +00:00
Toby Jaffey
3e7b7cea4d
Round power of 2 for memory size
2025-12-11 00:00:01 +00:00
Toby Jaffey
e0eb6615c0
maze crashes at high optimisation level, when "maze" variable gets memset
2025-12-10 23:59:11 +00:00
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