You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Random but consistent crash when processing DMX messages when not connected to WIFI.
When there are no incoming DMX messages then no crash occurs and the ESP continues to attempt to connect in the background.
Similarly, if WIFI is connected and DMX messages do or do not arrive then no crash occurs.
Likewise if WIFI is connected and DMX message are being received, and then WIFI disconnects then the crash does occur.
I've tried multiple hardware (various ESP boards) along with different incoming DMX message framerates, I can get this to occur in as low as 2 fps. Although it occurs more frequently at high frame rates - I suspect this is a function of the ISR being called.
Steps to reproduce:
Using esp_dmx v1.1.3
Configure WIFI to connect to an AP (i.e. ESP has credentials stored)
I've seen discussion on the intewebs regarding Cache disabled but cached memory region accessed exceptions with the proposed fix as marking ISR functions with IRAM_ATTR. I see that the ISR functions are indeed annotated and that the function called out in the exception below is an inline function which should also inherit this.
Exception - Example 1
Decoded
ESP exception decoder points to dmx_hal_write_txinfo function, however I have also seen the exception point to dmx_hal_get_rxfifo_len too. The above decodes as follows:
PC: 0x400d9836: dmx_hal_write_txfifo at /Users/cc/Documents/Arduino/libraries/esp_dmx-1.1.3/src/dmx/hal.h line 369
EXCVADDR: 0x00000000
Decoding stack results
0x400d9833: dmx_hal_write_txfifo at /Users/cc/Documents/Arduino/libraries/esp_dmx-1.1.3/src/dmx/hal.h line 367
This exception occured after reboot, pointing to a slightly different part of the code but similar in that it occures in the HAL code.
PC: 0x4014ffe4: dmx_hal_get_rxfifo_len at /Users/cc/Documents/Arduino/libraries/esp_dmx-1.1.3/src/dmx/hal.h line 64
EXCVADDR: 0x00000000
Decoding stack results
0x4014ffe1: WiFiUDP::remotePort() at /Users/cc/Library/Arduino15/packages/esp32/hardware/esp32/2.0.2/libraries/WiFi/src/WiFiUdp.cpp line 280
PC: 0x4015004c: dmx_hal_get_rxfifo_len at /Users/cc/Documents/Arduino/libraries/esp_dmx-1.1.3/src/dmx/hal.h line 74
EXCVADDR: 0x00000000
Decoding stack results
0x40150049: dmx_hal_get_rxfifo_len at /Users/cc/Documents/Arduino/libraries/esp_dmx-1.1.3/src/dmx/hal.h line 74
Issue
Random but consistent crash when processing DMX messages when not connected to WIFI.
When there are no incoming DMX messages then no crash occurs and the ESP continues to attempt to connect in the background.
Similarly, if WIFI is connected and DMX messages do or do not arrive then no crash occurs.
Likewise if WIFI is connected and DMX message are being received, and then WIFI disconnects then the crash does occur.
I've tried multiple hardware (various ESP boards) along with different incoming DMX message framerates, I can get this to occur in as low as 2 fps. Although it occurs more frequently at high frame rates - I suspect this is a function of the ISR being called.
Steps to reproduce:
Example code
As of writing the current master is the same as this tagged release (which replicates the issue) https://github.com/chaosloth/Connotron_DMX_Gateway/releases/tag/v0.0.2-beta
Notes
I've seen discussion on the intewebs regarding Cache disabled but cached memory region accessed exceptions with the proposed fix as marking ISR functions with IRAM_ATTR. I see that the ISR functions are indeed annotated and that the function called out in the exception below is an inline function which should also inherit this.
Exception - Example 1
Decoded
ESP exception decoder points to
dmx_hal_write_txinfo
function, however I have also seen the exception point todmx_hal_get_rxfifo_len
too. The above decodes as follows:Dump
Exception - Example 2
Decoded
This exception occured after reboot, pointing to a slightly different part of the code but similar in that it occures in the HAL code.
Dump
Exception - Example 3
Decoded
Dump
The text was updated successfully, but these errors were encountered: