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?


Log in to reply

Pycom on Twitter