JeeH - v1.30¶
There are many different frameworks for microcontrollers: Arduino, CMSIS, Espressif, MBed, STM32Cube, Zephyr, etc. Some cover a single vendor’s platform, others have support for a wide range of µC architectures.
JeeH is a runtime library written to be used alongside a main framework. The main focus is to support all the STM32 µC families, with very limited trial builds for AVRs, ESPs, and Teensy’s.
JeeH is written in modern C++ (C++11 and later), and uses templates
(sparingly) to generate very compact and efficient code. Here is a
minimal example for a Blue Pill (STM32F103):
#include <jee.h>
PinC<13> led;
int main () {
enableSysTick();
led.mode(Pinmode::out);
while (true) {
led = !led;
wait_ms(250);
}
}
This example compiles to less than 1200 bytes of flash and uses 150 bytes of
RAM. Adding a serial port and calling printf
will increase that by about 1
kB. There is virtually no overhead, as the C++ compiler is able to optimise the
heck out of all this.
JeeH is made for PlatformIO, and can be used by adding lib_deps = JeeH
to a
project’s platformio.ini
file - this wil automatically fetch it from GitHub.
Note
As of 2021, JeeH is work-in-progress. Features get added as I need them. It’s used in a lot of the more recent JeeLabs projects. There is no documentation other than the source code.
For more details, see https://registry.platformio.org/libraries/jcw/JeeH.