ESP8266 стереть файловую систему

Тема в разделе "Проводная и беспроводная связь", создана пользователем Андрей1937, 7 июл 2017.

  1. Андрей1937

    Андрей1937 Нерд

    Снова про эмулятор весового терминала.
    Имел неосторожность прописать вызов скрипта в файл init.lua

    Код (C++):
    uart.setup(0, 115200, 8, 0, 1, 0 )
    while 1 do
    tmr.delay(2000000)
    uart.write(0,"65AD006E7E7CEEA56F6F6FA5EBFFE5FFFFFFFFFFFFFFFFFFFFFF\n")
    end
     
    Теперь не могу загрузить в ESP ничего, он только и делает, что пишет строки в порт.
    Перепрошивка не помогла, снова стоит и тупо кидает строчки, а на попытку залить на него программку ничего не отвечает.

    Вопрос: Есть какой-нибудь способ почикать все у него на файловой системе?
     
  2. ИгорьК

    ИгорьК Гуру

    Есть. Прошить правильно.
     
  3. ИгорьК

    ИгорьК Гуру

  4. Андрей1937

    Андрей1937 Нерд

    Спасибо!

    Выход нашелся путем заливки INTERNAL://NODEMCU
    Файл init.lua остался в файловой системе, но при загрузке устройство на него не реагировало.
    После чего сделал формат файловой системы.
    Потом опять залил старую прошивку.
    Оно постояло в filesystem format, please wait (или что-то в этом роде) и - вуаля! чистая файловая система :)
     
  5. ИгорьК

    ИгорьК Гуру

    Файл init.lua не должен выполнять никакую работу кроме запуска какого-нибудь другого файла на исполнение.
    Если что-то не так, удаляете его и правите исполняемые файл.
     
  6. Андрей1937

    Андрей1937 Нерд

    Дело уже прошлое, но проблема была в том, что в init.lua стояли два вызова dofile().
    Первая программка подключала устройство к доступной wifi точке, а вторая...
    Вторая программка открывала uart и начинала тупо кидать в него "==== test string====".
    И ESPlorer не мог даже прочитать список файлов в системе, а уж что-то записать или удалить - и подавно.
    Я уже грешным делом подумал об "окирпичивании", но решение нашлось.

    Но все равно - спасибо за поддержку.
    Задавая вопросы начинаешь свои горести делить по пунктам, а там, глядишь, и ответ уже рядом :)
     
  7. ИгорьК

    ИгорьК Гуру

    Код (Lua):

    -- создаем и запускаем таймер 22 секунды
    tmr.create():alarm(22000, 0, function()
       -- если существует файл "main.lua" - запускаем его
       if file.exists("main.lua") then
         dofile("main.lua")
       -- если нет файла "main.lua"
       -- переименовываем файл init.lua в _init.lua
       -- и перегружаем устройство
       else
         print("No main.lua\nRename init.lua!")
         if file.exists("init.lua") then
           file.rename("init.lua","_init.lua")
           node.restart()
         end
       end  
    end)
     
    И в инит запуск файла должен исполняться через таймер. То есть секунд 20 должна быть пауза после старта.
     
    Последнее редактирование: 8 июл 2017