AceRoutine  0.2
A low-memory, fast-switching, cooperative multitasking library using stackless coroutines on Arduino platforms.
Macros
Flash.h File Reference

Various macros to smooth over the differences among the various platforms with regards to their support for flash strings and the various macros used to create and access them. More...

This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Macros

#define ACE_ROUTINE_FPSTR(pstr_pointer)   (reinterpret_cast<const __FlashStringHelper *>(pstr_pointer))
 The FPSTR() macro is defined on ESP8266, not defined on Teensy and AVR, and broken on ESP32. More...
 

Detailed Description

Various macros to smooth over the differences among the various platforms with regards to their support for flash strings and the various macros used to create and access them.

Copied from AUnit/src/aunit/Flash.h, see that file for more info.

In summary, we support flash strings for AVR because those MCUs have very small static RAM (1-2kB), but we disable flash strings for Teensy, ESP8266, and ESP32 because those implementations tend to be buggy or tricky, and they have far more static RAM.

Definition in file Flash.h.

Macro Definition Documentation

◆ ACE_ROUTINE_FPSTR

#define ACE_ROUTINE_FPSTR (   pstr_pointer)    (reinterpret_cast<const __FlashStringHelper *>(pstr_pointer))

The FPSTR() macro is defined on ESP8266, not defined on Teensy and AVR, and broken on ESP32.

We define our own version to make this work on all 4 platforms. We might be able to use just FPSTR() if https://github.com/espressif/arduino-esp32/issues/1371 is fixed.

Definition at line 51 of file Flash.h.