tinyboot-ch32-app 0.1.0

App-side library for tinyboot on CH32 microcontrollers
docs.rs failed to build tinyboot-ch32-app-0.1.0
Please check the build logs for more information.
See Builds for ideas on how to fix a failed build, or Metadata for how to configure docs.rs builds.
If you believe this is docs.rs' fault, open an issue.

tinyboot-ch32-app

Part of the tinyboot project — see the main README to get started.

App-side tinyboot client for CH32 microcontrollers. Handles boot confirmation and responds to host commands (Info, Reset) so the CLI can query and reset the device without physical access.

Usage

use tinyboot_ch32_app::{App, AppConfig};

// Place the app version in flash (reads from Cargo.toml)
tinyboot_ch32_app::app_version!();

let mut app = App::new(&AppConfig {
    boot_base: 0x1FFF_F000,
    boot_size: 1920,
    app_size: 16 * 1024,
    erase_size: 64,
});

// Confirm boot — transitions Validating → Idle in option bytes
app.confirm();

// Main loop: poll for tinyboot commands
loop {
    app.poll(&mut rx, &mut tx);
}

API

Function Description
app_version!() Macro that places the crate version (from Cargo.toml) in the .tinyboot_version linker section
App::new() Create client with flash layout configuration
App::confirm() Confirm trial boot (Validating → Idle), preserving checksum in OB
App::poll() Poll for and handle one tinyboot command (blocking)
App::poll_async() Async version of poll()

Commands handled

  • Info — responds with capacity, erase size, versions, and mode=1 (app)
  • Reset — resets the device; addr=1 reboots into bootloader, addr=0 reboots normally

All other commands receive Status::Unsupported.

Features

Feature Description
ch32v003f4p6 CH32V003F4P6 chip variant (default)
system-flash App paired with system-flash bootloader
defmt Enable defmt logging

See examples/ch32/system-flash/app for a complete example.