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 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 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) * 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 * 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) * 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); 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) void update_rotary(void)
{ {
if (MI_DESK_LAMP == my_module_type){ if (MI_DESK_LAMP == my_module_type){

View File

@ -1005,8 +1005,8 @@ unsigned int arilux_rf_repeat_count = 0;
uint8_t arilux_rf_toggle = 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 #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 void AriluxRfInterrupt(void) ICACHE_RAM_ATTR; // As iram is tight and it works this way too
#endif // USE_WS2812_DMA #endif // USE_WS2812_DMA
#endif // ARDUINO_ESP8266_RELEASE_2_3_0 #endif // ARDUINO_ESP8266_RELEASE_2_3_0

View File

@ -68,6 +68,7 @@ uint8_t hlw_model_type = 0;
uint8_t hlw_load_off = 1; uint8_t hlw_load_off = 1;
uint8_t hlw_cf1_timer = 0; 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 #ifndef USE_WS2812_DMA // Collides with Neopixelbus but solves exception
void HlwCfInterrupt(void) ICACHE_RAM_ATTR; void HlwCfInterrupt(void) ICACHE_RAM_ATTR;
void HlwCf1Interrupt(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) void CounterUpdate1(void)
{ {
CounterUpdate(1); CounterUpdate(1);

View File

@ -80,6 +80,10 @@ uint8_t tx20_wind_direction = 0;
bool tx20_available = false; 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) void Tx20StartRead(void)
{ {
/* La Crosse TX20 Anemometer datagram every 2 seconds /* La Crosse TX20 Anemometer datagram every 2 seconds