This is an experimental learning project that uses an ESP32 DevKit V1 as an SWD programmer to flash firmware onto an STM32F103C8T6 (Blue Pill) using Rust. I wanted to see if it was possible to write the Rust code myself and flash the STM32 without using an ST-Link programmer.
It implements the SWD protocol to connect to the STM32, access its Debug and Access Ports, erase and program Flash memory, verify the firmware, and reset and run the STM32 core.
This project is intended for learning and experimentation, so DO NOT use it as a production programmer.
| ESP32 | STM32 |
|---|---|
| GPIO18 | SWCLK (PA14) |
| GPIO19 | SWDIO (PA13) |
| GND | GND |
