标注「ICACHEFLASHATTR」宏的函数存储在irom0里面(Flash里面),表示将其存放在Flash中,仅调用时才加载到cache 运行;没有标注的会放在iram1里面,iram1大小只有32KB,IoTDemo固件使用了大约27KB,还剩下5KB,而irom0最大支持768KB。所以如果自己用SDK开发,请尽量给函数都标注该宏,不然会出现内存不够用的错误信息:「.output/eagle/debug/image/eagle.app.v6.out section .text' will not fit in region iram10seg'」
- 不要在GPIO或UART中断处理函数中调用带有「ICACHEFLASH_ATTR」宏的函数,否则可能会进入异常导致重启。
上电时会以串口波特率76800bps(和晶振有关)打印「ets Jan 8 2013,rst cause:2, boot mode:(1,7)」等信息,这一上电信息是保存在片上固化ROM的,无法屏蔽。