Minnesanteckningar för att komma igång med STM32F0xx
Länkar att spana in
https://electronut.in/stm32-start/
https://freeelectron.ro/arm-cross-compiler-tutorial-stm32/ och https://freeelectron.ro/bare-metal-stm32-led-blink/
https://web.eecs.umich.edu/~prabal/teaching/resources/eecs373/toolchain-notes.pdf
https://jacobmossberg.se/posts/2018/08/11/run-c-program-bare-metal-on-arm-cortex-m3.html
MSYS2 & OpenOCD
Kom ihåg att öppna via genvägen MSYS2 MinGW 64-bit, annars fungerar inte PATH som det ska och paket som installeras med pacman kan inte hittas
# pacman -Syuu # pacman -Ss openocd # pacman -S mingw-w64-x86_64-openocd-git # openocd -f "interface/stlink-v2.cfg" -f "target/stm32f0x.cfg"
För att flasha
Starta openocd
$ openocd -f "interface/stlink-v2.cfg" -f "target/stm32f0x.cfg"
Anslut med telnet
$ telnet localhost 4444 > reset halt > stm32f0x mass_erase 0 stm32x mass erase complete > flash write_bank 0 bin/manualstuff1.bin 0 wrote 204 bytes from file bin/manualstuff1.bin to flash bank 0 at offset 0x00000000 in 0.040807s (4.882 KiB/s)
ARM GCC Toolchain
Ladda ner senaste GNU Arm Embedded Toolchain och installera.
ARM GCC Compiler
ARM LD Linker
ARM Objdump
$ arm-none-eabi-objdump.exe bin/manualstuff1.bin.elf -d
ARM GDB Debugger
Starta först openocd
$ openocd -f "interface/stlink-v2.cfg" -f "target/stm32f0x.cfg"
Starta sedan GDB och anslut till openocd-gdb-servern
$ arm-none-eabi-gdb.exe bin/manualstuff1.bin.elf --eval-command="target remote localhost:3333"
Fina kommandon
hbr - hardware breakpoint i b - info breakpoint s - step si - step instruction x *0 - hexdump address 0 disassemble main - disassemble main i r - print registers i fr - frame info i var - variable symbol info i fu - function symbol info
CubeMX & STM32 standard peripherals library
STM32CubeF0 STM32CubeF0
STM32CubeMX STM32CubeMX
STM32CubeProg STM32CubeProg
Standard peripherals library - STSW-STM32048
