• Stars
    star
    6
  • Rank 2,539,965 (Top 51 %)
  • Language
    Assembly
  • License
    MIT License
  • Created about 7 years ago
  • Updated almost 7 years ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

Various practical examples for getting started with developing on Cortex-M platforms using Thumb assembly. Work-in-progress as I learn

More Repositories

1

ESP32_minimal

Minimal code for a 'bare metal' ESP32 program which does not use ESP-IDF. Really just a learning exercise because the ESP-IDF is Apache-licensed and quite good; I just had trouble finding lower-level information about the chip.
Makefile
42
star
2

STM32F0_minimal

Absolute minimum code required to boot an STM32F0 chip.
Makefile
37
star
3

GD32VF103_templates

A few minimal bare-metal "hello, world" programs to help learn about the GD32VF103 RISC-V microcontroller without relying on a particular framework.
C
29
star
4

STM32F0_minimal_C

Minimal code required to boot an STM32F0 chip into a C 'main' method.
Assembly
29
star
5

STM32_CPP_Inheritance

Example firmware to run an SSD1306 display as a demonstration of C++ inheritance in an embedded application on an STM32 ARM Cortex-M chip.
C
19
star
6

game_and_watch_fun

Repository containing code to run on a Nintendo Game and Watch.
C
17
star
7

KiCAD_STM32_Example

Example project containing a KiCAD project for a basic STM32 breakout board.
16
star
8

STM32F723E_QSPI_Example

Example program demonstrating how to access Quad-SPI Flash chips using an STM32F723E Discovery Kit.
C
15
star
9

min_freertos_blink

An example FreeRTOS project for STM32 microcontrollers. I'm hoping this can be a simple starting point for learning about using a realtime operating system.
C
15
star
10

STM32_LiPo_Example

Simple lithium battery-powered STM32 board using an MCP73831 for charging.
14
star
11

OLED_test_boards

Repository with KiCAD projects for two boards which provide SPI communication to a 30-pin 128x64 monochrome SSD1306 display panel, and a 23-pin 96x64 multicolor SSD1331 one.
12
star
12

rv32i_nmigen_blog

Minimal RISC-V RV32I CPU design as described in a companion blog post.
Assembly
11
star
13

STM32_UART_Examples

A few simple example projects demonstrating how to use some core features of STM32 UART peripherals.
C
10
star
14

STM32WB55Cx_minimal

(Currently untested) minimal STM32WB board. These look cool because they have a bluetooth / 802.15.4 radio and an internal switching power supply. Fun!
C
10
star
15

SQLite3_STM32_SDMMC

Repository to test building sqlite3 as a static library for an ARM Cortex-M platform. Nothing functional yet, but I plan to use the 'Gristle' FAT filesystem library with a custom SD/MMC peripheral driver for the STM32L4 line of microcontrollers. Why? Because I want to make a handheld GPS mapping device, and it'd be cool to use spatialite databases.
C
10
star
16

CP2102N_simple

Simple breakout board for a CP2102N USB / UART bridge.
8
star
17

W1209_ADC_Monitor

Example firmware to monitor the ADC and display it to a 3-digit 7-segment display on a W1209 board.
C
8
star
18

STM32_ILI9341_HWSPI

Minimal code example for using the STM32's hardware SPI peripheral to drive an ILI9341 TFT display.
C
8
star
19

STM32_DMA_Examples

Some simple examples demonstrating how to use STM32 DMA peripherals
C
7
star
20

STM32F0_minimal_GPIO

Minimal STM32 project for using GPIO pins - as an example, this uses a button connected to pin B1 to control an LED connected to pin B3.
C
7
star
21

nmigen_getting_started

A few basic designs to demonstrate the syntax for using nMigen's basic features.
Python
6
star
22

STM32F7_ramloaders

A couple of examples demonstrating how to run ephemeral programs in RAM and use Tightly-Coupled Memories on an STM32F723E Discovery Kit.
C
6
star
23

Tetris-PebbleTime

Tetris for the Pebble Time watch.
C
5
star
24

RFM95W_LoRa_test

Minimal STM32 application to demonstrate sending and receiving messages over LoRa using a HopeRF RFM95W radio module.
C
5
star
25

nmigen_ice40_spi_flash

Simple test application to read data out of an iCE40 FPGA board's SPI Flash chip.
Python
5
star
26

STM32F723E_FMC_Examples

A few examples showing how to configure the STM32 external memory controller to communicate with the PSRAM and display on an STM32F723E Discovery Kit.
C
5
star
27

STM32_quickstart

Another 'quickstart' recipe for starting a new STM32-based GCC project. I've tried a few different project layouts for bare-metal C applications targeting Cortex-M microcontrollers, and this repository is an effort to reduce the common pain points that I encounter by minimizing external dependencies and auto-generating tedious compenets like the vector table.
C
5
star
28

STM32F0_SSD1331_softSPI

Example code for drawing to a 96x64-pixel SSD1331 16-bit color OLED display over SPI from an STM32F031 chip, without using the hardware SPI peripheral.
C
4
star
29

STM32x0_timer_example

Example project demonstrating how to set up the core system clock and use it to drive a timer peripheral to blink an LED every second on an STM32F031K6 or STM32L031K6
C
4
star
30

nmigen_rv32i_min

Minimal work-in-progress implementation of a RISC-V CPU using nMigen. It supports the core RV32I instructions, but it is too large and still in-progress.
Assembly
4
star
31

STM32_Epaper29_Example

Example firmware for an STM32F0 or L0 to draw to a 2.9" eink display using its SPI peripheral.
C
3
star
32

STM32_ExternalMemory

Minimal example demonstrating how to map external memories to an STM32's internal memory space using its Quad-SPI and "Flexible Memory Controller" peripherals.
C
3
star
33

STM32G0_HelloWorld

Just an example test program for a pretty new line of STM32 chips.
C
2
star
34

W1209_Example_Firmware

Example firmware for the STM8-based W1209 digital thermostat/relay board.
C
2
star
35

svd2rust_example_stm32l0x1

Example repository demonstrating how to generate a Rust 'peripheral access crate' from an SVD file, and how to use that library to blink an LED.
Rust
2
star
36

HolidayStarLights

Addressable RGB LEDs can be a fun and festive addition to any holiday!
C
2
star
37

STM32G0_TFT_DMA

Example embedded Rust project demonstrating how to use an auto-generated 'Peripheral Access Crate' to drive a small TFT display over SPI using DMA.
Rust
2
star
38

Rust_C_Interop_Templates

Super-simple templates to remind me of the syntax for Rust/C interoperability.
C
2
star
39

STM32_Rust_HAL_Blink

Example repository to blink an LED on an STM32F3 board using the 'cortex-m-quickstart' Rust template and the 'stm32f30x-hal' crate.
Rust
2
star
40

STM32_viz_gen

Simple scripts to partially automate generating visualizations of STM32 peripheral mappings. The scripts are in pretty rough shape though, and they still require some manual steps.
Python
2
star
41

STM32x0_minimal_GPIO

Minimal STM32 project for using GPIO pins - as an example, this uses a button connected to pin B1 to control an LED connected to pin B3. This is a minimal project to demonstrate supporting two different chip architectures - the STM32F031 (Cortex-M0) and STM32L031 (Cortex-M0+).
C
2
star
42

FPM-C_STM32_Example

Adapted example code from the 'FPM-C' fingerprint sensor library for an STM32L4 core. The library does include an example for the cheap-and-cheerful 'blue pill' board, but I'm not sure what it uses as a build system: https://github.com/brianrho/FPM-C
C
2
star
43

STM32x0_DS3231_I2C_Example

An example project for using an STM32F0 or L0 chip to communicate with a DS3231 Real-Time Clock module over I2C. Example code for using an EEPROM chip on the same bus is also included.
C
2
star
44

NiMH_battery_checker

A simple STM8 application to check the charge level of an NiMH battery and light up one of three LEDs.
C
1
star
45

STM32_Rust_PAC_Blink

Example repository to blink an LED on an STM32F3 board using one of Rust's "Peripheral Access Crates". It's a step down from a HAL, similar to a header file full or register structs and bit definitions in C.
Rust
1
star
46

flexible_plywood_generator

Script to generate flexible rectangular areas of plywood.
Python
1
star
47

STM32G0_Rust_DMA

Example of how to use an STM32G0's DMA driven by its DACs in order to generate two audio tones.
Rust
1
star
48

svd2json

Simple Rust project which converts SVD files to JSON using the svd2rust crate.
Rust
1
star
49

MotoMate

An STM32-based GPS receiver handheld board with a small display and microSD card slot: eventually, I'd like to make some simple mapping / logging firmware and a case for mounting it to motorcycle handlebars.
C
1
star
50

STM32_TIM_Neopixels

Simple WS2812B/SK6812 example for a few STM32 chips using a timer peripheral. Either I was very lazy about the timing values, or it's a demonstration of how to use logic analyzers to debug timing protocols. You decide!
C
1
star
51

iCE40_tests

A couple of simple test programs for iCE40 FPGAs.
Verilog
1
star
52

Hello_MSP430

Just a simple 'blink' program for an MSP430G2553 Launchpad.
Makefile
1
star
53

EEGLogger

Program to log EEG data and recognize SSVEP signals. Created by the Washington University in St. Louis Brain Computing Interface club - we decided it wouldn't hurt to open source it.
C++
1
star
54

STEAMGalV2_Tetris

'Tetris' firmware for a "STEAMGal" STM32 board - it's based off of the "Arduboy" credit card-sized educational platform, but it uses an ARM Cortex-M core and a full-color OLED display
C
1
star
55

STM32F0_quickstart

A dummy project for quickly starting a new C/assembly program. Includes basic GPIO setup and a hardware interrupt.
C
1
star
56

MSP430_PWM

A couple of basic PWM examples for the MSP430 using GCC.
C
1
star
57

STM32G031Kx_bb

Simple open-source breakout board for a 32-pin STM32G031 microcontroller. Designed to be easy to hand-solder, with wide footprints and no parts smaller than 0805. Feedback is welcome!
1
star
58

STM32F0_SSD1306

Simple SSD1306 monochrome OLED screen driver for the STM32F0 line of chips. (Currently only 128x64-px screens on an F030F4 or F031F6). Huge thanks to Adafruit, '4ilo', and 'thaletterb', and countless users of various forums; Adafruit's library is way better. But this might be an okay reference for using peripherals in Thumb assembly.
C
1
star
59

visual_mcu_ide

I dunno, programming is such a chore sometimes. Finite State Machines are ostensibly an alternate view of a compiled program, so let's try a more visual method for programming microchips.
C
1
star