Espressif ESP32-S2 Programming Manual page 1350

Table of Contents

Advertisement

Chapter 4. API Guides
InstrFetchProhibited
This CPU exception indicates that the CPU could not read an instruction because the address of the instruction does
not belong to a valid region in instruction RAM or ROM.
Usually, this means an attempt to call a function pointer, which does not point to valid code. PC (Program Counter)
register can be used as an indicator: it will be zero or will contain a garbage value (not 0x4xxxxxxx).
LoadProhibited, StoreProhibited
These CPU exceptions happen when an application attempts to read from or write to an invalid memory location.
The address which has been written/read is found in the EXCVADDR register in the register dump. If this address
is zero, it usually means that the application has attempted to dereference a NULL pointer. If this address is close
to zero, it usually means that the application has attempted to access a member of a structure, but the pointer to the
structure is NULL. If this address is something else (garbage value, not in 0x3fxxxxxx - 0x6xxxxxxx range),
it likely means that the pointer used to access the data is either not initialized or has been corrupted.
IntegerDivideByZero
Application has attempted to do an integer division by zero.
LoadStoreAlignment
Application has attempted to read or write a memory location, and the address alignment does not match the load/store
size. For example, a 32-bit read can only be done from a 4-byte aligned address, and a 16-bit write can only be done
to a 2-byte aligned address.
LoadStoreError
This exception may happen in the following cases:
• If the application has attempted to do an 8- or 16- bit read to, or write from, a memory region which only
supports 32-bit reads/writes. For example, dereferencing a char* pointer to instruction memory (IRAM,
IROM) will result in such an error.
• If the application has attempted to write to a read-only memory region, such as IROM or DROM.
Unhandled debug exception
This will usually be followed by a message like:
Debug exception reason: Stack canary watchpoint triggered (task_name)
This error indicates that the application has written past the end of the stack of the task with name task_name.
Note that not every stack overflow is guaranteed to trigger this error. It is possible that the task writes to memory
beyond the stack canary location, in which case the watchpoint will not be triggered.
Interrupt wdt timeout on CPU0 / CPU1
Indicates that an interrupt watchdog timeout has occurred. See
Espressif Systems
Watchdogs
1339
Submit Document Feedback
for more information.
Release v4.4

Advertisement

Table of Contents
loading
Need help?

Need help?

Do you have a question about the ESP32-S2 and is the answer not in the manual?

Questions and answers

Table of Contents

Save PDF