当前位置:   article > 正文

Arduino esp32环境中使用LittleFS上载文件出现“LittleFS Error: mklittlefsnot found!”问题的解决_esp32 littlefs

esp32 littlefs

问题描述:

        在使用AsyncWebServer时,需要将web网页存储在esp32开发板的存储空间内,原来使用的是spiffs文件管理系统,当在web中使用jQuery mobile库时,未出现应有的效果。原因是spiffs文件系统为平面式文件管理结构(即没有文件夹),同时spiffs对文件名长度也有限制,而jQuery mobile库为多层次文件夹,大部分文件为长文件名。估计是在使用spiffs文件管理系统上传jQuery mobile库或读取中出现了问题。

         基于以上情况,决定改用littlefs文件管理系统。下载esp32的littlefs库文件和文件上载工具esp32fs.jar,并拷贝esp32fs.jar到C:\Users\me\Documents\Arduino\tools\ESP32FS\tool(me替换成你的用户名)文件夹下替换原来spiffs的上载工具esp32fs.jar,启动Arduino上传文件,出现“LittleFS Error: mklittlefsnot found!”错误。        

 

 

搜索解决办法:

        通过baidu分别找到这几篇相关文章:

Install ESP8266 NodeMCU LittleFS Filesystem Uploader in Arduino IDE | Random Nerd Tutorials

LittleFS Error: mklittlefs not found!

Installing — ESP8266 Arduino Core 3.1.2-14-g521ae60a documentation

        其中最简单的解决办法就是卸掉Arduino IDE并删除C:\Users\me\AppData\Local\Arduino15目录并重新安装IDE和开发板。于是卸载、删除Arduino15、重装,但安装esp32开发板时,由于科学的原因,多次下载不顺导致出错。后来,按照《arduino的esp32环境搭建(不需要翻墙,不需要离线安装》arduino的esp32环境搭建(不需要翻墙,不需要离线安装)这篇文章,用迅雷下载各相关文件,操作如下:

        用迅雷到https://dl.espressif.com/dl/package_esp32_index.json下载package_esp32_index.json文件;

        打开package_esp32_index.json,这个json文件定义了开发板主文件和依赖文件,包括对应的版本、适用的操作系统等。按照json文件提示,依次下载esp32-1.0.6.zip主文件和依赖文件xtensa-esp32-elf-win32-1.22.0-97-gc752ad5-5.2.0.zip、esptool-3.0.0.2-windows.zip、mkspiffs-0.2.3-arduino-esp32-win32.zip(在package_esp32_index.json中其name分别对应为xtensa-esp32-elf-gcc、esptool_py、mkspiffs),然后拷贝到C:\Users\me\AppData\Local\Arduino15\staging\packages中,重启Arduino,Arduino经过一段时间的自动配置,启动成功。测试编译,上载文件还是出现原来的问题。

        通过查看下载的文件,没有发现与littlefs相关的文件,在package_esp32_index.json文件中也没有littlefs相关的数据条目,于是怀疑是package_esp32_index.json定义的esp32的版本太低,其版本为esp32-1.0.6。

 

        经过网上搜索,找到esp32-2.0.6对应的json文件地址:https://github.com/espressif/arduino-esp32/releases/download/2.0.6/package_esp32_dev_index.json

https://github.com/espressif/arduino-esp32/releases/download/2.0.6/package_esp32_index.json

将这两个地址拷贝到Arduino IDE的首选项中,通过 IDE自行安装开发板多次下载失败,决定还是用迅雷手动下载各相关文件,具体操作是:

  1. https://github.com/espressif/arduino-esp32/releases/download/2.0.6/package_esp32_dev_index.json下载package_esp32_dev_index.json文件,并拷贝到C:\Users\me\AppData\Local\Arduino15\中;

        2、使用记事本打开package_esp32_dev_index.json,找到platforms节点中的第一个子节点,即对应"name"为"esp32"、"version"为"2.0.6",的esp32版本,其"url"为"https://github.com/espressif/arduino-esp32/releases/download/2.0.6/esp32-2.0.6.zip",拷贝该地址到迅雷下载esp32-2.0.6.zip;        

  1. "platforms": [
  2. {
  3. "name": "esp32",
  4. "architecture": "esp32",
  5. "version": "2.0.6",
  6. "category": "ESP32",
  7. "url": "https://github.com/espressif/arduino-esp32/releases/download/2.0.6/esp32-2.0.6.zip",
  8. "archiveFileName": "esp32-2.0.6.zip",
  9. "checksum": "SHA-256:ea56d300404cc1b5bc15295f29790246b02025c493e0664a6d271164a602a351",
  10. "size": "264579419",
  11. "help": {
  12. "online": ""
  13. },

        3、找到"name"为"esp32"、"version"为"2.0.6"版本下的toolsDependencies子节点,这个数据节点下一共有八个子节点数据项,他们的"name"分别是:riscv32-esp-elf-gcc、xtensa-esp32-elf-gcc、xtensa-esp32s2-elf-gcc、xtensa-esp32s3-elf-gcc、esptool_py、openocd-esp32、mkspiffs、mklittlefs,八个子节点数据项下还有对应的版本号,最好将toolsDependencies节点拷贝出来以便找到这些文件对应的地址。

  1. "toolsDependencies": [
  2. {
  3. "packager": "esp32",
  4. "name": "riscv32-esp-elf-gcc",
  5. "version": "gcc8_4_0-esp-2021r2-patch5"
  6. },
  7. {
  8. "packager": "esp32",
  9. "name": "xtensa-esp32-elf-gcc",
  10. "version": "gcc8_4_0-esp-2021r2-patch5"
  11. },
  12. {
  13. "packager": "esp32",
  14. "name": "xtensa-esp32s2-elf-gcc",
  15. "version": "gcc8_4_0-esp-2021r2-patch5"
  16. },
  17. {
  18. "packager": "esp32",
  19. "name": "xtensa-esp32s3-elf-gcc",
  20. "version": "gcc8_4_0-esp-2021r2-patch5"
  21. },
  22. {
  23. "packager": "esp32",
  24. "name": "esptool_py",
  25. "version": "4.2.1"
  26. },
  27. {
  28. "packager": "esp32",
  29. "name": "openocd-esp32",
  30. "version": "v0.11.0-esp32-20220706"
  31. },
  32. {
  33. "packager": "esp32",
  34. "name": "mkspiffs",
  35. "version": "0.2.3"
  36. },
  37. {
  38. "packager": "esp32",
  39. "name": "mklittlefs",
  40. "version": "3.0.0-gnu12-dc7f933"
  41. }
  42. ]
  43. },

        4、在package_esp32_dev_index.json中依次按照依赖文件的"name"以及其对应的"version"查找与esp32-2.0.6版对应依赖文件的下载地址。例如查找“riscv32-esp-elf-gcc”找到"tools"节点下的"name": "riscv32-esp-elf-gcc"、其"version": "gcc8_4_0-esp-2021r2-patch5",注意,版本号一定要与toolsDependencies子节点中对应版本号相同,按照操作系统对应的"host"如"host": "i686-mingw32"或"host": "x86_64-mingw32",拷贝 "url": "https://github.com/espressif/crosstool-NG/releases/download/esp-2021r2-patch5/riscv32-esp-elf-gcc8_4_0-esp-2021r2-patch5-win32.zip",用迅雷下载。我是将"host"为 "i686-mingw32"和"x86_64-mingw32"下的文件都下载了的,总共下载了14个文件。

  1. "tools": [
  2. {
  3. "name": "riscv32-esp-elf-gcc",
  4. "version": "gcc8_4_0-esp-2021r2-patch5",
  5. "systems": [
  6. {
  7. "host": "x86_64-pc-linux-gnu",
  8. "url": "https://github.com/espressif/crosstool-NG/releases/download/esp-2021r2-patch5/riscv32-esp-elf-gcc8_4_0-esp-2021r2-patch5-linux-amd64.tar.gz",
  9. "archiveFileName": "riscv32-esp-elf-gcc8_4_0-esp-2021r2-patch5-linux-amd64.tar.gz",
  10. "checksum": "SHA-256:f7d73e5f9e2df3ea6ca8e2c95d6ca6d23d6b38fd101ea5d3012f3cb3cd59f39f",
  11. "size": "192388486"
  12. },
  13. {
  14. "host": "aarch64-linux-gnu",
  15. "url": "https://github.com/espressif/crosstool-NG/releases/download/esp-2021r2-patch5/riscv32-esp-elf-gcc8_4_0-esp-2021r2-patch5-linux-arm64.tar.gz",
  16. "archiveFileName": "riscv32-esp-elf-gcc8_4_0-esp-2021r2-patch5-linux-arm64.tar.gz",
  17. "checksum": "SHA-256:cf520ae3a72f65b9758ea187524b105b8b7546566d738c32e60a0df9846ef1af",
  18. "size": "188626914"
  19. },
  20. {
  21. "host": "arm-linux-gnueabihf",
  22. "url": "https://github.com/espressif/crosstool-NG/releases/download/esp-2021r2-patch5/riscv32-esp-elf-gcc8_4_0-esp-2021r2-patch5-linux-armel.tar.gz",
  23. "archiveFileName": "riscv32-esp-elf-gcc8_4_0-esp-2021r2-patch5-linux-armel.tar.gz",
  24. "checksum": "SHA-256:2dc3536214caa1697f6834bb4701d05894ca55b53589fc5b54064b050ef93799",
  25. "size": "188624050"
  26. },
  27. {
  28. "host": "i686-pc-linux-gnu",
  29. "url": "https://github.com/espressif/crosstool-NG/releases/download/esp-2021r2-patch5/riscv32-esp-elf-gcc8_4_0-esp-2021r2-patch5-linux-i686.tar.gz",
  30. "archiveFileName": "riscv32-esp-elf-gcc8_4_0-esp-2021r2-patch5-linux-i686.tar.gz",
  31. "checksum": "SHA-256:165d6d53e76d79f5ade7e2b7ade54b2b495ecfda0d1184d84d6343659d0e3bdb",
  32. "size": "194606113"
  33. },
  34. {
  35. "host": "x86_64-apple-darwin",
  36. "url": "https://github.com/espressif/crosstool-NG/releases/download/esp-2021r2-patch5/riscv32-esp-elf-gcc8_4_0-esp-2021r2-patch5-macos.tar.gz",
  37. "archiveFileName": "riscv32-esp-elf-gcc8_4_0-esp-2021r2-patch5-macos.tar.gz",
  38. "checksum": "SHA-256:d6d4cef216cbf28d6fbb88f3e127d4f42a376d9497c260bf8c1ad9cef440f839",
  39. "size": "199411930"
  40. },
  41. {
  42. "host": "i686-mingw32",
  43. "url": "https://github.com/espressif/crosstool-NG/releases/download/esp-2021r2-patch5/riscv32-esp-elf-gcc8_4_0-esp-2021r2-patch5-win32.zip",
  44. "archiveFileName": "riscv32-esp-elf-gcc8_4_0-esp-2021r2-patch5-win32.zip",
  45. "checksum": "SHA-256:1e0cfcfbc8f82c441261cadd21742f66d716ec18c18bf10ed7c7d5b0bee6752f",
  46. "size": "257844437"
  47. },
  48. {
  49. "host": "x86_64-mingw32",
  50. "url": "https://github.com/espressif/crosstool-NG/releases/download/esp-2021r2-patch5/riscv32-esp-elf-gcc8_4_0-esp-2021r2-patch5-win64.zip",
  51. "archiveFileName": "riscv32-esp-elf-gcc8_4_0-esp-2021r2-patch5-win64.zip",
  52. "checksum": "SHA-256:b08f568e8fe5069dd521b87da21b8e56117e5c2c3b492f73a51966a46d3379a4",
  53. "size": "259712666"
  54. }
  55. ]
  56. },

        5、拷贝下载的文件到C:\Users\me\AppData\Local\Arduino15\staging\packages中,重启Arduino,Arduino经过一段时间的自动系统配置,启动成功。测试编译,上载文件正常。

 

声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:【wpsshop博客】
推荐阅读
相关标签
  

闽ICP备14008679号