STM32 Nucleo
Board
- https://en.wikipedia.org/wiki/STM32#Development_boards
- NUCLEO-F302R8 board for STM32F302R8T6 MCU with 72 MHz Cortex-M4F core, 64 KB flash, 16 KB SRAM.
Documentation
Software - Void Linux
- Install software
xi stlink - Set up udev rules (as root)
#/etc/udev/rules.d/stm32nucleo.rules SUBSYSTEM!="usb|usb_device", ACTION!="add", GOTO="stm32nucleo_end" ATTRS{idVendor}=="0483", ATTRS{idProduct}=="374b", SYMLINK+="stm32-%k", MODE="660", GROUP="input" LABEL="stm32nucleo_end" - Connect device
- Probe for the device
st-info --probe; should print something like this:
Found 1 stlink programmers version: V2J33S25 serial: 066FFF5155xxxxxxxxxxxxx flash: 65536 (pagesize: 2048) sram: 40960 chipid: 0x439 dev-type: STM32F301_F302_F318 - Read boot or flash area
st-flash read /tmp/boot.bin 0x0 0x10000 # flash if booting from flash st-flash read /tmp/flash.bin 0x8000000 0x10000 # flash
Debugging
- Install tools
xi cross-arm-none-eabi cross-arm-none-eabi-gdb - Using GDB
- Connect to device
st-util - Run GDB
arm-none-eabi-gdb -ex 'target extended-remote localhost:4242'
- Connect to device
Rust
Tools:
rustup target add thumbv7em-none-eabihf