Renode Driver
jumpstarter-driver-renode provides a Jumpstarter driver for the
Renode embedded systems emulation framework. It
enables microcontroller-class virtual targets (Cortex-M, RISC-V MCUs)
running bare-metal firmware or RTOS as Jumpstarter test targets.
Installation
:substitutions:
$ pip3 install --extra-index-url {{index_url}} jumpstarter-driver-renode
Renode must be installed separately and available in PATH. See
Renode installation.
Configuration
Users define Renode targets entirely through YAML configuration. No code changes are needed for new targets.
Configuration Parameters
| Parameter | Type | Default | Description |
|---|---|---|---|
platform |
str |
(required) | Path to .repl file or Renode built-in platform name |
uart |
str |
sysbus.uart0 |
Peripheral path for the console UART |
machine_name |
str |
machine-0 |
Name of the Renode machine instance |
monitor_port |
int |
0 (auto) |
TCP port for the Renode monitor (0 = auto-assign) |
extra_commands |
list[str] |
[] |
Additional monitor commands run after platform load |
Examples
STM32F407 Discovery (opensomeip FreeRTOS/ThreadX)
export:
ecu:
type: jumpstarter_driver_renode.driver.Renode
config:
platform: "platforms/boards/stm32f4_discovery-kit.repl"
uart: "sysbus.usart2"
NXP S32K388 (opensomeip Zephyr)
export:
ecu:
type: jumpstarter_driver_renode.driver.Renode
config:
platform: "/path/to/s32k388_renode.repl"
uart: "sysbus.uart0"
extra_commands:
- "sysbus WriteDoubleWord 0x40090030 0x0301"
Nucleo H753ZI (openbsw-zephyr)
export:
ecu:
type: jumpstarter_driver_renode.driver.Renode
config:
platform: "platforms/cpus/stm32h743.repl"
uart: "sysbus.usart3"
Usage
Programmatic (pytest)
from jumpstarter_driver_renode.driver import Renode
from jumpstarter.common.utils import serve
with serve(
Renode(
platform="platforms/boards/stm32f4_discovery-kit.repl",
uart="sysbus.usart2",
)
) as renode:
renode.flasher.flash("/path/to/firmware.elf")
renode.power.on()
with renode.console.pexpect() as p:
p.expect("Hello from MCU", timeout=30)
renode.power.off()
Monitor Commands
Send arbitrary Renode monitor commands via the client:
response = renode.monitor_cmd("sysbus GetRegistrationPoints sysbus.usart2")
The monitor CLI subcommand is also available inside a jmp shell session.
Architecture
The driver follows the composite driver pattern:
Renode- root composite driver, manages the simulation lifecycleRenodePower- starts/stops the Renode process and controls the simulation via the telnet monitor interfaceRenodeFlasher- loads firmware (ELF/BIN/HEX) into the simulated MCUconsole- UART output via PTY terminal, reusing thePySerialdriver
Design Decisions
Key decisions:
- Control interface: Telnet monitor via
anyio.connect_tcp(no pyrenode3 / .NET dependency) - UART exposure: PTY terminal reusing
PySerial(consistent with QEMU) - Configuration model: Managed mode with
extra_commandsfor target-specific customization - Firmware loading:
flash()stores path,on()loads into simulation
API Reference
.. autoclass:: jumpstarter_driver_renode.driver.Renode()
Metadata
Release files for jumpstarter-driver-renode 0.9.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| jumpstarter_driver_renode-0.9.0.tar.gz | 13.2 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| jumpstarter_driver_renode-0.9.0-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 28.0 kB
Release files / jumpstarter_driver_renode-0.9.0.tar.gz
| Download URL | jumpstarter_driver_renode-0.9.0.tar.gz |
|---|---|
| Size | 13.2 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
50db34110c1e2efaf9178e0915876b89c06407e7e120fa45baf6ca2f26e95a6a
|
|
BLAKE2b-256 checksum How to use checksums |
5c233735830eef2a5d61a4f5d0d468a8155666f99d5b67fc006c84ca660d4b7b
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
uv/0.8.22
|
Release files / jumpstarter_driver_renode-0.9.0-py3-none-any.whl
| Download URL | jumpstarter_driver_renode-0.9.0-py3-none-any.whl |
|---|---|
| Size | 14.8 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
c396300aa4ceb9070ba8a48c759a3d6b519301c860ff0d65fbfddd6b8f4857af
|
|
BLAKE2b-256 checksum How to use checksums |
4b6ee98d1ed0d04e8890e0b0181ac4db6a8b5e5140d77de7697cbe4d55784e88
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
uv/0.8.22
|