Расширение для vs code, обеспечивающее работу с nodemcu lua

Тема в разделе "ESP8266, ESP32", создана пользователем serg3295, 2 апр 2023.

Метки:
  1. ИгорьК

    ИгорьК Гуру

    :)
    Дзен вот в чем. У меня, так издавна сложилось, три компьютера в разных местах связаны через SyncThing/NextCloud.
    Логины, структура папок (то есть абсолютные пути) там различны. Поэтому для каждой машины требуются коррекция индивидуальных настроек.

    Дзеном это не назовёшь, но некоторой проблемой - можно.
     
    serg3295 нравится это.
  2. ИгорьК

    ИгорьК Гуру

    @serg3295 , не подскажете, каков предельный размер ESP32 lfs образа, можно ли и как его увеличивать?

    У меня 26 кб имидж устанавливается нормально, а 34 - нет. Предел - 32 кб? Можно это как-то решить?
     
    Последнее редактирование: 12 дек 2024
  3. serg3295

    serg3295 Гуру

    Предельный размер образа LFS в настоящее время равен 256кб, или 0x40000.

    Если предположить, что в вашем случае речь идёт о esp8266, то (Не заметил, что это про esp32. Возможно, там также). имеет значение размер одного файла, а не сумма их размеров.
    Урезайте файлы. Особенно стоит обратить внимание на jpg. Так как zip/unzip на них плохо влияет, мне кажется.

    Вот пример. На LFS esp8266 лежит 240928 байт данных.
    Код (Bash):
    NodeMCU 3.0.0.0
        branch: HEAD
        commit: 0b9785585e41003d29a3971758286b5a9d0df688
        release: 3.0.0-release_20211229
        release DTS: 202112281833
        SSL: false
        build type: float
        LFS: 0x40000 bytes total capacity
        modules: adc,bit,dht,file,gpio,i2c,mqtt,net,node,ow,spi,tmr,uart,wifi
    build 2024-12-12 15:38 powered by Lua 5.3.5 on SDK 3.0.1-dev(fce080e)
    cannot open init.lua:
    > local s,p,n={},print,node.LFS;for _,k in ipairs{'lfs_base','lfs_mapped','lfs_size','lfs_used'}do s[#s+1]='%s = 0x%06x'%{k,n.config[k]}end;p('> LFS cfg:\n{ %s }\n> LFS list:'%table.concat(s,', '))for k,v in pairs(n.list())do p(k,v)end;collectgarbage()
    > LFS cfg:
    { lfs_base = 0x07c000, lfs_mapped = 0x4027c000, lfs_size = 0x040000, lfs_used = 0x03ad20 }
     
    И если всё-таки esp32, то размер LFS меняется в components/platform/partitions.csv

    Код (C++):
    #
    # Name,  Type, SubType, Offset,  Size
    nvs,  data, nvs,  0x9000,  0x6000
    phy_init,  data, phy,  0xf000,  0x1000
    factory,  app,  factory, 0x10000, 0x180000
    # Type 0xC2 => NodeMCU. SubTypes: 0x01 = LFS
    lfs,  0xC2, 0x01,  , 0x40000  <======================= Оно!
    storage,  data, spiffs,  , 0x70000

     
    По умолчанию размер стоит 0x10000
     
    Последнее редактирование: 12 дек 2024
    ИгорьК нравится это.
  4. ИгорьК

    ИгорьК Гуру

    У меня то гораздо меньше. Может дело в количестве? Люблю маленькие файлы, но много.
     
  5. serg3295

    serg3295 Гуру

    Ограничение по умолчанию стоит на 50-ти файлах. Если больше, то luac.cross ругнётся.

    Это количество можно легко (на Линуксе) увеличить, задав #define LFIELDS_PER_FLUSH 200 (или не 200, а 150, или 100...) в nodemcu-firmware/components/lua/lua-5.*/lopcodes.h для ESP32, или в nodemcu-firmware/app/lua*/lopcodes.h для ESP8266.
     
    Последнее редактирование: 13 дек 2024
    ИгорьК нравится это.
  6. serg3295

    serg3295 Гуру

    Могу ещё сделать предположение, что размер образа 34 kB (в сжатом виде) при распаковке превращается в более чем 64 kB.
    А так как по умолчанию размер LFS в ESP32 установлен в 0x10000, то есть 64 kB, места и не хватает.
     
    ИгорьК нравится это.
  7. serg3295

    serg3295 Гуру

    Выпущена новая версия расширения для VS Code.

    Теперь nodemcu-tools поддерживает работу с ESP32-S2, ESP32-S3, ESP32-C3, ESP32-C6 и ESP32-H2 через консоли UART, USB-Serial-JTAG и CDC-ACM.
    Для корректной работы расширения с чипами ESP32-xx требуется обновление прошивки на ESP32. Дополнительные действия по сборке прошивки приведены в этом сообщении.

    Также была скорректирована утилита NodeMCU-Tool для работы с новой прошивкой. Прямая ссылка для скачивания с github zip архива с новой версией утилиты.
     
    Последнее редактирование: 16 дек 2024
    ИгорьК нравится это.
  8. ИгорьК

    ИгорьК Гуру

    upload_2024-12-16_9-21-59.png


    Ссылка ведь на консольную утилиту, а не на расширение для VSCode.
     
  9. serg3295

    serg3295 Гуру

    Да, ссылка на консольную утилиту. Как и написано.
    Расширение nodemcu-tools опубликовано на marketplace и может быть установлено стандартным способом через панель Extensions VS Code.
     
    ИгорьК нравится это.
  10. ИгорьК

    ИгорьК Гуру

    Указанная на картинке версия работает в новых условиях?
     
  11. serg3295

    serg3295 Гуру

    Текущая версия 4.5.0 поддерживает новый модуль 'console' для esp32.
    Существенные изменения относительно предыдущей версии были описаны в CHANGELOG.
     
    ИгорьК нравится это.
  12. ИгорьК

    ИгорьК Гуру

    @serg3295, как предложение. По возможности сделать возможность сворачивания папок в окошке эксплорера файлов на модуле.

    upload_2024-12-19_11-35-42.png

    Не зря же мы их в папку складываем. В окне файловой системы свернуть можно, а в окне файлов на модуле - нет.

    Ясное дело - можно и обойтись без этого, но все же :)
     
    serg3295 нравится это.
  13. serg3295

    serg3295 Гуру

    Beta-версия на тестирование.
     

    Вложения:

    ИгорьК нравится это.
  14. ИгорьК

    ИгорьК Гуру

  15. serg3295

    serg3295 Гуру

    В приложенном файле очередная версия на тестирование. Исправлена ошибка в новом функционале папок.

    Дополнительно сделана попытка исправить древнюю ошибку, когда не соединялась esp8266 D1 mini. Тогда проблема была решена @ИгорьК путём замены драйвера для Windows на .sparkfun com.

    За всё это время мне так и не попалась подобная странная плата, и я не смог смоделировать ту ошибку. И, соответственно, исправить её.
    Сейчас подобная ситуация возникла у пользователя на Linux'e. Поэтому, я опять внёс некоторые изменения на основании теоретических предположений о природе этой ошибки.

    Если у кого-нибудь возникнет подобная ситуация с "неконнектом" с D1mini, то большая просьба проверить версию из приложенного файла до применения драйверов от sparkfun и отписаться на форуме о результате.
     

    Вложения: