Exception (29): epc1=0x4000e1c3 excvaddr=0x00000018

Posts: 1
Joined: Sat Oct 21, 2017 3:45 am

Exception (29): epc1=0x4000e1c3 excvaddr=0x00000018

Postby Ron » Sat Oct 21, 2017 4:06 am

Arduino 1.8.5, esp8266 2.3.0:
I have seen this many times when using different WebServer code. Simple stuff. Example from the net ....
Stack trace says:
Exception 29: StoreProhibited: A store referenced a page mapped with an attribute that does not permit stores
Decoding 20 results
0x401024b4: trc_NeedRTS at ?? line ?
0x4020de89: ieee80211_alloc_proberesp at ?? line ?
0x4020ddc6: ieee80211_alloc_proberesp at ?? line ?
0x4020df24: ieee80211_send_proberesp at ?? line ?
0x401004f4: calloc at C:\Users\Ron\AppData\Local\Arduino15\packages\esp8266\hardware\esp8266\2.3.0\cores\esp8266\umm_malloc/umm_malloc.c line 1684
0x4020ac6f: hostap_input at ?? line ?
0x4020ab41: hostap_input at ?? line ?
0x4020322d: loop_task at C:\Users\Ron\AppData\Local\Arduino15\packages\esp8266\hardware\esp8266\2.3.0\cores\esp8266/core_esp8266_main.cpp line 56
0x40106fb4: pvPortMalloc at C:\Users\Ron\AppData\Local\Arduino15\packages\esp8266\hardware\esp8266\2.3.0\cores\esp8266/heap.c line 13
0x40220000: dhcp_select at /Users/igrokhotkov/espressif/arduino/tools/sdk/lwip/src/core/dhcp.c line 290
0x402120e9: cnx_node_search at ?? line ?
0x4022565d: ip_input at /Users/igrokhotkov/espressif/arduino/tools/sdk/lwip/src/core/ipv4/ip.c line 559
0x4020a3d9: hostap_input at ?? line ?
0x4020544e: pp_tx_idle_timeout at ?? line ?
0x40204d93: ppPeocessRxPktHdr at ?? line ?
0x40203247: loop_task at C:\Users\Ron\AppData\Local\Arduino15\packages\esp8266\hardware\esp8266\2.3.0\cores\esp8266/core_esp8266_main.cpp line 56

NOTE ==== call to calloc and NULL pointer reference (excvaddr=0x00000018)

So I wrote a Windows batch file to just loop calling curl to retrieve a single simple web page from my ESP8266 NODEMCU and ... after 240 or so successful loops problems; no page returned or CRASH!!!

calloc() seems to be returning NULL, ieee80211_alloc_proberesp() is not checking or gets mixed up.

umm_malloc: probably has trashed the heap into small chunks over the 200+ previous packets and cannot allocate memory or there is a memory leak. (How do I debug umm_malloc?)

All is well on a ESP32S NodeMCU .... 100,000 loops and still working

Cheers, Ron

User avatar
Posts: 467
Joined: Wed Jun 29, 2016 7:17 pm
Location: India

Re: Exception (29): epc1=0x4000e1c3 excvaddr=0x00000018

Postby pratik » Mon Oct 30, 2017 9:51 pm

Exception 29 means that you are writing to a location where you should not be writing data. Maybe check where you are writing the data when this happens?
You can trace evc1 and the instruction that caused the error by looking at the .S output listing of your application.
Pratik Panda
Website: http://www.PratikPanda.com

Custom firmware, Knowledge base and freelancing (ESP8266/ESP32):

Who is online

Users browsing this forum: No registered users and 10 guests