Skip to content

Commit f08470c

Browse files
committed
Fix ICACHE_RAM_ATTR to IRAM_ATTR for latest master
1 parent d955460 commit f08470c

File tree

2 files changed

+15
-15
lines changed

2 files changed

+15
-15
lines changed

cores/esp8266/core_esp8266_si2c.cpp

Lines changed: 14 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -99,16 +99,16 @@ class TwiMasterOrSlave : public TwiMaster
9999
ETSTimer timer;
100100

101101
// Event/IRQ callbacks, so they can't use "this" and need to be static
102-
static void ICACHE_RAM_ATTR onSclChange(void);
103-
static void ICACHE_RAM_ATTR onSdaChange(void);
102+
static void IRAM_ATTR onSclChange(void);
103+
static void IRAM_ATTR onSdaChange(void);
104104
static void eventTask(ETSEvent *e);
105-
static void ICACHE_RAM_ATTR onTimer(void *unused);
105+
static void IRAM_ATTR onTimer(void *unused);
106106

107107
// Allow not linking in the slave code if there is no call to enableSlave
108108
bool _slaveEnabled = false;
109109

110110
// Internal use functions
111-
void ICACHE_RAM_ATTR onTwipEvent(uint8_t status);
111+
void IRAM_ATTR onTwipEvent(uint8_t status);
112112

113113
public:
114114
// custom version
@@ -118,8 +118,8 @@ class TwiMasterOrSlave : public TwiMaster
118118
uint8_t transmit(const uint8_t* data, uint8_t length);
119119
void attachSlaveRxEvent(void (*function)(uint8_t*, size_t, void*));
120120
void attachSlaveTxEvent(void (*function)(void*));
121-
void ICACHE_RAM_ATTR reply(uint8_t ack);
122-
void ICACHE_RAM_ATTR releaseBus(void);
121+
void IRAM_ATTR reply(uint8_t ack);
122+
void IRAM_ATTR releaseBus(void);
123123
void enableSlave(void* targetObject);
124124
};
125125

@@ -223,7 +223,7 @@ void TwiMasterOrSlave::enableSlave(void* targetObject)
223223
}
224224
}
225225

226-
void ICACHE_RAM_ATTR TwiMaster::busywait(unsigned int v)
226+
void IRAM_ATTR TwiMaster::busywait(unsigned int v)
227227
{
228228
unsigned int i;
229229
for (i = 0; i < v; i++) // loop time is 5 machine cycles: 31.25ns @ 160MHz, 62.5ns @ 80MHz
@@ -466,9 +466,9 @@ void TwiMasterOrSlave::attachSlaveTxEvent(void (*function)(void*))
466466
}
467467

468468
// DO NOT INLINE, inlining reply() in combination with compiler optimizations causes function breakup into
469-
// parts and the ICACHE_RAM_ATTR isn't propagated correctly to all parts, which of course causes crashes.
469+
// parts and the IRAM_ATTR isn't propagated correctly to all parts, which of course causes crashes.
470470
// TODO: test with gcc 9.x and if it still fails, disable optimization with -fdisable-ipa-fnsplit
471-
void ICACHE_RAM_ATTR TwiMasterOrSlave::reply(uint8_t ack)
471+
void IRAM_ATTR TwiMasterOrSlave::reply(uint8_t ack)
472472
{
473473
// transmit master read ready signal, with or without ack
474474
if (ack)
@@ -486,7 +486,7 @@ void ICACHE_RAM_ATTR TwiMasterOrSlave::reply(uint8_t ack)
486486
}
487487

488488

489-
void ICACHE_RAM_ATTR TwiMasterOrSlave::releaseBus(void)
489+
void IRAM_ATTR TwiMasterOrSlave::releaseBus(void)
490490
{
491491
// release bus
492492
//TWCR = _BV(TWEN) | _BV(TWIE) | _BV(TWEA) | _BV(TWINT);
@@ -499,7 +499,7 @@ void ICACHE_RAM_ATTR TwiMasterOrSlave::releaseBus(void)
499499
}
500500

501501

502-
void ICACHE_RAM_ATTR TwiMasterOrSlave::onTwipEvent(uint8_t status)
502+
void IRAM_ATTR TwiMasterOrSlave::onTwipEvent(uint8_t status)
503503
{
504504
twip_status = status;
505505
switch (status)
@@ -606,7 +606,7 @@ void ICACHE_RAM_ATTR TwiMasterOrSlave::onTwipEvent(uint8_t status)
606606
}
607607
}
608608

609-
void ICACHE_RAM_ATTR TwiMasterOrSlave::onTimer(void *unused)
609+
void IRAM_ATTR TwiMasterOrSlave::onTimer(void *unused)
610610
{
611611
(void)unused;
612612
twi.releaseBus();
@@ -656,7 +656,7 @@ void TwiMasterOrSlave::eventTask(ETSEvent *e)
656656
// Shorthand for if the state is any of the or'd bitmask x
657657
#define IFSTATE(x) if (twip_state_mask & (x))
658658

659-
void ICACHE_RAM_ATTR TwiMasterOrSlave::onSclChange(void)
659+
void IRAM_ATTR TwiMasterOrSlave::onSclChange(void)
660660
{
661661
unsigned int sda;
662662
unsigned int scl;
@@ -854,7 +854,7 @@ void ICACHE_RAM_ATTR TwiMasterOrSlave::onSclChange(void)
854854
}
855855
}
856856

857-
void ICACHE_RAM_ATTR TwiMasterOrSlave::onSdaChange(void)
857+
void IRAM_ATTR TwiMasterOrSlave::onSdaChange(void)
858858
{
859859
unsigned int sda;
860860
unsigned int scl;

cores/esp8266/twi.h

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -93,7 +93,7 @@ class TwiMaster
9393
uint32_t twi_clockStretchLimit = 0;
9494

9595
// Internal use functions
96-
void ICACHE_RAM_ATTR busywait(unsigned int v);
96+
void IRAM_ATTR busywait(unsigned int v);
9797
bool write_start(void);
9898
bool write_stop(void);
9999
bool write_bit(bool bit);

0 commit comments

Comments
 (0)