AceRoutine
0.3
A low-memory, fast-switching, cooperative multitasking library using stackless coroutines on Arduino platforms.
|
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...
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... | |
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.
#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.