Проблема загрузки прошивки

Тема в разделе "ESP8266, ESP32", создана пользователем Arduiner001, 3 апр 2018.

  1. Arduiner001

    Arduiner001 Гик

    Всем привет! Откопал тут из ящика старое устройство на ESP32, которое пролежало там больше месяца. Включение показало, что всё работает нормально, но та же самая прошивка не загружается. Вот лог:
    Код (Text):
    Скетч использует 135538 байт (10%) памяти устройства. Всего доступно 1310720 байт.
    Глобальные переменные используют 11124 байт (3%) динамической памяти, оставляя 283788 байт для локальных переменных. Максимум: 294912 байт.
    C:\Users\anton\Documents\Arduino\hardware\espressif\esp32/tools/esptool.exe --chip esp32 --port COM7 --baud 921600 --before default_reset --after hard_reset write_flash -z --flash_mode dio --flash_freq 80m --flash_size detect 0xe000 C:\Users\anton\Documents\Arduino\hardware\espressif\esp32/tools/partitions/boot_app0.bin 0x1000 C:\Users\anton\Documents\Arduino\hardware\espressif\esp32/tools/sdk/bin/bootloader.bin 0x10000 C:\Users\anton\AppData\Local\Temp\arduino_build_431498/Blink.ino.bin 0x8000 C:\Users\anton\AppData\Local\Temp\arduino_build_431498/Blink.ino.partitions.bin
    esptool.py v2.1
    Connecting........_
    Chip is ESP32D0WDQ6 (revision 1)
    Uploading stub...
    Running stub...
    Stub running...
    Changing baud rate to 921600
    Changed.
    Configuring flash size...
    Warning: Could not auto-detect Flash size (FlashID=0x0, SizeID=0x0), defaulting to 4MB
    Compressed 8192 bytes to 47...

    Writing at 0x0000e000... (100 %)
    [здесь зависает на несколько минут]
    Wrote 8192 bytes (47 compressed) at 0x0000e000 in 0.0 seconds (effective 9362.0 kbit/s)...

    A fatal error occurred: Timed out waiting for packet header
    A fatal error occurred: Timed out waiting for packet header
    Итак, что мне не нравится. Во-первых, как мы видим, скетч имеет размер около 132 КБ, но esptool пишет, что сжал 8 КБ в 47 байт(!). Во-вторых, он не смог определить размер флеш-памяти. В-третьих, происходит ошибка.
    Вспомнил, что в текущей, уже загруженной прошивке есть функция просмотра файловой системы на флеш-памяти. После вывода первых четырёх (это число не меняется) файлов происходит Guru Meditation Error. Отслеживание при помощи ESP Exception Decoder показало, что ошибка произошла в функции чтения памяти, которую написали разработчики arduino-esp32.
    Полагаю, что что-то произошло с памятью, но раз прошивка запускается, то очевидно, что это "что-то" произошло в области, следующей за прошивкой и этими четырьмя файлами.

    Какие предположения?
     
  2. Arduiner001

    Arduiner001 Гик

    После полной разборки схемы всё заработало как часы. Возможно, проблема была в большом потреблении, но я не думаю, что SD карта, дисплей ILI9341 и клавиатура так много потребляют.