pw_emu#
Flexible emulators frontend
Experimental Python CLI
Declarative. Define emulation targets in JSON. A target encapsulates the emulated machine, tools, and host channels configuration.
Flexible. Manage multiple emulator instances over a CLI or Python API.
Unopinionated. Use QEMU or Renode, or extend
pw_emu
to support your favorite emulator.Configurable. Expose channels for debugging and monitoring through configurable host resources like sockets.
Declaratively configure an emulation target like this:
{
"targets": {
"qemu-lm3s6965evb": {
"gdb": [
"arm-none-eabi-gdb"
],
"qemu": {
"executable": "qemu-system-arm",
"machine": "lm3s6965evb",
"channels": {
"chardevs": {
"serial0": {
"id": "serial0"
}
}
}
}
}
}
}
Then run a binary like this!
pw emu run --args=-no-reboot qemu-lm3s6965evb \
out/lm3s6965evb_qemu_gcc_size_optimized/obj/pw_snapshot/test/cpp_compile_test