Guru Meditation InstrFetchProhibited Wrong Program Counter
-
Hello.
I'm having an issue on my WiPy 2 running the latest firmware build from pycom-micropython/
We have some frozen modules, and some patched C modules to include utimeq and asyncio support.
It seems during execution of our main loop, we get an InstrFetchProhibited error, which to my understanding is fail to fetch instruction from a CODE block. So I suspected that it was trying to read code from a none CODE section.
Looking at the dump, it seems the program counter is 0x02. Which is obviously NOT okay.
Guru Meditation Error of type InstrFetchProhibited occurred on core 0. Exception was unhandled. Register dump: PC : 0x00000002 PS : 0x00060930 A0 : 0x800efe56 A1 : 0x3ffd2ec0 A2 : 0x3ffd2f1c A3 : 0x3ffe94b0 A4 : 0x00000000 A5 : 0x00000073 A6 : 0x00000004 A7 : 0x00000010 A8 : 0x800eaf84 A9 : 0x3ffe64d0 A10 : 0x3ffd2f1c A11 : 0x3ffe94b0 A12 : 0x00000000 A13 : 0x3ffd31f0 A14 : 0x0000002a A15 : 0x3ffd3100 SAR : 0x0000001a EXCCAUSE: 0x00000014 EXCVADDR: 0x00000000 LBEG : 0x4000c46c LEND : 0x4000c477 LCOUNT : 0x00000000 Backtrace: 0x00000002:0x3ffd2ec0 0x400efe56:0x3ffd2ee0 0x400eff48:0x3ffd2f70 0x400ea7e8:0x3ffd2fc0 0x400f53a0:0x3ffd2fe0 0x400ed39d:0x3ffd3080 0x400e9978:0x3ffd3100 0x400e9f67:0x3ffd3120 0x400f4ffa:0x3ffd3160 0x400ed39d:0x3ffd3200 0x400e9978:0x3ffd3240 0x400e9f67:0x3ffd3260 0x400f4ffa:0x3ffd32a0 0x400ed39d:0x3ffd3340 0x400e9978:0x3ffd33c0 0x400e9f67:0x3ffd33e0 0x400f4ffa:0x3ffd3420 0x400ed39d:0x3ffd34c0 0x400e9978:0x3ffd3550 0x400e99e5:0x3ffd3570 0x400f5041:0x3ffd3590 0x400ed39d:0x3ffd3630 0x400e9978:0x3ffd3670 0x400e99e5:0x3ffd3690 0x400f5041:0x3ffd36b0 0x400ed39d:0x3ffd3750 0x400e9978:0x3ffd37e0 0x400e99e5:0x3ffd3800 0x400f5041:0x3ffd3820 0x400ed39d:0x3ffd38c0 0x400e9978:0x3ffd3940 0x400e99a5:0x3ffd3960 0x400d8960:0x3ffd3980 0x400d8c23:0x3ffd3a10 0x400d7c56:0x3ffd3a30
My interpretation of the Backtrace arguments was
PC:A1
register pair. I'm not significantly familiar with the Xtensa CPU or instruction set, so looking at an objdump of the application didn't yield a lot of insight for me. I can tell it's failing during a'string' % (modulo, operation)
but I couldn't work out much more than that.Any suggestions where to look, and why the PC would jump to 0?
Cheers.