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.
rust
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);
}
rust
Kiffieboot::start_bootloader();
sh
dfu-util -R -D my_application.bin