Самообновление прошивки и приложения

На большинстве (но не на всех) платформ объект fd предоставляет несколько методов, с помощью которых приложение Tibbo BASIC/C может обновить прошивку TiOS и само себя.

Для этого приложение сначала получает двоичный файл TiOS и (при необходимости) двоичный файл скомпилированного приложения и сохраняет их в области данных флеш-памяти. Эти данные приложение может сохранять прямо во флеш-секторах с помощью прямого доступа к секторам или в файле данных с помощью файлового доступа. Как данные попадут в устройство, зависит от конструкции приложения. Например, их можно передать по TCP/IP-соединению, получить в HTTP-запросе или другим способом.

Можно также получать и хранить данные в несжатом виде или сжатыми алгоритмом LZO. Приём сжатых данных ускоряет передачу данных, нужных для обновления, и уменьшает объём флеш-памяти, необходимый для их временного хранения.

Когда данные подготовлены, приложение вызывает один из перечисленных ниже методов. Их выполнение копирует данные из области данных флеш-памяти в области TiOS и приложения. После завершения копирования устройство перезагружается и начинает выполнять обновлённую версию TiOS и вашего приложения.

Каким бы методом обновления вы ни пользовались, в данные для обновления всегда должна входить прошивка TiOS. За ней может следовать двоичный файл скомпилированного приложения. Иначе говоря, самообновление всегда перезаписывает TiOS и при желании может перезаписать и ваше приложение.

Доступные методы самообновления

Методы, работающие с данными, которые хранятся во флеш-секторах:

Методы, работающие с данными, которые хранятся в файле:

Внимание

БУДЬТЕ ОЧЕНЬ ОСТОРОЖНЫ! Применение этих методов к неверным данным «выведет из строя» устройство, и дальнейшие удалённые обновления станут невозможны. Придётся ехать на объект и загружать правильную прошивку и/или приложение, возможно через последовательный порт. Страшно, правда?

Исходный материал Tibbo обновлён 12 сентября 2022Оригинал на docs.tibbo.com · Сообщить об ошибке