arm-cmake-toolchains - CMake toolchain configurations for ARM

  •        13

This repo contains CMake toolchain files that utilizes ARM GCC. One of them arm-gcc-toolchain.cmake uses arm-none-eabi-gcc suite to build CMake project. To use it the toolchain must be added to the system PATH variable.



Related Projects

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.

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.

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.

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.

cmake-examples - Useful CMake Examples

  •    CMake

CMake is a cross-platform open-source meta-build system which can build, test and package software. It can be used to support multiple native build environments including make, Apple’s xcode and Microsoft Visual Studio. This repository includes some example modern CMake configurations which I have picked up when exploring it’s usage for various projects. The examples are laid out in a tutorial like format. The first examples are very basic and slowly increase in complexity drawing on previous examples to show more complex use cases.

awesome-cmake - A curated list of awesome CMake resources, scripts, modules, examples and others.


Your contributions are highly welcome (first see These provide a wide range of functionality - from dealing with compiler flags to using tools. Some also contain modules.

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.

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.

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.

arm-eabi-toolchain - Makefile & supporting patches/scripts to build a bare metal ARM EABI toolchain.

  •    Makefile

This toolchain builder builds a GCC and Newlib-based ARM EABI toolchain using the Sourcery CodeBench Lite sources. This Makefile was originally created to allow building a validated GCC release on Mac OS X, as CodeBench Lite / G++ Lite were only provided for Windows and Linux, but this build also includes some optimizations for Newlib that provide smaller binaries. NOTE: Mentor have indicated that there won't be future ARM EABI releases of the free Lite edition of CodeBench, so the 2014.05 release may be the last. You may also be able to use a modified version of this makefile with the sources Mentor provides with the Professional version of CodeBench (which they plan to continue supporting). If future source releases are made available, this Makefile will be updated for them. If not, we may start to build custom versions of other GCC/Newlib toolchain sources.


  •    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.

.NET Micro Framework for STM32F4 with GCC support


The project adds GCC compiler support to .NET Micro Framework code for the STM32F4 family of ARM Cortex-based MCUs originally created by Oberon microsystems.

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.

Celero - C++ Benchmark Authoring Library/Framework

  •    C++

Developing consistent and meaningful benchmark results for code is a complex task. Measurement tools exist (Intel® VTune™ Amplifier, SmartBear AQTime, Valgrind, etc.) external to applications, but they are sometimes expensive for small teams or cumbersome to utilize. This project, Celero, aims to be a small library which can be added to a C++ project and perform benchmarks on code in a way which is easy to reproduce, share, and compare among individual runs, developers, or projects. Celero uses a framework similar to that of GoogleTest to make its API easier to use and integrate into a project. Make automated benchmarking as much a part of your development process as automated testing. Celero uses CMake to provide cross-platform builds. It does require a modern compiler (Visual C++ 2012+, GCC 4.7+, Clang 2.9+) due to its use of C++11.


  •    Shell

This project is not under active development any more. Consider using instead! A very simple build script for bare metal arm toolchain. NO LINUX!

arm-tutorial-rpi - Raspberry-Pi Bare Metal Tutorial

  •    C

You can build on linux, windows, or MAC - all you need is the arm-none-eabi toolchain. For all platforms, you can get the required toolchain used in this tutorial from the GCC-ARM-embedded project - Most OS distributions now have at least the 4.8 toolchain, however the following will fix problems with using the 4.9 toolchain.

GNU ARM Eclipse Plug-in

  •    Java

This plug-in is an Eclipse CDT Manged Build Extension for GNU ARM Toolchains like CodeSourcery G++ Lite, GNUARM, WinARM, Yagarto, devkitPro, Summon.