LabWired Core Documentation
Welcome to the LabWired Core documentation. LabWired is a deterministic firmware simulation platform designed to replace physical hardware in CI pipelines.
🚀 Getting Started
If you are new to LabWired, start here:
- Running Your Firmware: Learn how to load ELF binaries and execute them in the simulator.
- Board Onboarding: Steps to add support for a new microcontroller or board.
🧠 Core Concepts
Understand how LabWired achieves deterministic simulation:
- Architecture Overview: Explains the split between the CPU Core, System Bus, and Peripherals.
- Configuration Reference: Detailed schema for defining chips and systems (YAML).
🛠 Developer Guides
For contributors extending the core engine or adding new peripherals:
- Peripheral Development: How to implement custom peripheral models in Rust.
- Declarative Registers: Defining register maps using simple YAML files.
- CI Integration: How to run LabWired in GitHub Actions or GitLab CI.
🔍 Debugging
- VS Code Debugging: Recipes for
launch.json. - Native DAP: Architecture of the built-in Debug Adapter.
- GDB Integration: Using standard GDB clients.
📚 Examples
Practical walkthroughs of specific features:
- I2C Sensor Simulation: Verify driver code against a mock I2C device.
- DMA & Interrupts: Understanding the two-phase execution model.