Repository navigation
WireForge 0.4.1 takes the tutorial onto a microcontroller and against a real autopilot.
Tutorial
- New chapter 5, On a microcontroller: the C vehicle runs as bare-metal firmware on a Cortex-M4 (QEMU's
mps2-an386, no board needed), MAVLink 2 over the UART, against the same pymavlink ground station. About 22 KB of flash and 14 KB of RAM, nothing allocated at run time. The later chapters move up by one. - Chapter 4, the same in C and against ArduPilot: the vehicle in C99, and a C ground station built from the import of the whole
ardupilotmega.xmlthat talks to the ArduCopter simulator (SITL). With ArduCopter 4.7.2: every frame decoded, none rejected, commands acknowledged, the whole parameter list received. - Chapter 3 imports a whole MAVLink dialect with
wireforge import-mavlink. - Chapter 8 shows the dissection tree of a frame.
CMake
wireforge_generate(<target> PROJECT <dir> LANGUAGE c) generates C99 and gives a static C library without the C++ runtime, so a C-only cross build (for example arm-none-eabi) works.
Fixes
The MAVLink 2 Wireshark hook reads the CRC_EXTRA bytes from the project's crc_extra.h, so a message added to the model is verified too (VFR_HUD from the tutorial showed a checksum mismatch before).
Details: Tutorial · On a microcontroller · Generated C code
GitHub Action: uses: oguzhankynk/wireforge@v0.4.1. Free for development, evaluation and CI; the generated code and its runtime are yours under MIT.