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 ===
[[https://www.msys2.org/|MSYS2]]
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 [[https://developer.arm.com/tools-and-software/open-source-software/developer-tools/gnu-toolchain/gnu-rm/downloads|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 [[https://www.st.com/en/embedded-software/stm32cubef0.html|STM32CubeF0]]
STM32CubeMX [[https://www.st.com/en/development-tools/stm32cubemx.html|STM32CubeMX]]
STM32CubeProg [[https://www.st.com/en/development-tools/stm32cubeprog.html|STM32CubeProg]]
Standard peripherals library - [[https://www.st.com/en/embedded-software/stsw-stm32048.html|STSW-STM32048]]