Разработчики IoT-устройств должны обеспечивать гибкость обновления кода и данных. Какой код и какую его часть требуется обновить, как часто обновлять, скорость обновлений — вот основные вопросы и задачи, требующие решения в процессе разработки IoT-устройств. Выбор энергонезависмой памяти (NVM) влияет на решение таких задач и играет важную роль в расчёте времени и скорости обновления данных. NVM-устройства (например, флеш-память NOR-типа) обычно используются в качестве носителя кода прошивки благодаря своим качествам программируемости и надежности. Переписывая частично код прошивки с NVM на устройстве, производители могут легко обновить его функционал.
Обновленная часть кода прошивки должна быть организована в секторах и блоках таким образом, чтобы гибкость была достаточной для обновлений как с целью ограничения, так и с целью максимизации количества сервисов/функций. Поскольку скорость обновлений определяется количеством секторов и блоков, которые необходимо удалить или перепрограммировать, то необходимо помнить о скорости и гибкости при организации обновляемой части прошивки.
Основное ограничение для частоты обновлений — эксплуатационный ресурс памяти устройства. Разработчикам необходимо выполнять множество вычислений для определения подходящих секторов и блоков для записи данных, чтобы не нарушить ограничения NOR-памяти устройства.
Источник: http://embedded-computing.com/articles/flexibility-to-update-firmware-a-key-to-iot-devices/