Skip to content

Commit 6a86277

Browse files
Unify ESP32/ESP8266 use of IRAM_ATTR (#202)
Replace ICACHE_RAM_ATTR with IRAM_ATTR in the few places it was still present, to unify the ESP32 and ESP8266 codepaths. ESP8266 core is deprecating the ICACHE_RAM_ATTR define in 3.0.0: esp8266/Arduino#7921
1 parent 3b5a878 commit 6a86277

File tree

3 files changed

+5
-7
lines changed

3 files changed

+5
-7
lines changed

src/SoftwareSerial.cpp

+5-5
Original file line numberDiff line numberDiff line change
@@ -245,7 +245,7 @@ int SoftwareSerial::available() {
245245
return avail;
246246
}
247247

248-
void ICACHE_RAM_ATTR SoftwareSerial::preciseDelay(bool sync) {
248+
void IRAM_ATTR SoftwareSerial::preciseDelay(bool sync) {
249249
if (!sync)
250250
{
251251
// Reenable interrupts while delaying to avoid other tasks piling up
@@ -276,7 +276,7 @@ void ICACHE_RAM_ATTR SoftwareSerial::preciseDelay(bool sync) {
276276
m_periodStart = ESP.getCycleCount();
277277
}
278278

279-
void ICACHE_RAM_ATTR SoftwareSerial::writePeriod(
279+
void IRAM_ATTR SoftwareSerial::writePeriod(
280280
uint32_t dutyCycle, uint32_t offCycle, bool withStopBit) {
281281
preciseDelay(true);
282282
if (dutyCycle)
@@ -305,7 +305,7 @@ size_t SoftwareSerial::write(const uint8_t* buffer, size_t size) {
305305
return write(buffer, size, m_parityMode);
306306
}
307307

308-
size_t ICACHE_RAM_ATTR SoftwareSerial::write(const uint8_t* buffer, size_t size, SoftwareSerialParity parity) {
308+
size_t IRAM_ATTR SoftwareSerial::write(const uint8_t* buffer, size_t size, SoftwareSerialParity parity) {
309309
if (m_rxValid) { rxBits(); }
310310
if (!m_txValid) { return -1; }
311311

@@ -525,7 +525,7 @@ void SoftwareSerial::rxBits(const uint32_t& isrCycle) {
525525
}
526526
}
527527

528-
void ICACHE_RAM_ATTR SoftwareSerial::rxBitISR(SoftwareSerial* self) {
528+
void IRAM_ATTR SoftwareSerial::rxBitISR(SoftwareSerial* self) {
529529
uint32_t curCycle = ESP.getCycleCount();
530530
bool level = digitalRead(self->m_rxPin);
531531

@@ -534,7 +534,7 @@ void ICACHE_RAM_ATTR SoftwareSerial::rxBitISR(SoftwareSerial* self) {
534534
if (!self->m_isrBuffer->push((curCycle | 1U) ^ !level)) self->m_isrOverflow.store(true);
535535
}
536536

537-
void ICACHE_RAM_ATTR SoftwareSerial::rxBitSyncISR(SoftwareSerial* self) {
537+
void IRAM_ATTR SoftwareSerial::rxBitSyncISR(SoftwareSerial* self) {
538538
uint32_t start = ESP.getCycleCount();
539539
uint32_t wait = self->m_bitCycles - 172U;
540540

src/circular_queue/Delegate.h

-1
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,6 @@ Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
2525
#elif defined(ESP32)
2626
#include <esp_attr.h>
2727
#else
28-
#define ICACHE_RAM_ATTR
2928
#define IRAM_ATTR
3029
#endif
3130

src/circular_queue/circular_queue.h

-1
Original file line numberDiff line numberDiff line change
@@ -35,7 +35,6 @@ using std::min;
3535
#endif
3636

3737
#if !defined(ESP32) && !defined(ESP8266)
38-
#define ICACHE_RAM_ATTR
3938
#define IRAM_ATTR
4039
#endif
4140

0 commit comments

Comments
 (0)