Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

  • Проект Visual Studio 2005 .NET в папке Win32, демонстрирующий использование Guardant API (т. е. необходимую инициализацию и запуск загруженного кода)
  • Пример загружаемого кода в папке Loadable Code, содержащий проект GCC-ARM в виде исходного кода на C и makefile.При сборке примера получаются *.bin и *.bmap файлы, которые необходимо указывать GrdUtil для генерации GCEXE-файла соответствующего алгоритма.

 

Anchor
_Toc239831230
_Toc239831230
Anchor
_Toc243829463
_Toc243829463
Anchor
_Toc244330154
_Toc244330154
Anchor
_Toc326167589
_Toc326167589
Структура используемого файла маски

Файл маски (Mask.nsd), используемый в примерах для ключей Guardant Code / Code Time, отличается от файла маски GrdUtil по умолчанию (default.nsd) и имеет следующую структуру, одинаковую для всех примеров:

...


По умолчанию файл маски Mask.nsd находится в директории %Program Files%\ Guardant* *Guardant %#%%Общий код%\ Samples\ARM.
Важная информация
Для корректной работы примеров Guardant Code необходимо записать Mask.nsd в ключ при помощи GrdUtil.

Anchor
_Toc239831231
_Toc239831231
Anchor
_Toc243829464
_Toc243829464
Anchor
_Toc244330155
_Toc244330155
Anchor
_Краткая_характеристика_примеров
_Краткая_характеристика_примеров
Anchor
_Toc326167590
_Toc326167590
Краткая характеристика примеров

Важная информация
Для корректной работы примеров Guardant Code необходимо записать Mask.nsd в ключ при помощи GrdUtil.

  1. Шаблон проекта загружаемого кода. На его основе можно разрабатывать собственные модули.
  2. Функция main(), возвращающая определенный код (демонстрация передачи параметров dwRet и dwP1).
  3. Демонстрация использования буферов ввода-вывода.
  4. Демонстрация работы необнуляемого буфера (внутренняя память). В одном вызове можно записать данные, а в следующем – считать обратно.
  5. Разделение загружаемого приложения на несколько логических частей (обработка команд).
  6. Управление индикатором. Демонстрация работы функций GcaLedOn()/GcaLedOff().
  7. Создание интерфейса к EEPROM. Обеспечивает чтение/запись участка в 512 байт EEPROM блоками по 16 байт. Блоки шифруются на AES-128 в режиме ECB, на ключе, хранящемся внутри загружаемого приложения.
  8. Демонстрация работы с защищенными ячейками. Проход по аппаратным алгоритмам и получение информации о них (сервисы времени, чтения, модификации, счетчик запусков).
  9. Модификация содержимого заданной защищенной ячейки.
  10. Демонстрация функций работы с таймером (только для Guardant Code Time). Получение текущего времени и валидности RTC. Функция установки времени отсутствует. Единственный способ установить время в электронном ключе – при помощи GrdUtil.
  11. Получение времени жизни защищенной ячейки.
  12. Функции криптографии. Демонстрация генерации ключевой пары, подписи и проверки этой подписи по ECC160 с возвратом всех буферов в PC.
  13. Использование аппаратного алгоритма для подписи.
  14. Подсчет хэша.
  15. Возврат блока случайных данных.
  16. Отличие форматов хранения чисел с плавающей точкой в GCC ARM и PC.
  17. Демонстрация использования встроенных математических функций.
  18. Пример реализации вычислительной задачи (вычисление заданной точки на кривой Безье порядка N, параметры кривой хранятся внутри загружаемой микропрограммы).
  19. Реализация целочисленной задачи. Шифрование на алгоритме Blowfish для блока данных на заданном ключе.
  20. Демонстрация использования отладочной библиотеки.Для запуска примера необходимо запустить проект Demo.sln

Пример демонстрирует, как можно использовать отладочную DLL в проектах. В подкаталоге LoadableCode содержится проект загружаемого модуля, который собирается в виде самостоятельного модуля, так и в составе проекта Demo.sln.
По умолчанию в проекте задано использование отладочной библиотеки, при этом код из файла lc.c собирается в составе VS-проекта. Если убрать опцию DEBUG_DLL и прошить в ключ маску из подпапки LoadableCode, код из файла lc.c будет выполняться уже внутри ключа. Как видно, в lc.c допустимо использование вызовов Guardant Code API.
Однако в случае исполнения в составе VS-проекта налагается ограничение на функцию GcaExit(), и она не вызовет выход из кода в lc.c.

Anchor
_Toc326167591
_Toc326167591
Характеристики и вычислительные возможности Guardant Code

  1. Быстродействие 120 MIPS 32-битных операций
  2. 20 кб ОЗУ для программы пользователя
  3. Около 128 кб (с возможностью расширения до 352 кб) для программы пользователя (около 20000 строк на Си для варианта 128кб и около 60000 строк на Си для варианта 384 кб)
  4. Приблизительная скорость операций с плавающей точкой: