Российский производитель и разработчик сертифицированного измерительного оборудования с 1987 года

Прораммирование Blackfin на E-502

Вы не вошли.

 Поиск | Регистрация | Вход 

19.09.2017 16:14:14
#1

Участник
Здесь с 19.09.2017
Сообщений: 2

Прораммирование Blackfin на E-502

Добрый день!
Меня как разработчика очень заинтересовал модуль E-502, а именно то что там есть Ethernet и как я понял возможность помещения своих алгоритмов.
В связи с чем есть несколько вопросов:
1) В какой среде разработки нужно создавать проекты под Blackfin
2) Нужно ли покупать среду разработки
3) Я буду дорабатывать встроенное ПО или мне придется разрабатывать своё?

19.09.2017 18:31:40
#2

Сотрудник "Л Кард"
Здесь с 17.04.2014
Сообщений: 1,288

Re: Прораммирование Blackfin на E-502

Здравствуйте.
1) Штатная прошивка для blackfin собирается в среде VisualDSP. Также есть возможность собрать компилятором gcc. Скорее всего можно собрать и в их новой среде CrossCore, но последнее не проверялось, могут потребоваться какие-то изменения.
2)  Официально для VisualDSP бесплатно доступна для скачивания только 90-дневная версия. Правда при желании использовать бесплатно можно найти и не официальный вариант...
    gcc официально бесплатный, хотя с ним несколько сложнее работать, чем с готовой средой, но при наличии навыков можно его использовать.
3) Есть пример штатной прошивки, которая просто принимает данные с АЦП/DIN и передает в ПК и принимает из ПК данные на вывод и передает их дальше на ЦАП/DOUT. На основе нее можно создавать свою. Функции обработки вынесены для возможности изменять.

Только нужно учитывать, что Blackfin используется именно для обработки потоков ввода вывода и команд с ПК, сама реализация протокола обмена по Ethernet/USB вне его в отдельном контроллере.

Подробнее смотрите в документе http://www.lcard.ru/download/x502_low_level.pdf

20.09.2017 16:22:43
#3

Участник
Здесь с 19.09.2017
Сообщений: 2

Re: Прораммирование Blackfin на E-502

Алексей L Card пишет:

Здравствуйте.
1) Штатная прошивка для blackfin собирается в среде VisualDSP. Также есть возможность собрать компилятором gcc. Скорее всего можно собрать и в их новой среде CrossCore, но последнее не проверялось, могут потребоваться какие-то изменения.
2)  Официально для VisualDSP бесплатно доступна для скачивания только 90-дневная версия. Правда при желании использовать бесплатно можно найти и не официальный вариант...
    gcc официально бесплатный, хотя с ним несколько сложнее работать, чем с готовой средой, но при наличии навыков можно его использовать.
3) Есть пример штатной прошивки, которая просто принимает данные с АЦП/DIN и передает в ПК и принимает из ПК данные на вывод и передает их дальше на ЦАП/DOUT. На основе нее можно создавать свою. Функции обработки вынесены для возможности изменять.

Только нужно учитывать, что Blackfin используется именно для обработки потоков ввода вывода и команд с ПК, сама реализация протокола обмена по Ethernet/USB вне его в отдельном контроллере.

Подробнее смотрите в документе http://www.lcard.ru/download/x502_low_level.pdf

Спасибо за разъяснение!
В общих чертах всё понятно, есть ещё такой вопрос:
Допустим, мы разработали устройство с использованием  E-502 (Ethernet) и разработали оригинальные алгоритмы для обработки сигналов.
Как мы сможем защитить такое устройство от копирования?

21.09.2017 18:31:31
#4

Сотрудник "Л Кард"
Здесь с 17.04.2014
Сообщений: 1,288

Re: Прораммирование Blackfin на E-502

Ну тут можно придумать разные варианты. В Blackfin для этого имеется:
1. Уникальный для каждого экземпляра процессора ChipID
2. Программируемая один раз память (OTP) для возможности сохранения криптоключей или каких-то пользовательских идентификаторов
3. Есть некоторый Security Mode самого процессора для доступа к приватной части OTP только после аутентификации (глава 16 в Hardware Manual на процессор). Хотя я сам с этим режимом не работал.

На основе этого можно построить различные алгоритмы. Например, защиту от копирования (можно даже без использования Security Mode) можно сделать так:
1. Сгенерировать приватный и публичный ключ (например через GnuPG или подобный софт)
2. Записывать в OTP BlackFin подпись уникального ID этого экземляра, сделанную с помощью приватного ключа
3. При старте в прошивке проверять эту подпись с помощью публичного ключа и выполнять алгоритм только после успешной проверки.

В этом случае прошивка не будет работать без выполнения пункта 2, который нельзя выполнить без приватного ключа, который Вы никому не открываете. 
Простое копирование содержимого OTP-памяти на другой модуль тоже не поможет, т.к. у него другой ID процессора.
Таким образом прошивка будет работать только в модуле, который Вы специальным образом подготовили.

При желании наверное можно придумать и более сложные схемы с шифрованием данных прошивки и использованием Security Mode процессора... но это уже в зависимости от необходимости, на первый взгляд и описанного подхода может хватить.

taranur
30.10.2017 14:17:08
#5

Гость

Re: Прораммирование Blackfin на E-502

По какому протоколу Е-502 будет передавать данные по Ethernet, полученные от процессора Blackfin или переданные ему?

30.10.2017 14:39:42
#6

Сотрудник "Л Кард"
Здесь с 17.04.2014
Сообщений: 1,288

Re: Прораммирование Blackfin на E-502

В E502 используется свой протокол поверх TCP, который описан в главе 4 "Низкоуровневого описания программиста" (http://www.lcard.ru/download/x502_low_level.pdf)

31.10.2017 09:43:50
#7

Участник
Здесь с 31.10.2017
Сообщений: 7

Re: Прораммирование Blackfin на E-502

Здравствуйте
Открыл прошивку с помощью VisualDSP 5.0. Программа ругается на ADSP-BF523 и предлагает замену на ADSP-21020. Подойдёт?
VisualDSP не официальный

31.10.2017 09:51:07
#8

Участник
Здесь с 31.10.2017
Сообщений: 7

Re: Прораммирование Blackfin на E-502

или лучше ADSP-BF522 или ADSP-BF525?

31.10.2017 11:51:07
#9

Участник
Здесь с 31.10.2017
Сообщений: 7

Re: Прораммирование Blackfin на E-502

VisualDSP при компиляции l502-bf.dpj выдаёт ошибку:

1 catastrophic error detected in the compilation of "..\src\l502_async.c".
Compilation terminated.
cc3089: fatal error: Compilation failed
Tool failed with exit/exception code: 1.
Build was unsuccessful.

31.10.2017 13:47:15
#10

Участник
Здесь с 31.10.2017
Сообщений: 7

Re: Прораммирование Blackfin на E-502

скорректирую последний вопрос: ругается на открытие файла stdint.h. Где его взять?

31.10.2017 15:09:13
#11

Сотрудник "Л Кард"
Здесь с 17.04.2014
Сообщений: 1,288

Re: Прораммирование Blackfin на E-502

stdint.h должен входить в состав VisualDSP. Какая версия у Вас VisualDSP, включая номер обновление (Update)?

01.11.2017 10:05:09
#12

Участник
Здесь с 31.10.2017
Сообщений: 7

Re: Прораммирование Blackfin на E-502

Версия была 5.0 без апдейтов. Установил последнюю, скачанную с сайта. В ней есть stdint.h

Линкёр выдал ошибку и предупреждение. Предупреждением ругается на определение секции. Какую секцию написать надо? И что делать  с ошибкой?

Linking...

[Warning li2060]  The following input section(s) that contain program code
        and/or data have not been placed into the executable for processor 'p0'
        as there are no relevant commands specified in the LDF:

        .\Debug\main.doj(board_state)


[Error li1060]  The following symbols are referenced, but not mapped:
        '_g_state' referenced from .\Debug\l502_cmd.doj(program)
        '_g_state' referenced from .\Debug\l502_hdma.doj(program)

Linker finished with 1 error and 1 warning
cc3089: fatal error: Link failed
Tool failed with exit/exception code: 1.
Build was unsuccessful.

01.11.2017 14:38:35
#13

Сотрудник "Л Кард"
Здесь с 17.04.2014
Сообщений: 1,288

Re: Прораммирование Blackfin на E-502

В примере, если в него не вносились изменения, в .ldf файле присутствуют команды для расположения секции board_state. Так что по видимому какими то изменениями в проекте Вы его удалили или пересоздали. Только что скачал VisualDSP с сайта, взял неизмененный проект, установленный с lpcie_sdk и собралось без указанной Вами ошибки.

02.11.2017 09:45:27
#14

Участник
Здесь с 31.10.2017
Сообщений: 7

Re: Прораммирование Blackfin на E-502

Изменения не вносились. При открытии проекта только требует инициализировать .ldf
Заново распаковал на диск E глубоко. Стало ещё хуже: при компиляции проекта не может создать mak файл. Сдаётся мне, очень важно куда распаковать. Или русские имена не любит. Распаковал повыше. Теперь при компиляции ошибок не выдаёт, но пишет предупреждение

Linking...

[Warning li2040] ".\l502-bf.ldf":377 Due to memory fragmentation, output section 'L1_data_a_stack_heap' in processor 'p0' was mapped discontinuously.
  Use FORCE_CONTIGUITY command to ensure that output section is mapped continuously.
  Use NO_FORCE_CONTIGUITY command if contiguity does not matter in this output section.

Добавил FORCE_CONTIGUITY в указанное место. Предупреждение ушло. Или делать так не стоит?

Контакты

Адрес: 117105, Москва, Варшавское шоссе, д. 5, корп. 4, стр. 2

Многоканальный телефон:
+7 (495) 785-95-25

Отдел продаж: sale@lcard.ru
Техническая поддержка: support@lcard.ru

Время работы: с 9-00 до 19-00 мск