Fix core 2.5.x ISR not in IRAM exception (#5837)

Fix core 2.5.x ISR not in IRAM exception (#5837)
This commit is contained in:
Theo Arends 2019-05-22 10:39:37 +02:00
parent 763118b626
commit 15098dae68
6 changed files with 19 additions and 2 deletions

View File

@ -3,6 +3,7 @@
* Add LED GPIO option "LedLink" (157) and "LedLinki" (158) to select dedicated link status LED (#5709)
* Add support for up to four LEDs related to four power outputs. Enabled when "LedLink(i)" is configured too (#5709)
* Add extended LED power control using command LedPowerX where X is 1 to 4. Enabled when "LedLink(i)" is configured too (#5709)
* Fix core 2.5.x ISR not in IRAM exception (#5837)
*
* 6.5.0.11 20190517
* Add command SetOption64 0/1 to switch between "-" or "_" as sensor index separator impacting DS18X20, DHT, BMP and SHT3X sensor names (#5689)

View File

@ -61,6 +61,10 @@ void update_position(void)
rotary_state = (s >> 2);
}
#ifndef ARDUINO_ESP8266_RELEASE_2_3_0 // Fix core 2.5.x ISR not in IRAM Exception
void update_rotary(void) ICACHE_RAM_ATTR; // As iram is tight and it works this way too
#endif // ARDUINO_ESP8266_RELEASE_2_3_0
void update_rotary(void)
{
if (MI_DESK_LAMP == my_module_type){

View File

@ -1005,7 +1005,7 @@ unsigned int arilux_rf_repeat_count = 0;
uint8_t arilux_rf_toggle = 0;
#ifndef ARDUINO_ESP8266_RELEASE_2_3_0
#ifndef ARDUINO_ESP8266_RELEASE_2_3_0 // Fix core 2.5.x ISR not in IRAM Exception
#ifndef USE_WS2812_DMA // Collides with Neopixelbus but solves RF misses
void AriluxRfInterrupt(void) ICACHE_RAM_ATTR; // As iram is tight and it works this way too
#endif // USE_WS2812_DMA

View File

@ -68,6 +68,7 @@ uint8_t hlw_model_type = 0;
uint8_t hlw_load_off = 1;
uint8_t hlw_cf1_timer = 0;
// Fix core 2.5.x ISR not in IRAM Exception
#ifndef USE_WS2812_DMA // Collides with Neopixelbus but solves exception
void HlwCfInterrupt(void) ICACHE_RAM_ATTR;
void HlwCf1Interrupt(void) ICACHE_RAM_ATTR;

View File

@ -40,6 +40,13 @@ void CounterUpdate(uint8_t index)
}
}
#ifndef ARDUINO_ESP8266_RELEASE_2_3_0 // Fix core 2.5.x ISR not in IRAM Exception
void CounterUpdate1(void) ICACHE_RAM_ATTR; // As iram is tight and it works this way too
void CounterUpdate2(void) ICACHE_RAM_ATTR; // As iram is tight and it works this way too
void CounterUpdate3(void) ICACHE_RAM_ATTR; // As iram is tight and it works this way too
void CounterUpdate4(void) ICACHE_RAM_ATTR; // As iram is tight and it works this way too
#endif // ARDUINO_ESP8266_RELEASE_2_3_0
void CounterUpdate1(void)
{
CounterUpdate(1);

View File

@ -80,6 +80,10 @@ uint8_t tx20_wind_direction = 0;
bool tx20_available = false;
#ifndef ARDUINO_ESP8266_RELEASE_2_3_0 // Fix core 2.5.x ISR not in IRAM Exception
void Tx20StartRead(void) ICACHE_RAM_ATTR; // As iram is tight and it works this way too
#endif // ARDUINO_ESP8266_RELEASE_2_3_0
void Tx20StartRead(void)
{
/* La Crosse TX20 Anemometer datagram every 2 seconds