Скрыть объявление
На нашем форуме недоступен просмотр изображений для неавторизованных пользователей. Если Вы уже зарегистрированы на нашем форуме, то можете войти. Если у Вас еще нет аккаунта, мы будем рады, если Вы к нам присоединитесь. Зарегистрироваться Вы можете здесь.

Вопрос А кому-нибудь удалось собрать из примера esphttpd с возможностью OTA?

Тема в разделе "Unofficial Developer Kit", создана пользователем Slacky, 14 май 2018.

Метки:
  1. Slacky

    Slacky Читатель

    Сообщения:
    202
    Симпатии:
    10
    Плата - Wemos D1 mini 4 мегами на борту.

    Я как ни старался, ничего не получается. Заливать он просит или user2.bin или *.ota. При заливке user2.bin плата просто зависает и сбрасывается по wdt, но потом уже и не грузится. Пишет такое -

    Код (Text):
    1. 2nd boot version : 1.7(5d6f877)
    2. SPI Speed : 40MHz
    3. SPI Mode : QIO
    4. SPI Flash Size & Map: 32Mbit(1024KB+1024KB)
    5. jump to run user2 @ 101000
    6.  
    7. Fatal exception 0(IllegalInstructionCause):
    8. epc1=0x40211371, epc2=0x00000000, epc3=0x00000000, excvaddr=0x00000000, depc=0x00000000
    А если не исключение, то error magic!

    Если же залить *.ota, то файл прекрасно заливается, но прошивка не меняется, после сброса работает то, что было до заливки.

    Может кто пнет в нужную сторону?

    Спасибо.
     
  2. Slacky

    Slacky Читатель

    Сообщения:
    202
    Симпатии:
    10
    При сборке получается три файла - *.user1.bin, *.user2.bin и *.ota. Собственно два последних и пытаюсь залить через форму, которая лежит в html/flash.

    Можно для тупых более развернуто - что такое "файл параметров WiFi" ?

    Плата запускается в STA режиме, подключается к роутеру. На страничку сервера можно зайти по адресу 192.168.100.20 ...
     
  3. Slacky

    Slacky Читатель

    Сообщения:
    202
    Симпатии:
    10
    Про это я знаю.

    Код (Text):
    1. ### Flash size 32Mbit-C1: 1024KB+1024KB
    2.     boot_v1.2+.bin              0x00000
    3.     user1.2048.new.5.bin        0x01000
    4.     esp_init_data_default.bin   0x3fc000 (optional)
    5.     blank.bin                   0xfe000 & 0x3fe000
    Но тогда в makefile.ota ошибка. Потому что при таких настройках

    Код (Text):
    1. BLANKPOS=$$(printf 0x%X $$(($(ESP_SPI_FLASH_SIZE_K)*512-0x2000)))
    2. INITDATAPOS=$$(printf 0x%X $$(($(ESP_SPI_FLASH_SIZE_K)*512-0x4000)))
    3.  
    blank.bin и esp_init_data_default.bin заливается по адресам

    Код (Text):
    1. c:/Espressif/utils/ESP8266/esptool.exe --port COM6 --baud 921600 write_flash --flash_freq 40m --flash_mode qio --flash_size 32m-c1 0x1FE000 c:/Espressif/ESP8266_SDK/bin/blank.bin 0x1FC000 c:/Espressif/ESP8266_SDK/bin/esp_init_data_default.bin
     
  4. Slacky

    Slacky Читатель

    Сообщения:
    202
    Симпатии:
    10
    Ну в общем сходу повторить не удалось, пришлось почитать, как строится загрузка и с какого адреса. В принципе все правильно, user2.bin пытается стартовать с 101000. Останется только понять, куда сервер грузит прошивку и прочее.

    Вопрос после прочтения доков - что за файл master_device_key.bin?
     
  5. Slacky

    Slacky Читатель

    Сообщения:
    202
    Симпатии:
    10
    В общем немного разобрался в принципе заливки файлов. Но все равно не до конца.

    Во-первых. Если у вас на борту флеш 4 мега, то нужно дорабатывать makefile.ota и
    Код (C):
    1. CgiUploadFlashDef uploadParams = {}
    в user_main.c, так как там все заточено на 512 мег.

    Далее. У него или ошибка в коде или я не разобрался. Если нужно заливать user2.bin то он льется по адресу 0x1000 всегда, а это приводи к краху системы. Правильно при user2.bin заливается только файл *.ota.

    А вот если нужно залить user1.bin, то уже к краху приводит заливка файла *.ota, а файл user1.bin прекрасно заливается.

    Но все равно, обновления заливаются только два раза, т.е. первый раз для user2.bin, второй раз для user1.bin,. А вот третья попытка заливки user2.bin приводит к исключению.
    Код (Text):
    1.  ets Jan  8 2013,rst cause:2, boot mode:(3,6)
    2.  
    3. load 0x40100000, len 2592, room 16
    4. tail 0
    5. chksum 0xf3
    6. load 0x3ffe8000, len 764, room 8
    7. tail 4
    8. chksum 0x92
    9. load 0x3ffe82fc, len 676, room 4
    10. tail 0
    11. chksum 0x22
    12. csum 0x22
    13.  
    14. 2nd boot version : 1.7(5d6f877)
    15. SPI Speed : 40MHz
    16. SPI Mode : QIO
    17. SPI Flash Size & Map: 32Mbit(1024KB+1024KB)
    18. jump to run user2 @ 101000
    19.  
    20. Fatal exception 28(LoadProhibitedCause):
    21. epc1=0x4021ebf7, epc2=0x00000000, epc3=0x00000000, excvaddr=0x00000000, depc=0x00000000
     
  6. Kitaro

    Kitaro Новичок

    Сообщения:
    9
    Симпатии:
    1
    Добрый день. Извините, что я так врываюсь, а при сборке примера у Вас не бьіло ошибки
    mingw32-make.exe: *** No rule to make target 'libesphttpd/mkupgimg/', needed by 'libesphttpd/mkupgimg/mkupgimg'. Зупинка.
     

Поделиться этой страницей