• Уважаемые посетители сайта esp8266.ru!
    Мы отказались от размещения рекламы на страницах форума для большего комфорта пользователей.
    Вы можете оказать посильную поддержку администрации форума. Данные средства пойдут на оплату услуг облачных провайдеров для сайта esp8266.ru
  • Система автоматизации с открытым исходным кодом на базе esp8266/esp32 микроконтроллеров и приложения IoT Manager. Наша группа в Telegram

Вопрос Ещё раз об обноовлении по воздуху

Br.Misha

New member
Здравствуйте!
Второй день пытаюсь сделать обновление по воздуху для своего девайса.

Наверное, все знают о типичном методе, через boot, user1, user2. Самый первый интересующий меня вопрос: прошивка как-то шифруется или качается с облака не зашифрованной? Просто не хочу, чтобы её стырили.

Вопрос 2: boot.bin (который по адресу 0x00) можно писать самому или обязательно нужно использовать тот, который идет с SDK?

Вопрос 3: Если не использовать обновление по воздуху, тогда при компиляции получаем два файла - 0x00000.bin n 0x40000.bin, которые заливаются по соответствующим адресам. В случае с FOTA, это файлы user1.bin & user2.bin (адреса немножко другие)? Или тут компоновка другая?

Вопрос 4: Целесообразно ли писать свой загрузчик? Раньше писал бутлоадеры для AVR и STM32, там было проще - при старте МК он загружается с адреса 0x00, там бутлоадер, он проверяет наличие новой версии прошивки, качает её и заливает во flash (иногда декодирует предварительно). Ну и затем делается переход по нужному адресу для старта основной прошивки. В случае с ESP алгоритм аналогичен? Может кто подскажет, как это сделать правильно? Основной проблемой, мне кажется, является то, что начиная с адреса 0x40000 во флеше лежит код библиотек, которые нужны чтобы загрузить прошивку. Или я ошибаюсь?

Жду Ваших советов))). Спасибо!
 

MikeK

Member
Здравствуйте,
Вы не нашли ответ на свой вопрос? тема интересует
 

Br.Misha

New member
Я использовал стандартный загрузчик, но прошивку качал "вручную", без использования system_upgrade_start(), а после окончания обновления вызывал system_upgrade_reboot(), модуль перезагружался и запускалась новая прошивка.
 

MikeK

Member
Я правильно понял что вы в свою прошивку вставляете код, который умеет принимать новую прошивку от вашей программы, далее пишете ее куда либо на флеш (это тоже вопрос - сразу же нельзя портить рабочую прошивку, т.е. нужно класть копию куда либо, по окончании приема проверять целостность и только потом переписывать в нужную область? честно говоря я пока не понимаю как это все делается...
 

Br.Misha

New member
Почитайте этот файл Espressif\docs\99C-ESP8266__OTA_Upgrade__EN_v1.5.pdf.
Там делается 2 области памяти для двух прошивок (соответственно, максимальный размер прошивки уменьшается более чем в двое). Первая качает вторую, затем переключается на неё и при следующем обновлении наоборот
 

Br.Misha

New member
Да вот защитить прошивку никак не получится, читается элементарно.
 

MikeK

Member
а читается через что? так же по воздуху? или саму флешку читают напрямую? (извините я не особо в теме этого)
 

MikeK

Member
я имел в виду вопрос защиты прошивки, т.е. ее любой желающий может как-то считать из памяти если она отдельной микрухой лежит?
 
Сверху Снизу