Keyboard shortcuts

Press or to navigate between chapters

Press S or / to search in the book

Press ? to show this help

Press Esc to hide this help

Architecture and first steps

FastDyn starts with an executable firmware image and a description of its board. The firmware executes in patched QEMU. FastDyn’s plugin routes device accesses through the models selected in TOML and applies configured virtuals, modifiers, and instrumentation.

flowchart TD
    config["TOML: CPU, memory, devices, tools"] --> qemu["Firmware executing in QEMU"]
    qemu <-->|"Peripheral access"| plugin["FastDyn plugin"]
    plugin --> virtual["Virtual device models"]
    plugin --> hardware["Selected real hardware"]
    plugin <-->|"Sensors and actuators"| physics["Optional physics backend"]
    qemu --> trace["Instrumentation and run artifacts"]

1. Inspect a configuration

After choosing your environment, from the repository root:

fastdyn run --help

Expect help beginning with Runs the firmware on QEMU using the passed config file, including required --config and optional --work-dir arguments. Your chosen environment supplies tools; the TOML selects the firmware and simulation.

Read configs/bare_bones.toml for the configuration shape, then choose a configuration matching your actual firmware. A starter is not automatically a correct board model. Review the CPU, memory addresses, vector table, device ranges, interrupts, and clock assumptions.

2. Run a configured target

The general command is:

fastdyn run -c <your-config.toml> -o <your-work-directory>

The angle-bracket paths are placeholders. For an executable example with the included firmware, use the Rumoca first mission.

3. Inspect the run

The work directory contains generated device routing and virtual/modifier rules, plus enabled instrumentation output. Compare those generated rules with your intended configuration before interpreting a failed boot as a firmware bug. fastdyn help opens the configuration-help browser.

For other hardware and native builds, follow README.md and setup.sh --help. The supplied simulation environment currently targets x86-64 Linux.