User:Vikk

From ArchWiki

Viktor from Vikkio Consulting

"Linux makes me smarter"

Interests:

  • Networking
  • STM32 development with C
  • ARM architecture
  • Servers and datacenters

STM32 development

Crosscompilation needs a couple of community packages: arm-none-eabi-binutils, arm-none-eabi-gcc, arm-none-eabi-gdb, arm-none-eabi-newlib. stlink can be used for flashing.

pacman -S arm-none-eabi-binutils arm-none-eabi-gcc arm-none-eabi-gdb arm-none-eabi-newlib
pacman -S stlink

Download and install STM32CubeMX

I like to keep it simple, using Emacs with emacs code browser for editing and building with the console.

Adjust project settings in STM32CubeMX to Makefile and generate package. BINPATH must point to where the arm-none-eabi binaries are installed:

Makefile
...
BINPATH = /usr/bin
...

To clear entire flash

st-flash erase

To program device, example Nucleo F746ZG

st-flash write EXAMPLE.bin 0x8000000

systemd mount example, btrfs

Basic example of an BTRFS mount file...

/etc/systemd/system/mnt-ssd.mount
[Unit]
Description=Mount SSD

[Mount]
What=/dev/disk/by-uuid/UUID
Where=/mnt/ssd
Type=btrfs
Options=rw,noatime,compress=zstd:3,ssd,discard=async

[Install]
WantedBy=multi-user.target