## LPTIM1EN / LPTIMER1EN Only stm32f413 has LPTIM1 peripheral, ref manual bit names: LPTIMER1EN, LPTIMER1RST, LPTIMER1LPEN, LPTIMER1SEL action: Rename to LPTIM1(EN|RST|...) for consistency (matches peripheral name) ## FMC / FSMC not available as peripheral in the YAML anyway.. TODO: why? EN and RST FSMC: f405, f407, f412, f413 FSC: f427, f429, f446, f469 action: none ## CECEN / CAN3EN mutually exclusive peripherals, alias ok? CECEN: f446 CAN3EN: f413 action: split off f4x3 yaml, f423 exists, but not available as svd ## USART / UART all over the place, register names in ref manual not always consistent stm32 follows a simple rule for the actual peripherals: USART 1-3, 6 UART 4, 5, 7-10 action: rename enable/rst bits to rules above
stm32-data
stm32-data
is a project aiming to produce clean machine-readable data about the STM32 microcontroller
families, including:
- ✔️ Base chip information
- RAM, flash
- Packages
- ✔️ Peripheral addresses and interrupts
- ✔️ Interrupts
- ✔️ GPIO AlternateFunction mappings (except F1)
- 🚧 Register blocks for all peripherals
- 🚧 DMA stream mappings
- ❌ Per-package pinouts
- ✔️ Links to applicable reference manuals, datasheets, appnotes PDFs.
✔️ = done, 🚧 = work in progress, ❌ = to do
Data sources
These are the data sources currently used.
- STM32Cube database: describes all MCUs, with useful stuff like GPIO AF mappings, DMA stream mappings, pinouts...
- stm32-rs SVDs: register blocks. YAMLs are extracted and manually cleaned up.
Install pre-requisites
In order to run the generator, you will need to install the following tools:
wget
git
jq
svd
–pip3 install svdtools
Generating the YAMLs
- Run
./d download-all
- Run
python3 parse.py
This generates all the YAMLs in data/
except those in data/registers/
, which are manually extracted and cleaned up.
Extracting new register blocks
TODO document
Description
Languages
Rust
97.7%
Shell
1.1%
Python
0.7%
PowerShell
0.5%