Exploring the concept of Zero Overhead C++ in Microcontrollers.
This repository has been archived on 2025-09-06. You can view files and clone it, but you cannot make any changes to its state, such as pushing and creating new issues, pull requests or comments.
Find a file
2020-06-27 16:16:52 +02:00
app moved examples to an examples folder 2020-06-27 16:16:52 +02:00
bin refactored tasks 2020-06-21 20:35:34 +02:00
cmake Made code c++20 conform 2020-06-19 22:17:44 +02:00
examples moved examples to an examples folder 2020-06-27 16:16:52 +02:00
lib documented tasks 2020-06-21 20:56:09 +02:00
.clang-format Added clang-format 2020-05-29 20:23:53 +02:00
.gitignore added initial zol::chrono support 2020-06-11 23:49:07 +02:00
CMakeLists.txt moved examples to an examples folder 2020-06-27 16:16:52 +02:00
LICENSE Initial commit 2020-04-25 18:35:59 +02:00
README.md Updated version of vr-gcc in README.md 2020-06-20 13:48:28 +02:00

ZeroOverheadCPP

Exploring the concept of Zero Overhead C++ in Microcontrollers.

Setup

Folder Structure

  • app: The program files implementing some kind of blink program
  • bin: The resulting binary files. I only commit the .lss files, not the .elf nor the .hex nor the .map files.
  • build: See Building
  • lib: The zero overhead library

Basic Concept of ZOL

The basic concept is that the compiler produces the same Assembler Code for the C and the C++ program.

Building

Please execute the following commands:

mkdir build
cd build
cmake ..
cmake --build .

You'll find the compiled output files in the bin folder.

Goals

Provide similar functionality to the Arduino Libraries. Have a nice API. Be as fast as C.

ToDos:

Basically, the headings from the Arduino Reference.

  • Digital I/O
  • Analog I/O
  • Time
  • Math
  • Trigonometry
  • Random
  • Communication