Интегрируем поддержку Guardant Code в Visual Studio

В середине декабря в нашем московском офисе состоялся семинар, посвященный особенностям использования электронных ключей Guardant Code. Мероприятие удалось, несмотря на то, что проводилось впервые. В числе прочего, на семинаре мы продемонстрировали работу мастера проектов для Visual Studio, о котором и пойдет речь в данном посте.

Едва ли для кого-то окажется сюрпризом, что ключи 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.