乐鑫技术交流
直播中

王静

7年用户 1549经验值
私信 关注
[问答]

SPIFFS是否包含在ESP8266的1MB内存映射限制中?

大家好,
我有一个关于 SPIFFS 和 ESP8266 内存映射的问题。我有一个使用 rBoot 引导加载程序(和用于 ESP8266 的 Arduino SDK)的项目,我需要同时具备 SPIFFS 和 OTA 功能。
我的问题是:SPIFFS 是否包含在 ESP8266 的 1MB 内存映射限制中?我的意思是,如果我一次只能映射 1MB 内存,即 ROM + SPIFFS 或只是 ROM,那么 SPIFFS 地址可以超出 1MB 内存映射限制?
如果它可以超出内存映射限制,我会进行跟进——基于 SPIFFS 受 1MB 内存映射限制(在 4M 闪存上)的假设,我的链接描述文件目前看起来像这样:
代码:全选MEMORY
{
  dport0_0_seg :                        org = 0x3FF00000, len = 0x10
  dram0_0_seg :                         org = 0x3FFE8000, len = 0x14000
  iram1_0_seg :                         org = 0x40100000, len = 0x8000
  irom0_0_seg :                         org = 0x40202010, len = 0xFDFF0
}

PROVIDE ( _SPIFFS_start = 0x40300000 );
PROVIDE ( _SPIFFS_end = 0x403FC000 );
PROVIDE ( _SPIFFS_page = 0x100 );
PROVIDE ( _SPIFFS_block = 0x1000 );

意图是在内存中大致如下的结构:
ROM 0 (~786k)
SPIFFS 0 (~262k)
ROM 1 (~786k)
SPIFFS 1 (~262k)
如果 SPIFFS 不受内存映射限制,它将允许我做类似的事情:
ROM 0 ~1MB)
ROM 1 ~1MB)
SPIIFS 0 ~1MB
SPIIFS 1 ~1MB
显然这更好,因为我为程序和 SPIFFS 获得了更多内存....但是在链接器中会是什么样子脚本(即 PROVIDE(_SPIFFS_start) 等)
感谢您的任何见解!

更多回帖

发帖
×
20
完善资料,
赚取积分