...
- Проект 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.
- Шаблон проекта загружаемого кода. На его основе можно разрабатывать собственные модули.
- Функция main(), возвращающая определенный код (демонстрация передачи параметров dwRet и dwP1).
- Демонстрация использования буферов ввода-вывода.
- Демонстрация работы необнуляемого буфера (внутренняя память). В одном вызове можно записать данные, а в следующем – считать обратно.
- Разделение загружаемого приложения на несколько логических частей (обработка команд).
- Управление индикатором. Демонстрация работы функций GcaLedOn()/GcaLedOff().
- Создание интерфейса к EEPROM. Обеспечивает чтение/запись участка в 512 байт EEPROM блоками по 16 байт. Блоки шифруются на AES-128 в режиме ECB, на ключе, хранящемся внутри загружаемого приложения.
- Демонстрация работы с защищенными ячейками. Проход по аппаратным алгоритмам и получение информации о них (сервисы времени, чтения, модификации, счетчик запусков).
- Модификация содержимого заданной защищенной ячейки.
- Демонстрация функций работы с таймером (только для Guardant Code Time). Получение текущего времени и валидности RTC. Функция установки времени отсутствует. Единственный способ установить время в электронном ключе – при помощи GrdUtil.
- Получение времени жизни защищенной ячейки.
- Функции криптографии. Демонстрация генерации ключевой пары, подписи и проверки этой подписи по ECC160 с возвратом всех буферов в PC.
- Использование аппаратного алгоритма для подписи.
- Подсчет хэша.
- Возврат блока случайных данных.
- Отличие форматов хранения чисел с плавающей точкой в GCC ARM и PC.
- Демонстрация использования встроенных математических функций.
- Пример реализации вычислительной задачи (вычисление заданной точки на кривой Безье порядка N, параметры кривой хранятся внутри загружаемой микропрограммы).
- Реализация целочисленной задачи. Шифрование на алгоритме Blowfish для блока данных на заданном ключе.
- Демонстрация использования отладочной библиотеки.Для запуска примера необходимо запустить проект 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- Быстродействие 120 MIPS 32-битных операций
- 20 кб ОЗУ для программы пользователя
- Около 128 кб (с возможностью расширения до 352 кб) для программы пользователя (около 20000 строк на Си для варианта 128кб и около 60000 строк на Си для варианта 384 кб)
- Приблизительная скорость операций с плавающей точкой: