Latest SDK causes IllegalInstruction exception
Posted: Fri Jan 13, 2017 2:35 pm
I just updated everything from 1.0 to master, fixed compile errors and got an exception when re-flashing.
SDK git commit: ca9f62ad77db58c2b4813981632d17ef2101add9
Toolchain: gcc version 5.2.0 (crosstool-NG crosstool-ng-1.22.0-61-gab8375a)
This is the boot log:
Disassembly hints at a problem in the spi_flash_guard_start() function:
I have no idea what to do. Can I prevent the function from being called by some menuconfig settings?
SDK git commit: ca9f62ad77db58c2b4813981632d17ef2101add9
Toolchain: gcc version 5.2.0 (crosstool-NG crosstool-ng-1.22.0-61-gab8375a)
This is the boot log:
Code: Select all
Rebooting...
ets Jun 8 2016 00:22:57
rst:0x3 (SW_RESET),boot:0x13 (SPI_FAST_FLASH_BOOT)
configsip: 0, SPIWP:0x00
clk_drv:0x00,q_drv:0x00,d_drv:0x00,cs0_drv:0x00,hd_drv:0x00,wp_drv:0x00
mode:DIO, clock div:2
load:0x3fff0008,len:8
load:0x3fff0010,len:2276
load:0x40078000,len:6344
load:0x40080000,len:252
entry 0x40080034
I (891) heap_alloc_caps: Initializing. RAM available for dynamic allocation:
I (891) heap_alloc_caps: At 3FFBA248 len 00025DB8 (151 KiB): DRAM
I (901) heap_alloc_caps: At 3FFE8000 len 00018000 (96 KiB): D/IRAM
I (922) heap_alloc_caps: At 4009C650 len 000039B0 (14 KiB): IRAM
check b=0x3ffba254 size=155040 ok
check b=0x3ffdfff4 size=0 ok
check b=0x3ffe800c size=98280 ok
check b=0x3ffffff4 size=0 ok
check b=0x4009c65c size=14744 ok
I (986) cpu_start: Pro cpu up.
I (998) cpu_start: Starting app cpu, entry point is 0x40080bd4
I (0) cpu_start: App cpu up.
I (1029) cpu_start: Pro cpu start user code
Guru Meditation Error of type IllegalInstruction occurred on core 0. Exception was unhandled.
Register dump:
PC : 0x400ff5b6
PS : 0x00060330
A0 : 0x80081c38
A1 : 0x3ffe3af0
A2 : 0x3ffbb630
A3 : 0x40081894
A4 : 0x00000000
A5 : 0x00000000
A6 : 0x3f4014f4
A7 : 0x3f4014f4
A8 : 0x800ff5b4
A9 : 0x3ffe3ad0
A10 : 0x00000214
A11 : 0x00000214
A12 : 0x00000000
A13 : 0x00000000
A14 : 0x1a2b3c4d
A15 : 0x0000002c
SAR : 0x00000000
EXCCAUSE: 0x00000000
EXCVADDR: 0x00000000
LBEG : 0x40001699
LEND : 0x400016aa
LCOUNT : 0xfffffffd
Backtrace: 0x400ff5b6:0x3ffe3af0 0x40081c38:0x3ffe3b10 0x400ff1c0:0x3ffe3b60 0x400ff3f1:0x3ffe3bc0 0x400fe1fc:0x3ffe3c20 0x400fe0d4:0x3ffe3c70 0x400fe11e:0x3ffe3c90 0x40080add:0x3ffe3cc0 0x40080d0b:0x3ffe3cf0 0x400787d6:0x3ffe3d10 0x400800f9:0x3ffe3e70 0x40007c34:0x3ffe3eb0 0x40000740:0x3ffe3f20
Rebooting...
Disassembly hints at a problem in the spi_flash_guard_start() function:
Code: Select all
static inline void spi_flash_guard_start()
{
400ff5a4: 004136 entry a1, 32
if (s_flash_guard_ops)
400ff5a7: 449881 l32r a8, 400d0808 <_stext+0x7f0>
400ff5aa: 0888 l32i.n a8, a8, 0
400ff5ac: 488c beqz.n a8, 400ff5b4 <spi_flash_guard_start+0x10>
s_flash_guard_ops->start();
400ff5ae: 002882 l32i a8, a8, 0
400ff5b1: 0008e0 callx8 a8
400ff5b4: f01d retw.n
...
400ff5b8 <spi_flash_guard_end>:
}