User Tools

Site Tools


arm:stm32

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

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 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

arm/stm32.txt · Last modified: 2022/09/12 00:30 by 127.0.0.1

Except where otherwise noted, content on this wiki is licensed under the following license: CC0 1.0 Universal
CC0 1.0 Universal Donate Powered by PHP Valid HTML5 Valid CSS Driven by DokuWiki