What is "Fatal exception (29)"?

eyal
Posts: 12
Joined: Thu Apr 09, 2015 8:52 pm

What is "Fatal exception (29)"?

Postby eyal » Fri Apr 10, 2015 10:03 pm

I have a few esp modules. This time I use an esp-07 with a very simple test program (in lua) that repeatedly deep sleeps for 1 second.

Code: Select all

node.dsleep(1*1000000)


After a few loops (10 to 30) it stops during the wakeup and at 115200 baud I see:

Code: Select all

MEM CHECK FAIL!!!
Fatal exception (29):
epc1=0x40222768, epc2=0x00000000, epc3=0x00000000, excvaddr=0x00000044, depc=0x00000000


What is it trying to tell me? Is it the SDK or lua talking? Better yet, where is this information documented?

This was the case with SDK 0.9.5, 1.0.0 and now also with 1.0.1b1.

Thanks

YimingLi

Re: What is "Fatal exception (29)"?

Postby YimingLi » Wed Jun 10, 2015 12:32 am

Hi,

The number in the parenthese, i.e. 29 in this example, should be "exception cause" number defined by Xtensa chip core.

According to Xtensa datasheet, exception cause 29 is "Strore Prohibited Cause", a store referenced a page mapped with an attribute that does not permit stores.

Hope it will be helpful.

User avatar
kolban
Posts: 131
Joined: Tue Jun 16, 2015 1:09 pm
Location: Fort Worth, Texas, USA

Re: What is "Fatal exception (29)"?

Postby kolban » Thu Jul 09, 2015 12:37 pm

You can also use the "epc1" property to determine the instruction that caused the problem. Since this is a hex address in memory, it isn't that immediately useful, however if you use objdump to dump the address tables of the compiled application, you can figure out "pretty closely" where in your code the problem was caught.

Who is online

Users browsing this forum: No registered users and 90 guests