JACK - мощный и уникальный механизм загрузчика ST-ONE. Это микропрограммы-утилиты, которые существенно расширяют функционал устройства и позволяют выполнять различные служебные задачи, такие как: обновление загрузчика, корректный сброс защиты MCU с сохранением работоспособности, снятие дампов, где это разрешено и много другое.
Вы можете свободно скачать открытые системные утилиты для ST-ONE. Это BIN-файлы которые являются исполняемыми и сразу готовы к использованию. Для того чтобы воспользоваться JACK-утилитой необходимо подключить плату к компьютеру по USB и перевести загрузчик в сервисный режим. Для этого требуется подать логическую одиницу (Vcc) на PIN2 платы ST-ONE (PC0) или выполнить команду "label SRV" из командной строки, находясь на диске.
После подачи команды перехода в сервисный режим, диск с прошивкой будет отключен, а на его месте появится сервисный диск с системной меткой ST-ONE BOOT и стандартной иконкой.
Индикатор платы перестанет моргать и будет постоянно светиться. Это означает «останов» системы и успешный переход в «сервисный режим». Система находится в режиме ожидания и готова к служебным задачам.
Сервисный диск содержит всего два файла:
Файл | Размер, байт | Назначение |
---|---|---|
bootldr.bin | 32768 | Код загрузчика контроллера |
jack.bin | 8192 | Заготовка для загрузки JACK-утилиты. Файл заполнен 0x00 |
Можно скопировать текущий загрузчик контроллера с целью его хранения на случай аварийного восстановления системы, так как загрузчик является персонализированным и его нельзя использовать в другом устройстве, с другим аппаратным UniqueID. Это необходимо для реализации внутренних механизмов защиты и контроля.
Файл-заготовка для JACK является пустым и служит для того, чтобы застолбить место в файловой системе служебного диска. Не удаляйте этот файл. При копировании необходимых JACK-утилит используйте строго операцию замены, а не удаления и последующего копирования файлов. В противном случае, операционная система компьютера может внести некорректные изменения в файловую таблицу сервисного диска. За один раз может быть выполнена одна служебная утилита.
Запуск JACK происходит автоматически. После того как утилита была скопирована на сервисный диск, необходимо снова подать команду «сервисный режим» (PC0). Произойдет выход в нормальный режим. Загрузчик увидит, что загружена задача и тут же передаст ей управление. Таким образом будет исполнен код содержащийся в загруженной утилите.
Внимание! В случае защиты платы опцией FW_PROTECT выполнение JACK-утилит ограничено. В целях безопасности, допускается работа исключительно утилиты обновления загрузчика, так как перед запуском JACK системная память будет принудительно стерта. Таки образом, невозможно слить прошивку, закрытую в кристалле, с помощью «пиратского» JACK-файла. После такой операции потребуется повторная установка прошивки, если необходимо критическое обновление загрузчика.
Рассмотрим, для примера, операцию обновления загрузчика контроллера. Для этого понадобится сам файл загрузчика и JACK-утилита для его обновления.
Подключаем плату к компьютеру и переходим в «сервисный режим». Откроется сервисный диск. Заменяем файлы bootldr.bin и jack.bin на новые и подаем команду выхода из сервисного режима (PC0). Загрузчик определит, что есть задачи на выполнение и передаст управление JACK.
Внимание! Если до этого плата была защищена опцией FW_PROTECT - произойдет уничтожение прошивки и корректное снятие защиты, полное обнуление кристалла, а затем восстановление загрузчика в автоматическом режиме. При этом обязательно необходима установка BOOT0 и BOOT1 в состояние логической единицы (Vcc). В противном случае операция не завершится корректно и данные будут повреждены. Для восстановления работоспособности устройства понадобится программатор. Если все прошло успешно, по завершении работы JACK, необходимо BOOT0 и BOOT1 вернуть в состояние логического нуля (GND) и перезагрузить устройство.
В случае штатного обновления, без необходимости снятия защиты, операция пройдет полностью автоматически и не требует вмешательства. Индикатор будет показывать все фазы процесса: форматирование области загрузчика, запись тела загрузчика, верификация данных. Не прерывайте цикл операций до завершения, иначе данные могут быть повреждены, а устройство станет неработоспособным.
По завершении работы JACK, индикатор контроллера будет моргать в нестандартном режиме: плавно зажегся - плавно погас. Это означает что JACK «уснул» и все работы завершены. Устройство готово к использованию.