Files
vorago-rs/va108xx/flashloader
Robin Mueller 4978f0c643
shared-hal-ci / Check build (push) Waiting to run
shared-hal-ci / Check formatting (push) Waiting to run
shared-hal-ci / Check Documentation Build (push) Waiting to run
shared-hal-ci / Clippy (push) Waiting to run
shared-hal-ci / Check build (pull_request) Waiting to run
shared-hal-ci / Check formatting (pull_request) Waiting to run
shared-hal-ci / Check Documentation Build (pull_request) Waiting to run
shared-hal-ci / Clippy (pull_request) Waiting to run
va108xx-ci / Check build (push) Waiting to run
va108xx-ci / Run Tests (push) Waiting to run
va108xx-ci / Check formatting (push) Waiting to run
va108xx-ci / Check Documentation Build (push) Waiting to run
va108xx-ci / Check build (pull_request) Waiting to run
va108xx-ci / Clippy (push) Waiting to run
va108xx-ci / Run Tests (pull_request) Waiting to run
va108xx-ci / Check formatting (pull_request) Waiting to run
va108xx-ci / Check Documentation Build (pull_request) Waiting to run
va108xx-ci / Clippy (pull_request) Waiting to run
va416xx-ci / Check build (push) Waiting to run
va416xx-ci / Run Tests (push) Waiting to run
va416xx-ci / Check formatting (push) Waiting to run
va416xx-ci / Check Documentation Build (push) Waiting to run
va416xx-ci / Check build (pull_request) Waiting to run
va416xx-ci / Clippy (push) Waiting to run
va416xx-ci / Run Tests (pull_request) Waiting to run
va416xx-ci / Check formatting (pull_request) Waiting to run
va416xx-ci / Check Documentation Build (pull_request) Waiting to run
va416xx-ci / Clippy (pull_request) Waiting to run
update the ancient flash loader
2026-05-19 18:17:13 +02:00
..
2026-05-19 18:17:13 +02:00
2025-10-28 21:43:17 +01:00
2025-10-28 21:43:17 +01:00
2026-05-19 18:17:13 +02:00
2025-10-28 21:43:17 +01:00
2026-05-19 18:17:13 +02:00
2026-05-19 18:17:13 +02:00

VA108xx Flashloader Application

This flashloader shows a minimal example for a self-updatable Rust software which exposes a simple PUS (CCSDS) interface to update the software. It also provides a Rust application which can be used to upload compiled images to the flashloader application to write them to the NVM. You can find it inside the tools/va108xx-image-loader directory of the monorepo.

Please note that the both the application and the image loader are tailored towards usage with the bootloader provided by this repository.

The flashloader software could be be adapted to interface with a real primary on-board software instead of the loader application provided here to upload images because it already uses a low-level CCSDS based packet interface.

Using the image loader

Inside tools/va108xx-image-loader you can find a Rust application which can be used to update the image slots via a serial port.

You can install this tool using the following command inside the project folder:

cargo install --path .

After that, you can run va108xx-iamge-loader --help to get some to get usage informations.

The flash loader uses the UART0 with the Pins PA8 (RX) and PA9 (TX) interface of the VA108xx to perform CCSDS based communication. The serial port can be set inside the config.toml file or with the --port argument.

Examples

You can use

va108xx-image-loader ping

to send a ping an verify the connection.

You can use

cd flashloader/slot-a-blinky
cargo build --release
va108xx-image-loader flash a ./target/thumbv6m-none-eabi/release/slot-a-blinky

to build the slot A sample application and upload it to a running flash loader application to write it to slot A.

You can use

va108xx-image-loader set-boot-slot a 

to select the Slot A as a boot slot. The boot slot is stored in a reserved section in EEPROM and will be read and used by the bootloader to determine which slot to boot.

You can use

va108xx-image-loader corrupt a 

to corrupt the image A and test that it switches to image B after a failed CRC check instead.