This is a simple blink example written in assembly for the Blue Pill board (STM32F103C8T6).
You'll need the arm-none-eabi toolchain installed. On Ubuntu:
sudo apt install binutils-arm-none-eabi gcc-arm-none-eabi gdb-arm-none-eabi
To build the blink example:
git clone https://github.com/moefh/stm32-blink.git
cd stm32-blink
make
This will create the file blink.bin in the src directory.
You'll need a Blue Pill board and a ST-Link programmer.
The open source tool to upload programs to the board is st-flash. You can either
grab a release from https://github.com/stlink-org/stlink/releases/latest or compile
it yourself (there's a Ubuntu package stlink-tools which provides st-flash, but
the latest version is too old and doesn't seem to support the STM32F103C8T6).
If you choose to compile it yourself, the steps for Ubuntu are:
sudo apt install cmake libusb-1.0-0-dev
git clone https://github.com/stlink-org/stlink
cd stlink
make
sudo cp build/Release/bin/st-* /usr/local/bin
After you have st-flash installed, upload the blink program to the board with:
sudo st-flash --reset write src/blink.bin 0x8000000
