(2012-08-29 13:42:00 отредактировано Jungle)

Вопросы и замечания по урокам.

Имеется ключ Code Time.

1. Пытаюсь записать в ключ файл lesson1.nsd (с помощью GUI-мастера). Выдаётся сообщение

Ключ для записи текущего образа не найден. Вставьте соответствующий ключ или конвертируйте образ в формат текущего ключа

Пытаюсь конвертировать. Доступные варианты:

  • Guardant Sign

  • Guardant Time

Выбираю Time, конвертирую, сохраняю, пробую записать - та же ошибка

Программа:

Koмплeкт Paзpaбoтчикa Guardant     Bepcия:   6, 0, 0, 91   Cбopкa:   91
GrdMask.dll                        Bepcия:   6, 0, 0, 69   Cбopкa:   69
GrdHexEdit.dll                     Bepcия:   6, 0, 0, 28   Cбopкa:   54

Ключ:

Модель                  Guardant Code Time USB 
Идентификационный номер ********h (**********d) 
Коды доступа            ******* 
Дата и время выпуска    18 Oct 2011 15-21-24 
Поддержка               Windows, PI, TRU, RTC, AES, ECC, Code 
Версия ключа            0.1
Тип микроконтроллера    09
Номер программы         1, 0, 2, 22
Номер протокола         00
Версия клиента          0.00
Версия драйвера         6.00

===

2. Примеры ARM не компилируются. Установил Yagarto + Tools. Make template работает, при make получаю:

d:\_guardant_\Samples\ARM\02 - IO buffers\Loadable Code>d:\coding\yagarto\bin\make.exe

-------- begin --------
--Check WinARM--
/usr/bin/sh: arm-elf-gcc: command not found
--Check Yagarto--
arm-none-eabi-gcc.exe: fatal error: no input files
compilation terminated.

Compiling: main.o main.c
arm-none-eabi-gcc.exe: fatal error: no input files
compilation terminated.
make: *** [main.o] Error 1

Пробовал пути без пробелов - тот же результат. Что я делаю не так?

Вообще, неплохо было бы сделать шаблоны проектов для популярных IDE. Например, Секьюлэб в комплект разработчика включили компилятор SDCC и IDE Code::Blocks с готовым шаблоном. Очень удобно.

Я, конечно, попытаюсь разобрать makefile и создать шаблон самостоятельно, но хотелось бы иметь готовый.

===

3. Уже спрашивал по почте, но, видимо, был не совсем правильно понят. Спрошу ещё раз.

Возможно ли создать в ключе область данных, доступ к которой будет возможен исключительно из кода внутри ключа? Т.е. чтоб из клиентской программы даже при наличии кодов доступа невозможно было бы получить доступ к этой области данных.

(2012-08-30 23:08:59 отредактировано Антон Тихиенко)

Re: Вопросы и замечания по урокам.

Добрый день, Jungle.
По Вашим вопросам:

1) Уточните, пожалуйста, для какого ключа изначально создавался файл "lesson1.nsd"? С какими именно трудностями Вы столкнулись при создании файла маски в GrdUtil сразу для ключа Code Time? В обычном случае достаточно сразу создать образ нужного ключа и сохранить его как nsd-файл.

2) Данная ошибка возникает, когда в конфигурационном файле утилиты "make" (makefile) указаны некорректные пути к заголовочным файлам, библиотекам, сервисным утилитам (hex2bin.exe и map_parse.exe) и/или компилятору.
---------------------------------------------------------------------------------------------------
# Path of GrdAPI.h and GcaAPI.h files:
CFG_INCLUDE_DIR         =     //папка с заголовочными файлами

# Path of library:
CFG_LIB_DIR             =        //библиотеки

# Path of service utils:
CFG_SYS_DIR             =         //сервисные утилиты

# Yagarto 4.6.0 (new Code dongles):
ARM_TOOLS_PREFIX2 =    //компилятор
----------------------------------------------------------------------------------------------------

Таким образом, для того, чтобы сборка прошла успешно необходимо в "makefile" правильно указать вышеперечисленные пути (общие рекомендации можно найти во второй части нашего руководства пользователя на стр. 64).
Также данный вопрос рассматривался тут

Re: Вопросы и замечания по урокам.

Антон Тихиенко пишет:

Добрый день, Jungle.
По Вашим вопросам:

1) Уточните, пожалуйста, для какого ключа изначально создавался файл "lesson1.nsd"? С какими именно трудностями Вы столкнулись при создании файла маски в GrdUtil сразу для ключа Code Time? В обычном случае достаточно сразу создать образ нужного ключа и сохранить его как nsd-файл.

Я скачал полный курс уроков (3 урока для Delphi и C#).
В файле Курс API - Урок 1 Основы API (Delphi).pdf в п2.1. написано:

...Чтобы не тратить время на создание маски вручную, воспользуемся уже созданным для нашего урока
файлом маски ключа «lesson1.nsd». Запустите утилиту «Программирование ключей Guardant» и откройте файл маски «lesson1.nsd» (Файл → Открыть), после этого запишите данную маску в ваш ключ (Ключ → Запись в ключ).

Не знаю для какого ключа создавался файл, но в утилите написано:

В электронный ключ, совместимый с Guardant Stealth III, для клиента Anonymous будет записан образ StealthIIIMask  2.0.

Если сковертировать в Guardant Time, то вместо Guardant Stealth III будет написано Guardant Time.

===

2) Данная ошибка возникает, когда в конфигурационном файле утилиты "make" (makefile) указаны некорректные пути к заголовочным файлам, библиотекам, сервисным утилитам (hex2bin.exe и map_parse.exe) и/или компилятору.
---------------------------------------------------------------------------------------------------
# Path of GrdAPI.h and GcaAPI.h files:
CFG_INCLUDE_DIR         =     //папка с заголовочными файлами

# Path of library:
CFG_LIB_DIR             =        //библиотеки

# Path of service utils:
CFG_SYS_DIR             =         //сервисные утилиты

# Yagarto 4.6.0 (new Code dongles):
ARM_TOOLS_PREFIX2 =    //компилятор
----------------------------------------------------------------------------------------------------

Таким образом, для того, чтобы сборка прошла успешно необходимо в "makefile" правильно указать вышеперечисленные пути (общие рекомендации можно найти во второй части нашего руководства пользователя на стр. 64).
Также данный вопрос рассматривался тут

Ну, не знаю. Я скачал пример с сайта yagarto и успешно его скомпилировал согласно инструкции на сайте.

В makefile я уж как ни изгилялся: и относительные пути ставил, и абсолютные, и без пробелов, и с пробелами, и с кавычками, и без кавычек, с обратной и прямой косымыми разделителями путей - та же ошибка.
Guardant SDK - в папке по умолчанию, yagarto - в папке без пробелов.

(2012-08-30 23:07:01 отредактировано Антон Тихиенко)

Re: Вопросы и замечания по урокам.

Jungle пишет:

Не знаю для какого ключа создавался файл, но в утилите написано:

В электронный ключ, совместимый с Guardant Stealth III, для клиента Anonymous будет записан образ StealthIIIMask  2.0.

Если сковертировать в Guardant Time, то вместо Guardant Stealth III будет написано Guardant Time.

Соответственно этот nsd-образ был создан для записи в ключи модели Stealth III, и конвертировать его в образ ключа Code Time не получиться.
В данном случае нужно сформировать (стандартным способом через GrdUtil, см. руководство пользователя, ч.1, стр.31) нужный, пустой образ для записи в ключ Guardant Code самостоятельно (что не должно занять много времени) и создать в нем защищенную ячейку, где в процессе создания указать пароли для сервисов (активация, чтение данных, чтение данных по паролю, обновление данных) аналогичные тем, что установлены в свойствах защищенной ячейки из образа "lesson1.nsd". После чего записать созданный образ в ключ.

Jungle пишет:

Ну, не знаю. Я скачал пример с сайта yagarto и успешно его скомпилировал согласно инструкции на сайте.
В makefile я уж как ни изгилялся: и относительные пути ставил, и абсолютные, и без пробелов, и с пробелами, и с кавычками, и без кавычек, с обратной и прямой косымыми разделителями путей - та же ошибка.
Guardant SDK - в папке по умолчанию, yagarto - в папке без пробелов.

Если Вам все-таки не удается скомпилировать загружаемый код стандартным способом с учетом изложенных ранее рекомендаций, то можно просто собрать все необходимые заголовочные файлы, библиотеки, утилиты и компилятор в одной директории, дабы пути к ним можно было указать максимально простые.
Например, в корне диска "C:\" создается папка "C:\Projects", внутрь которой копируются из состава установленного комплекта разработчика папки "Include" и "Lib", далее там же создается папка "tools", куда копируется вся папка с установленным компилятором и пара утилит ("hex2bin.exe" и "map_parse.exe") из состава комплекта разработчика.
В итоге в данный каталог "C:\Projects", нужно поместить файл с исходниками, которые необходимо собрать и конфигурационный "makefile".
В результате, пути в "makefile" должны выглядеть так:
---------------------------------------------------------------------------------------------------
# Path of GrdAPI.h and GcaAPI.h files:
CFG_INCLUDE_DIR         =     Include

# Path of library:
CFG_LIB_DIR             =        Lib

# Path of service utils:
CFG_SYS_DIR             =         tools

# Yagarto 4.6.0 (new Code dongles):
ARM_TOOLS_PREFIX2 =    $(CFG_SYS_DIR)/yagarto/bin/arm-none-eabi
----------------------------------------------------------------------------------------------------

(2012-08-31 14:06:20 отредактировано Jungle)

Re: Вопросы и замечания по урокам.

Благодарю за помощь. Я уже создал шаблон для IDE Code::Blocks. Примеры компилируются. Теперь надо проверить работоспособность. В сучае успеха выложу шаблон, если будет заинтересованность.

P.S. Не планируется ли выпуск ключей Code с бОльшим объёмом памяти?

Re: Вопросы и замечания по урокам.

Jungle пишет:

P.S. Не планируется ли выпуск ключей Code с бОльшим объёмом памяти?

Серийный выпуск ключей Guardant Code с увеличенным объемом памяти не планируется.
Однако в индивидуальном порядке ключи Code могут выпускаться с объемом памяти (для загружаемого кода) до 352 кб. Условия приобретения таких ключей можно уточнить в отделе продаж.