I am successfully compiling and uploading a project through the official esp build system, but something unexpected happens when the app starts:
Code: Select all
I (47) boot: ESP-IDF v2.0-rc1-813-g1ddf40fe-dirty 2nd stage bootloader
I (48) boot: compile time 15:00:05
I (51) boot: Enabling RNG early entropy source...
I (67) boot: SPI Speed : 40MHz
I (80) boot: SPI Mode : DIO
I (92) boot: SPI Flash Size : 4MB
I (105) boot: Partition Table:
I (116) boot: ## Label Usage Type ST Offset Length
I (139) boot: 0 nvs WiFi data 01 02 00009000 00006000
I (162) boot: 1 phy_init RF data 01 01 0000f000 00001000
I (185) boot: 2 factory factory app 00 00 00010000 00100000
I (208) boot: End of partition table
I (221) boot: Disabling RNG early entropy source...
I (239) boot: Loading app partition at offset 00010000
I (919) boot: segment 0: paddr=0x00010018 vaddr=0x00000000 size=0x0ffe8 ( 65512)
I (920) boot: segment 1: paddr=0x00020008 vaddr=0x3f400010 size=0x07a7c ( 31356) map
I (936) boot: segment 2: paddr=0x00027a8c vaddr=0x3ffb0000 size=0x02b7c ( 11132) load
I (967) boot: segment 3: paddr=0x0002a610 vaddr=0x40080000 size=0x00400 ( 1024) load
0x40080000: _iram_start at ??:?
I (989) boot: segment 4: paddr=0x0002aa18 vaddr=0x40080400 size=0x131e4 ( 78308) load
I (1052) boot: segment 5: paddr=0x0003dc04 vaddr=0x400c0000 size=0x00000 ( 0) load
I (1053) boot: segment 6: paddr=0x0003dc0c vaddr=0x00000000 size=0x023fc ( 9212)
I (1073) boot: segment 7: paddr=0x00040010 vaddr=0x400d0018 size=0x33270 (209520) map
0x400d0018: _stext at ??:?
I (1100) boot: segment 8: paddr=0x00073288 vaddr=0x00000000 size=0x0fff0 ( 65520)
I (1125) boot: segment 9: paddr=0x00083280 vaddr=0x40103288 size=0x008d8 ( 2264) map
I (1151) cpu_start: Pro cpu up.
I (1163) cpu_start: Starting app cpu, entry point is 0x40080f84
0x40080f84: call_start_cpu1 at /home/lorenzo/esp-idf/components/esp32/./cpu_start.c:174
I (0) cpu_start: App cpu up.
I (1195) heap_alloc_caps: Initializing. RAM available for dynamic allocation:
I (1218) heap_alloc_caps: At 3FFAE2A0 len 00001D60 (7 KiB): DRAM
I (1238) heap_alloc_caps: At 3FFB6780 len 00029880 (166 KiB): DRAM
I (1259) heap_alloc_caps: At 3FFE0440 len 00003BC0 (14 KiB): D/IRAM
I (1281) heap_alloc_caps: At 3FFE4350 len 0001BCB0 (111 KiB): D/IRAM
I (1302) heap_alloc_caps: At 400935E4 len 0000CA1C (50 KiB): IRAM
I (1323) cpu_start: Pro cpu start user code
Guru Meditation Error of type IllegalInstruction occurred on core 0. Exception was unhandled.
Register dump:
PC : 0x400f12c9 PS : 0x00060530 A0 : 0x8008115e A1 : 0x3ffe3c30
0x400f12c9: esp_setup_syscall_table at /home/lorenzo/esp-idf/components/newlib/./syscall_table.c:93
A2 : 0x00000037 A3 : 0x80081166 A4 : 0x0000000c A5 : 0xffffffff
A6 : 0x00000000 A7 : 0xfffffff6 A8 : 0x80080e81 A9 : 0x3ffe3bb0
A10 : 0x00000000 A11 : 0x3f401521 A12 : 0x3ffe3b7f A13 : 0x00000033
A14 : 0x00000000 A15 : 0x3ffe3b85 SAR : 0x00000020 EXCCAUSE: 0x00000000
EXCVADDR: 0x00000000 LBEG : 0x4000c46c LEND : 0x4000c477 LCOUNT : 0xffffffff
The strange fact is that everything works fine as long as I upload an application under 400kB, but when I exceed that size I get this error not on a new function call, but on cpu startup (where esp_setup_syscall_table is called), just like a piece of memory has been overwritten.
My partition table is set to singleapp and, using ESP32_Core_board_V2 euipped with 4MB of flash I shouldn't encounter this kind of issues...
I've also been able run other projects (not written by me) bigger than 400kB, so I am kind of confused.
Any help would be appreciated.