Bootloader, он же загрузчик, представляет собой микропрограмму, которая всегда находится в постоянной памяти (ROM) контроллера и запускается каждый раз, как только подается питание на устройство. Этот код первым выполняется и получает управление при каждом старте устройства.
ST-ONE представляет собой мини BIOS, только для маленькой системы.
ST-ONE имеет крайне малый размер для его огромных возможностей - всего 32 Кбайта. При запуске загрузчика происходит базовая инициализация устройства и другие важные процессы старта: восстановление текущего времени из backup-домена, при необходимости; проведение контрольных программных и аппаратных проверок; загрузка параметров запуска устройства; контроль лицензирования, установка и обновление ПО; защита устройства и ряд других задач. После завершения процессов инициализации и контроля, загрузчик передает управление основной программе (прошивке) и завершает свою работу. Для пользователя это выглядит незаметным, так как происходит мгновенно, а устройство сразу начинает выполнять свои функции.
ST-ONE обладает очень важной особенностью - он превращает MCU, в котором запускается, в стандартный USB-диск! Это позволяет подключить систему к компьютеру или смартфону и общаться с устройством путем обмена файлами как с обычной флешкой. Вы можете загрузить файлы с микропрограммой (прошивкой) и ее обновлениями путем обыкновенного копирования. Это исключает понятие "прошивки" устройства, а процедура обновления ПО ваших изделий становится простой и понятной даже неподготовленному пользователю. Так же на эмулируемом диске доступны конфигурационные файлы с параметрами (INI), в которых можно сконфигурировать начальное поведение вашего устройства или получить дополнительную информацию. Важной особенностью является возможность загрузчика обновлять самого себя! Получайте новый функционал и улучшения легким движением без программатора.
ST-ONE обладает большим базовым функционалом для управления микропрограммами и устройством. Имеет уникальный механизм расширения собственного функционала. Помимо богатых возможностей самого загрузчика, реализован механизм плагинов, который получил название «JACK». Это микропрограммы-расширения - утилиты, которые можно подгружать прямо в момент работы бутлоадера не затрагивая основную систему. Перепрошивка или какие-либо изменения не требуется. Загрузка JACK-файла осуществляется простым копированием на сервисный диск - это второй диск, эмулируемый бутлоадером. JACK стирается после отключения питания или сброса системы в штатном режиме.
Такой подход позволяет разнести возможности на по-настоящему неограниченные просторы не изменяя размер самого загрузчика и рамках ограниченных ресурсов. Jack-файлы для загрузчика можно найти в соответствующем разделе или создавать самостоятельно. Эти подпрограммы могут выполнять различные сервисные задачи самого загрузчика или устройства: снятие дампов, индикация состояний и т.п. Могут являться самостоятельными микропрограммами, например: мониторами портов, реализацией интерфейсов передачи данных, работать с периферией и памятью, тестировать устройство и многое другое! Возможности JACK-механизма ограничены лишь размером плагина и уровнем квалификации разработчика. При этом размер JACK-файла может быть даже больше самого загрузчика. Точный размер зависит от версии бутлоадера и чипа.
JACK доступен в сервисном режиме работы бутлоадера. Переключение в сервисный режим происходит специальной программной или аппаратной командой. Так же в сервисном режиме можно скачать с кристалла и сам загрузчик в виде файла, с целью резервного хранения на других носителях, на случай краха системы или потребности в восстановлении.
ST-ONE имеет мощный механизм лицензирования микропрограмм. Это позволяет распространять шифрованные прошивки в свободном доступе по открытым каналам связи, а запускать только в целевых устройствах. От пользователя потребуется ввести персональный или глобальный ключ на распространяемое программное обеспечение, если он необходим. Поддерживается несколько механизмов лицензирования ПО.
Для шифрования используется мощный механизм на базе AES128, который признан Агентством национальной безопасности США как стандарт безопасности.
Распаковка прошивок происходит с использованием открытого и закрытого ключей. Возможность ввода ключа имеется в файлах конфигурации,
а целостность ПО проверяется вычисляемыми MD5-суммами.
Загрузчик принимает следующие типы ПО:
Открытые прошивки доступны для тиражирования и скачивания прямо с кристалла микроконтроллера в виде файла. Готовы к распространению или перепрошивке в другие устройства. Зашифрованные прошивки недоступны для скачивания в открытом виде с MCU. После установки закрытой прошивки в кристалл, ряд механизмов программной и аппаратной защиты не дадут просто так скачать или прочитать микропрограмму. Это важно для коммерческих продуктов, которым необходимо обновление и поддержка, но требуется лицензионная и авторская защита.
Простой и понятный механизм обновления и передачи микропрограмм конечным потребителям, поднимает на совершенно новый уровень формат работы с пользователями устройств. Существенно упрощает работу обслуживающему персоналу снижая издержки.
Надежность. ST-ONE является хорошо оптимизированным, высокопроизводительным и мощным решением. Отказоустойчивость загрузчика находится на высоком уровне, а механизмы самозащиты и контроля целостности не позволят внести несанкционированные модификации в его код. В случае непреднамеренного разрушения загрузчика, под влиянием сторонних факторов или неправильная работа кода так же будет максимально исключена - произойдет аварийный останов системы.
Гибкое управление поведением загрузчика и процессом старта устройства. Возможность аппаратного управления загрузчиком и его функциями путем подачи сигналов на заданные PIN-ы, или полное программное управление с компьютера, смартфона, или планшета - путем подключения к USB.
Реализована возможность менять параметры бутлоадера в привычном для многих INI-файле, в интуитивно-понятном формате через текстовый редактор. В настройки вынесены основные механизмы контроля и управления эмулируемой файловой системой, схема загрузки, настройка аппаратного обеспечения, конфигурация PIN-ов и др. PIN-ы управления и индикации, легко назначаются и переназначаются в конфигурационных файлах. Указывается метод управления - логический 0 или 1. Это значит, что загрузчик может быть тонко настроен и использован на различных аппаратных платформах, отличных от ST-ONE.
В файловой системе загрузчика, присутствует генерируемый, информационный файл с технической информацией. В нем можно получить краткую сводку по текущей системе: модель чипа, uniqueID, контрольные суммы MD5 прошивки, системное время, адреса точек входа для сборки прошивок, справочные данные по управлению загрузчиком и некоторые другие параметры. Этих данных достаточно для свободной работы с устройством. Для контроля целостности прошивки, сборки собственных микропрограмм или контакта с удаленной службой поддержки не обращаясь к документации и другим источникам.
Одним из основных преимуществ ST-ONE как USB-FLASH диска, является то, что к использованию доступна вся память кристалла, за исключением размера самого загрузчика. Это достигается путем мощных, нестандартных решений без вспомогательных средств и дополнительных микросхем памяти - только средствами MCU. Используется прозрачная эмуляция собственной, модифицированной файловой системы FAT12, что приближает эффективность использования ресурса контроллера к максимуму.
Это большое достоинство по сравнению с другими решениями этого класса! Так как в известных сторонних решениях может использоваться только до 45% памяти кристалла под основной код, еще 45% на обслуживание/обновление прошивки; до 7% - загрузчик, около 3% накладные расходы. В других случаях используются вспомогательные технические средства - дополнительные микросхемы памяти, программное и аппаратное обеспечение, драйвера, другие интерфейсы и механизмы, что значительно усложняет конечное устройство, снижая отказоустойчивость, универсальность и надежность. Увеличивает стоимость и энергопотребление. Очень многие загрузчики, в том числе под другие системы, не умеют обновлять сами себя - требуется программатор. ST-ONE не имеет таких недостатков, а перечень ключевых преимуществ и возможностей еще более широк (см. в соответствующих разделах документации).
Фактически, системные требования отсутствуют. Устройство имеющее на борту загрузчик ST-ONE использует стандартизированные протоколы и механизмы обмена по шине USB. Это придает невероятную гибкость, свободу действий и кросс-платформенность. Пользователь не зависит от программного обеспечения вендора. Не требуется программатор или другие технические средства. Уровень квалификации технического персонала может быть минимальным.
Для работы с устройством под управлением ST-ONE не потребуются драйвера. Загрузчик совместим со всеми операционными системами: Windows, Linux, Android, MacOS и др. Не требует дополнительных модулей и программных продуктов. Управление устройством осуществляется с помощью системных утилит, которые есть в любой операционной системе. Сразу готов к работе после подачи питания или подключения.