DfuBootloader
STM32 USB device bootloader using DFU class interface
Install / Use
/learn @IntergatedCircuits/DfuBootloaderREADME
DFU Bootloader 
This repository contains a generic USB device bootloader firmware for STM32 controllers.
Features
- Fully-featured DFU class (with support to STMicroelectronics protocol Extension) USB device
- Small footprint: consumes only 8kB flash with
-Os(50% smaller than the STM32Cube solution) - The DFU interface is allocated to a fixed address, so it can be mounted on the application's USB device, allowing convenient entry to firmware update mode
- Easy to port on virtually any STM32 device that is supported by STM32_XPD
- C# CLI application available for performing the update: LibUsbDfu
How to build
Simply run make with the following arguments:
| Symbol Name | Use
| :----------------- | :------------------------
| SERIES | The series of the STM32 device
| TARGET_HEADER | String of the device-specific STM32_XPD header
| APP_ADDRESS | Value of the application's flash start address
| APP_SIZE | The total available flash space for the application in bytes
| TOTAL_ERASE_MS | Average erase time of the application flash area
| VID | Vendor ID of the USB device in hexadecimal format (no prefix)
| PID | Product ID of the USB device in hexadecimal format (no prefix)
| DFUSE | Set to 1 if DFUSE protocol is desired
| DESC_STR | DFUSE specific flash layout descriptor string
| BINPATH | Path to build toolchain binaries (/usr/bin by default)
An example for an STM32F042K6 device with (VID,PID)={FFFF,FFFF}:
make TARGET_HEADER="\<stm32f042x6.h\>" SERIES=STM32F0 APP_ADDRESS=0x08002000 APP_SIZE=24568 TOTAL_ERASE_MS=480 VID=FFFF PID=FFFF
Further examples can be found in .travis.yml.
Built with GCC. (arm-atollic-eabi- is preferred over arm-none-eabi- as it provides better size optimization)
Related Skills
node-connect
349.7kDiagnose OpenClaw node connection and pairing failures for Android, iOS, and macOS companion apps
frontend-design
109.7kCreate distinctive, production-grade frontend interfaces with high design quality. Use this skill when the user asks to build web components, pages, or applications. Generates creative, polished code that avoids generic AI aesthetics.
openai-whisper-api
349.7kTranscribe audio via OpenAI Audio Transcriptions API (Whisper).
qqbot-media
349.7kQQBot 富媒体收发能力。使用 <qqmedia> 标签,系统根据文件扩展名自动识别类型(图片/语音/视频/文件)。
