stm32f30x - Peripheral access API for STM32F30X microcontrollers (generated using svd2rust)

  •        52

at your option. Unless you explicitly state otherwise, any contribution intentionally submitted for inclusion in the work by you, as defined in the Apache-2.0 license, shall be dual licensed as above, without any additional terms or conditions.



Related Projects

libopencm3 - Open Source ARM cortex m microcontroller library

  •    C

The libopencm3 project aims to create an open-source firmware library for various ARM Cortex-M microcontrollers. The library is written completely from scratch based on the vendor datasheets, programming manuals, and application notes. The code is meant to be used with a GCC toolchain for ARM (arm-elf or arm-none-eabi), flashing of the code to a microcontroller can be done using the OpenOCD ARM JTAG software.

tock - A secure embedded operating system for Cortex-M based microcontrollers

  •    Rust

Tock is an embedded operating system designed for running multiple concurrent, mutually distrustful applications on Cortex-M based embedded platforms. Tock's design centers around protection, both from potentially malicious applications and from device drivers. Tock uses two mechanisms to protect different components of the operating system. First, the kernel and device drivers are written in Rust, a systems programming language that provides compile-time memory safety, type safety and strict aliasing. Tock uses Rust to protect the kernel (e.g. the scheduler and hardware abstraction layer) from platform specific device drivers as well as isolate device drivers from each other. Second, Tock uses memory protection units to isolate applications from each other and the kernel. Tock is documented in the doc folder. Read through the guides there to learn about the overview and design of Tock, its implementation, and much more.

copper - [WIP] Your guide to programming ARM Cortex-M microcontrollers with Rust

  •    Rust

This document is currently OUTDATED, and I don't have to update in the short term. In the meantime, you can check out this blog post which covers the easy, high level way of writing Rust application for any ARM Cortex-M microcontroller. at your option.

libmaple - C and C++ library for STM32 ARM Cortex-M3 development boards.

  •    C

C and C++ library for STM32 ARM Cortex-M3 development boards.

libmaple - [INACTIVE] C and C++ library for STM32 ARM Cortex-M3 development boards.

  •    C

[INACTIVE] C and C++ library for STM32 ARM Cortex-M3 development boards.

rt-thread - RT-Thread is an open source IoT operating system from China.

  •    C

RT-Thread is an open source IoT operating system from China, which has strong scalability: from a tiny kernel running on a tiny core, for example ARM Cortex-M0, or Cortex-M3/4/7, to a rich feature system running on MIPS32, ARM Cortex-A8, ARM Cortex-A9 DualCore etc. The device driver is more like a driver framework, UART, IIC, SPI, SDIO, USB device/host, EMAC, MTD NAND etc. The developer can easily add low level driver and board configuration, then combined with the upper framework, he/she can use lots of features.

mbed-os - Arm Mbed OS is a platform operating system designed for the internet of things

  •    C

Arm Mbed OS is an open source embedded operating system designed specifically for the "things" in the Internet of Things. It includes all the features you need to develop a connected product based on an Arm Cortex-M microcontroller, including security, connectivity, an RTOS and drivers for sensors and I/O devices. The release notes detail the current release. You can also find information about previous versions.

stm32-cmake - CMake for stm32 developing.

  •    C

This project is used to develop applications for the STM32 - ST's ARM Cortex-Mx MCUs. It uses cmake and GCC, along with newlib (libc), STM32CubeMX or ChibiOS. First of all you need to configure toolchain and libraries, you can do this by editing gcc_stm32.cmake or, preferably, by passing it through the command line.

e200_opensource - The Ultra-Low Power RISC Core

  •    Verilog

This repository hosts the project for open-source hummingbird E200 RISC processor Core. The Hummingbird E200 core is a two-stages pipeline based ultra-low power/area implementation, which has both performance and areas benchmark better than ARM Cortex-M0+ core, makes the Hummingbird E200 as a perfect replacement for legacy 8051 core or ARM Cortex-M cores in the IoT or other ultra-low power applications.

mbed - Tool for Rapid Prototyping with Microcontrollers

  •    C

The mbed Software Development Kit (SDK) is a C/C++ microcontroller software to write code for ARM microcontrollers. It provides enough hardware abstraction to be intuitive and concise, but powerful enough to build complex projects. It includes all the base level startup code, C runtime and library pre-integrated and tested for the target microcontrollers, and high-level MCU peripheral APIs that allow you to drive the peripherals of the microcontrollers without going near a datasheet.

FreeRTOS Real Time Kernel (RTOS)

  •    C

Market leading real time kernel for 32 microcontroller architectures


  •    C

A free/libre/open-source firmware library (previously known as libopenstm32) for various ARM Cortex-M3 microcontrollers, including ST STM32, Toshiba TX03, Atmel SAM3U, NXP LPC1000 and others. Sourcecode and bugtracker can be found at

Armpit Scheme

  •    Assembly

A scheme (lisp) interpreter written in ARM assembly language (ARM7TDMI, ARM920T, Cortex-M3) for education, robotics, wearable devices. Tested on NXP LPC-1300,1700,2000, ATMEL AT91SAM7, STM STR711, STR911, STM32, CIRRUS EP9302, LMI LM3S1968, TI OMAP.


  •    C

pico]OS is a highly configurable and very fast real time operating system (RTOS). It targets a wide range of architectures, from very small 8 bit processors and microcontrollers up to very huge platforms. Ports are available for ARM, AVR, PPC, MSP430, 6502, MYCPU and for developing and testing purpose also for 8086, Win32 and Unix. pico]OS 1.0.4 was released 2012-07-12. This is a maintenance release that includes some bug fixes for the new ports for MSP430 and ARM Cortex-M. You may also vi

ML-KWS-for-MCU - Keyword spotting on Arm Cortex-M Microcontrollers

  •    C

This repository consists of the tensorflow models and training scripts used in the paper: Hello Edge: Keyword spotting on Microcontrollers. The scripts are adapted from Tensorflow examples and some are repeated here for the sake of making these scripts self-contained. The command line argument --model_size_info is used to pass the neural network layer dimensions such as number of layers, convolution filter size/stride as a list to, which builds the tensorflow graph based on the provided model architecture and layer dimensions. For more info on model_size_info for each network architecture see The training commands with all the hyperparameters to reproduce the models shown in the paper are given here.

xargo - The sysroot manager that lets you build and customize `std`

  •    Rust

Xargo builds and manages "sysroots" (cf. rustc --print sysroot). Making it easy to cross compile Rust crates for targets that don't have binary releases of the standard crates, like the thumbv*m-none-eabi* targets. And it also lets you build a customized std crate, e.g. compiled with -C panic=abort, for your target. The rust-src component, which you can install with rustup component add rust-src.

Black Magic Debug Probe

  •    C

An in-application debug probe for ARM Cortex-M microcontrollers. Source code and bug tracker can be found at

libopencm3-examples - Simple example projects showing how to use libopencm3.

  •    Makefile

This repository contains assorted example projects for libopencm3. The libopencm3 project aims to create an open-source firmware library for various ARM Cortex-M microcontrollers.

QP Active Object (Actor) Frameworks

  •    C

Event-driven, RTOS-like, active object frameworks for microcontrollers