乐鑫技术交流
直播中

李林

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

增加SPIFFS中允许的“打开”文件的最大数量是多少?

PS :对不起,如果这是一个双重条目..(原谅

                        一个老家伙..
)在 esp8266 HTML 页面上使用 #include \"ESPAsyncWebServer.h\",其中大约有 100 张图像,总共只有 7 个唯一的 xxxx.gif 名称(将网络索引页面视为数字 VU 表)似乎有时 SPIFFS 的异步负载会增加index.html load to more than 6 different images simultaniously are being downloaded .....(这是7个不同的gif图像之一) ps: if (!MaxOpenFiles is only for testing the error by using a different file *** *****************部分


server.on(\"/img/Icon-blink-red.gif\", HTTP_GET,handle_blink_red_gif);
~~~~
void handle_QBoxIcon_red_gif(AsyncWebServerRequest*request) {if (!MaxOpenFiles(\"/Icon-red.gif\")){request->send(SPIFFS, \"/Icon-red.gif\" ,\"image/gif\" ) ;}}
~~~~~~
boolean MaxOpenFiles(String CFileName){
  //SPIFFS.gc();
  //CFileName = \"/QBox_Debug.txt\";
  DEBUG_MSG(\"尝试执行: server(on)(\" + CFileName);
  File fsFile;
  fsFile = SPIFFS.open(\"/QBox_Debug.txt\", FILE_READ);
  if (!fsFile) {
      DEBUG_MSG( \" file_reading of dummy read / Debug.txt 失败。我们需要忽略实际的文件请求:\" + CFileName);
      return true;


      return false;}
}
************************
在那一刻,一个文件无法打开
我有“强烈的感觉”,这是由于最大打开文件的强制限制并且与
内存堆栈等无关
我知道 SPIFFS 中打开文件的最大数量被硬编码为“5”
这部分给出了问题,因为在索引期间打开了太多文件。 html
server.on(\"/\", HTTP_ANY,handle_OnConnect);
**************
void handle_OnConnect(AsyncWebServerRequest *request) {
request->send(SPIFFS, \"/index.html\", String(), false, 处理器);
}

更多回帖

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