Commit de0c9a2
committed
esp32: handle the alloca exception
MOVSP raises AllocaCause (EXCCAUSE 5) when the caller register window is not
yet spilled. This is a request to spill, not a fault, but the handler treated
every cause other than 4 as fatal and stopped the chip.
The Bluetooth controller blob is the first code on this chip that uses MOVSP.
Without this change btdm_controller_init stops with "EXC 00000005" as soon as
the blob creates its controller task.
_xt_alloca_exc rotates back to the caller window and enters the matching
window underflow routine, which does the spill and returns to the MOVSP. The
ESP32-S3 already has the same handler.1 parent 9d00e05 commit de0c9a2
1 file changed
Lines changed: 41 additions & 0 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
258 | 258 | | |
259 | 259 | | |
260 | 260 | | |
| 261 | + | |
| 262 | + | |
| 263 | + | |
| 264 | + | |
| 265 | + | |
| 266 | + | |
| 267 | + | |
| 268 | + | |
| 269 | + | |
261 | 270 | | |
262 | 271 | | |
263 | 272 | | |
| |||
436 | 445 | | |
437 | 446 | | |
438 | 447 | | |
| 448 | + | |
| 449 | + | |
| 450 | + | |
| 451 | + | |
| 452 | + | |
| 453 | + | |
| 454 | + | |
| 455 | + | |
| 456 | + | |
| 457 | + | |
| 458 | + | |
| 459 | + | |
| 460 | + | |
| 461 | + | |
| 462 | + | |
| 463 | + | |
| 464 | + | |
| 465 | + | |
| 466 | + | |
| 467 | + | |
| 468 | + | |
| 469 | + | |
| 470 | + | |
| 471 | + | |
| 472 | + | |
| 473 | + | |
| 474 | + | |
| 475 | + | |
| 476 | + | |
| 477 | + | |
| 478 | + | |
| 479 | + | |
0 commit comments