• Система автоматизации с открытым исходным кодом на базе esp8266/esp32 микроконтроллеров и приложения IoT Manager. Наша группа в Telegram

После erase flash не работают прошивки.

Здраствуйте!
У меня esp-12 с 4Мб памятью. Использую NoOS 2.0 SDK и esptool.
Были проблемы с WiFi и я сделал erase_flash и после этого начались проблемы.
Прошивки пишутся в память, но не работают вообще. Пробовал с любыми прошивками. Раньше они работали нормально, сейчас вообще перестали. При включении питания, с любой прошивкой, синий диод быстро мигает в течении 5-20 сек и все - больше никаких признаков жизни.
Прошивки записываются в память, проверял с помощью verify_flash, но с записью есть одно НО: чтобы записать новую прошивку нужно успеть поставить на запись во время этого мигания или будет

Код:
sergey@sergey-desktop:/opt/Espressif/pr4$ sudo esptool.py  write_flash 0x00000 firmware/0x00000.bin 0x10000 firmware/0x10000.bin
esptool.py v1.2-dev
Connecting...
Running Cesanta flasher stub...
Flash params set to 0x0000
Writing 32768 @ 0x0...
A fatal error occurred: Timed out waiting for packet header
Подскажите, что мне делать/куда глядеть, чтобы процессор заработал с записанными прошивками?


P.S. При полностью стертой памяти, при включении питания светодиод моргает один раз и с записью новой прошивки проблем нет, но после того как новая прошивка записана, начинаются теже проблемы.
P.S Также прикрепил одну из ранее работающих прошивок.
 

Вложения

  • 402.6 KB Просмотры: 7
Получается esp_init_data_default я записывал вместе со своей прошивкой, пробывал во все 3 адреса записывать его (после каждого раза чистил флеш) - не помогло. Также попробовал с -fm dio все три раза - тоже не помогло.
Как я понимаю, теперь нужно глядеть boot log? Или что еще можно попробовать?
А при собственных прошивках, boot будет писать лог тоже?
 

pvvx

Активный участник сообщества
При включении питания, с любой прошивкой, синий диод быстро мигает в течении 5-20 сек и все - больше никаких признаков жизни.
Значит log выводится в TX. Посмотрите, что там пишет.
[inline]esp_init_data_default[/inline] нужен только для двух последних SDK (последний на данное = 2.0.0). Для ранних - если не записан, то системный загрузчик сам сделает - использует резервный, встроенный esp_init_data_default по умолчанию, но некоторые версии SDK в UART ещё выведут портянку дампа (будет долго мигать светодиод при старте )...
Пробуйте зашить прошивку из https://github.com/pvvx/esp8266web/releases/download/0.6.2/fullflash_and_webfs_062.zip установив в esptool или в FLASH_DOWNLOAD_TOOLS:
FLASH_DOWNLOAD_TOOLS Options (all size flash 512k..16Mbytes):
CrystalFreq: 26M
File: fullflash_webXXX.bin
SPI SPEED: 80/40 MHz
SPI MODE: QIO/DIO
FLASH SIZE: 4Mbit (512kbytes) !
ADDR: 0x00000
BAUDRATE: 115200...576000
Там не требуется esp_init_data_default и прочее. Если их нет - сделаются сами...

В SDK 2.0.0 резервный, встроенный блок [inline]esp_init_data_default[/inline] в прошивке есть, но он не используется. Только занимает место и если не найден по старту байт 0x05 в предполагаемом секторе Flash, то прошивка не стартует, а перезагружается через паузу. Такая фича теперь у китайцев.
-------
Модулей ESP-12 много разных. У вас может быть модуль с обрезанным интерфейсом к Flash - не QSPI, а DSPI. Тогда выкиньте данный модуль или используйте другие установки для программирования.
 
Последнее редактирование:
Да, видимо проблема с SDK 2.0. Загрузил вашу прошивку все работает, потом перешел в старую SDK с ней тоже все хорошо, но только вернулся на SDK 2.0 как проблемы проявились опять. Почему я раньше не подумал об этом? Вернусь наверно на старую SDK.
А как можно узнать QSPI или DSPI, а то не нашел способа.
А что вы понимаете под другими установками для программирования? SDK?
 

pvvx

Активный участник сообщества
А как можно узнать QSPI или DSPI, а то не нашел способа.
Если заработала указанная прошивка - у вас всё нормально - QIO (4-битный интерфейс SPI к Flash).
А что вы понимаете под другими установками для программирования? SDK?
В Esptool это:
EsptoolCFG.gif
 
Сверху Снизу