1 unstable release
0.1.0 | Jun 30, 2023 |
---|
#14 in #dfu
7KB
Runtime support for Kiffieboot kb3k bootloader including USB interface
This crate can be used to start the bootloader or to provide an USB Device
Firmware Upgrade (DFU) class interface. The DFU support is based on the
usbd-dfu-rt
crate.
Example (USB DFU interface)
let sysclock = 48_000_000_u32.hz();
let clock = Osc::new(pac.OSC, sysclock);
let mut timer = Delay::new(sysclock);
let usb_bus = UsbBus::new(pac.USB);
let mut dfu_runtime = DfuRuntimeClass::new(&usb_bus, Kiffieboot::default());
let mut usb_dev = UsbDeviceBuilder::new(&usb_bus, UsbVidPid(0x16c0, 0x27dd))
.manufacturer("Some company")
.product("Some USB device")
.build();
loop {
usb_dev.poll(&mut [&mut dfu_runtime]);
dfu_runtime.tick(1);
timer.delay_ms(1);
}
Example (directly jump into the bootloader)
Kiffieboot::start_bootloader();
Example (using dfu-util from a Linux shell)
dfu-util -R -D my_application.bin
Dependencies
~0.2–13MB
~421K SLoC