esp8266是一块小型的嵌入式芯片, 资源还是比较紧张的(这似乎是废话, 但接下来的exception却与此有关)。
fatal exception(9)在谷歌上可以查到是对内存对齐错误的数据读写。
个人遇到的情况如下:
char tmp1[8] = "tmp1";
char tmp2[8] = "tmp2";
char tmp3[8] = "tmp3";
情况1: 只 调用 user_flash_write(100, (uint32 *)tmp1, 8); //运行没有出exception
情况2: 调用 user_flash_write(100, (uint32 *)tmp1, 8); //出现fatal exception(9)
user_flash_write(100, (uint32 *)tmp2, 8);
user_flash_write(100, (uint32 *)tmp3, 8);
//通过调试可以发现错误是出现在调用第一句时, 也就是本来“没错误”的第一句出bug了。
一开始以为是user_flash_write函数有问题, 后来查谷歌后发