Едва ли для кого-то окажется сюрпризом, что ключи Guardant Code предназначены для продвинутых разработчиков. В самом деле, адаптировать часть приложения под ARM-процессор с производительностью 60 MIPS, учесть все ограничения платформы, успешно интегрировать ключ в приложение — и все это при помощи консольных утилит, компилятора GCC и нескольких страниц документации — задача не для начинающих.
Самый ответственный для наших клиентов этап при использовании Guardant Code — это выбор кода для портирования в ключ. Здесь нет универсальных решений, только советы и рекомендации. Вторая часть работы — техническая. Она включает в себя подготовку маски электронного ключа, выделение памяти, портирование кода, компиляцию, отладку и загрузку в ключ. И вот этот этап можно в значительной степени упростить и автоматизировать, используя возможности современных сред разработки. Мы осуществили это на примере Microsoft Visual Studio.
Новая IDE от Microsoft (как и предыдущие ее версии) — это очень мощное средство, особенно когда речь идет о программировании на С/С++. Ее можно настраивать «под себя» сколь угодно гибко, но что еще важно, в Visual Studio практически любые действия поддаются автоматизации. Вот лишь часть того, что позволяет сделать мастер проектов Guardant Code:
- удобная настройка используемых секторов памяти и RAM;
- подключение компилятора gcc и настройка makefile;
- подключение отладочной библиотеки;
- создание шаблона загружаемого кода;
- создание демонстрационного проекта для вызова загружаемого кода.
В результате работы Мастера разработчик получает готовый к сборке проект загружаемого кода с двумя настроенными конфигурациями. Первая конфигурация предназначена для отладки разрабатываемого кода. Компиляция в этой конфигурации происходит под платформу Windows, а для использования внутреннего API ключей Guardant Code используется специальным образом подключенная отладочная библиотека. Кстати, работа загружаемого кода под Windows с отладочной библиотекой максимально приближена к реальному функционированию, т. к. вызовы внутреннего API ключа не эмулируются, а транслируются внутрь ключа.
Вторая конфигурация — релизная, и используется ровно так, как предполагает ее название. В этой конфигурации вместо встроенного компилятора Visual Studio используется сборка GCC и компиляция с помощью makefile. Отладочная библиотека автоматически отключается, а сборка проекта в релизной конфигурации приводит к генерации пары файлов — bin/bmap, готовых к загрузке в электронный ключ из GrdUtil.