uvm32: Minimalist Virtual Machine Sandbox for Resource-Constrained Microcontrollers
By
trj
Crackling crust, pillowy middle. The kind of bagel that earns a second cup of coffee.
Summary
uvm32 is a minimalist, dependency-free virtual machine sandbox designed for microcontrollers and resource-constrained devices. It's implemented as a single C file with no dynamic memory allocations, using pure C99 with an asynchronous design. The system requires under 3KB flash and 1KB RAM on an STM32L0 (ARM Cortex-M0+). While based on a RISC-V emulator, uvm32 is intended for executing custom script-like logic rather than hardware simulation, and comes with tools to build efficient code for execution within the sandbox.
Key quotes
· 5 pulleduvm32 is a minimalist, dependency-free virtual machine sandbox designed for microcontrollers and other resource-constrained devices.
Single C file, no dynamic memory allocations, asynchronous design, pure C99.
On an STM32L0 (ARM Cortex-M0+) the required footprint is under 3KB flash/1KB RAM.
uvm32 is a RISC-V emulator, wrapped in a management interface and provided with tools to build efficient code to run in it.
Although based on a fully fledged CPU emulator, uvm32 is intended for executing custom script like logic, not for simulating hardware.
You might also wanna read
Embedist: Open-Source AI-Assisted Embedded Development Environment for Windows
Embedist is an open-source Windows desktop application that integrates AI assistance with embedded firmware development. It combines board-a
xcc700: Self-Hosting Mini C Compiler for ESP32 Microcontrollers
xcc700 is a self-hosting mini C compiler designed specifically for the ESP32 microcontroller with Xtensa architecture. The project allows de
MicroQuickJS: A Lightweight JavaScript Engine for Embedded Systems
MicroQuickJS (MQuickJS) is a lightweight JavaScript engine designed for embedded systems, requiring only 10 kB of RAM and about 100 kB of RO
beLow: Automated Performance Analysis and Optimization Tool for C/C++ Embedded Code
beLow is a tool that automatically analyzes C and C++ embedded code to identify performance bottlenecks and generate optimized code for spec
First Successful ARM32 JIT Compilation for Erlang BEAM Virtual Machine
The article announces a major milestone in the development of an ARM32 JIT (Just-In-Time compiler) for the BEAM virtual machine used by Erla
Comparative Analysis: Ada, SPARK, and Rust vs C/C++ for High-Integrity Embedded Systems
This article from AdaCore provides a comparative analysis of programming languages for high-integrity embedded systems development, focusing
