Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/tralamazza/embedded_zig

minimal Zig embedded ARM example (STM32F103 blue pill)
https://github.com/tralamazza/embedded_zig

arm stm32f103 zig

Last synced: 2 months ago
JSON representation

minimal Zig embedded ARM example (STM32F103 blue pill)

Awesome Lists containing this project

README

        

# embedded_zig

A "minimal" ARM cortex-M firmware in Zig running on a STM32F103. It blinks.

## building

Get [GNU Arm Embedded Toolchain](https://developer.arm.com/tools-and-software/open-source-software/developer-tools/gnu-toolchain/gnu-rm) and [Zig](https://ziglang.org/) in `PATH` and type:

make

## running on a [bluepill](http://wiki.stm32duino.com/index.php?title=Blue_Pill)

Run OpenOCD on a terminal:

openocd -f /usr/share/openocd/scripts/interface/stlink-v2.cfg -f /usr/share/openocd/scripts/target/stm32f1x.cfg

Open your favorite GDB:

arm-none-eabi-gdb firmware.elf -ex 'target extended-remote :3333'
load
r

Bonus: you can type `make` inside gdb and `load` it again.

## issues

If you have any linking issues uncomment the line below (in the `Makefile`) to use GNU ld:

# zig build-exe ${BUILD_FLAGS} $(OBJS:%=--object %) --name [email protected] --linker-script ${LINKER_SCRIPT}
arm-none-eabi-ld ${OBJS} -o [email protected] -T ${LINKER_SCRIPT} -Map [email protected] --gc-sections

## raq (rarely asked questions)

a) Shouldn't the Makefile...

A: lalalala

b) How do I flash this?

A: see [running on a bluepill](#running-on-a-bluepill)

c) Why didn't you use `@cImport()`?

A: yes