• Система автоматизации с открытым исходным кодом на базе 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
я имел в виду вопрос защиты прошивки, т.е. ее любой желающий может как-то считать из памяти если она отдельной микрухой лежит?
 
Сверху Снизу