[已解决] esp32s3 spiffs读取文件错误
Posted: Wed Aug 17, 2022 1:18 pm
我的应用想通过uart将bin文件传到spiffs进行保存(因为进行远程升级时,esp32s3没办法直接连外网。连外网的是另一个模块),但bin文件太大,我将它分割成好几份,等传输完成之后,再进行合并。本着这个思路,将bin文件替换成比较大的jpg图片,将图片分割成若干个子文件后,通过file_server例程将文件保存再spiffs文件系统中。flash是8M,我将其中2M分配到spiffs中。
然后开始编写测试文件时,同时以"wb"--->test.jpg和“rb”--->image_test.jpg.part0,打开了两个文件。IDF版本:4.4.1
问题:
此时,将image_test.jpg.part0的数据写入test.jpg文件时,大概率会发生写入错误的问题,是否因为spifss不支持同时读写?因为只读或只写一个文件时,是成功的,这点在使用file_server的上传和下载功能得到了验证。
以下为日志,附件为该测试功能的c文件和图片分包。请各位指点。
然后开始编写测试文件时,同时以"wb"--->test.jpg和“rb”--->image_test.jpg.part0,打开了两个文件。IDF版本:4.4.1
问题:
此时,将image_test.jpg.part0的数据写入test.jpg文件时,大概率会发生写入错误的问题,是否因为spifss不支持同时读写?因为只读或只写一个文件时,是成功的,这点在使用file_server的上传和下载功能得到了验证。
以下为日志,附件为该测试功能的c文件和图片分包。请各位指点。
Code: Select all
I (1324) xmodem_ota: file_part_count:7
I (1334) xmodem_ota: ota_file_path[0]:/spiffs/image_test.jpg.part0
I (1344) xmodem_ota: ota_file_path[1]:/spiffs/image_test.jpg.part1
I (1354) xmodem_ota: ota_file_path[2]:/spiffs/image_test.jpg.part2
I (1354) xmodem_ota: ota_file_path[3]:/spiffs/image_test.jpg.part3
I (1364) xmodem_ota: ota_file_path[5]:/spiffs/image_test.jpg.part5
I (1364) xmodem_ota: ota_file_path[6]:/spiffs/image_test.jpg.part6
I (1404) xmodem_ota: ota_file_path[4]:/spiffs/image_test.jpg.part4
I (1404) xmodem_ota: entrypath:/spiffs/test.jpg ota merge...
E (5154) xmodem_ota: ota_file_path[0]:/spiffs/image_test.jpg.part0 fwrite error filesize:[8192] tmpsize:[0]