Register block based in STM32F427ZI and STM32L4R9. Use bool for reset registers. Define clock mapping for RNG peripherals. There are no 1 <-> 1 mapping of RNG peripheral to clock in the Cubedb sources. The mapping will pre-select the clock source for RNG for now.
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.
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%