реклама на сайте
подробности

 
 
 
Reply to this topicStart new topic
> CCS и codec engine, Нужно написать медианный фильтр
Hyena
сообщение Jul 21 2008, 20:56
Сообщение #1





Группа: Новичок
Сообщений: 6
Регистрация: 21-07-08
Пользователь №: 39 125



В общем у меня такая проблема. Мне нужно сделать компоненту на основе VIDDEC, которая будет делать медианный фильтр по квадрату 3х3 для входного изображения. Размеры изображения, потока должны задаваться во время инициализации компоненты. Нужно все делать под Simulator DM6446. CCS я раньше не видел. Короче, я всё просимулировал, попытался построить проект из файлов, лежащих в папке codec_engine\examples\ti\sdo\ce\examples\codecs\viddec_copy. Вот список файлов:
makefile
package.mak
package.xdc
package.xs
viddec_copy.c
VIDDEC_COPY.xdc
VIDDEC_COPY.xs
viddec_copy_ti.h
viddec_copy_ti_priv.h
package.bld

Я создал проект и добавил в него viddec_copy.c, viddec_copy_ti.h, viddec_copy_ti_priv.h. Тряся бубном, добился компиляции, но линковаться оно не хочет, пишет:

-------------------------- Homotherium.pjt - Debug --------------------------
Warning: The project has no cmd file while the Text Linker is selected
[Linking...] "C:\CCStudio_v3.3\C6000\cgtools\bin\cl6x" -@"Debug.lkf"
<Linking>
>> warning: entry point symbol _c_int00 undefined

undefined first referenced
symbol in file
--------- ----------------
_memcpy C:\\Homotherium3\\Median\\Debug\\viddec_copy.obj
>> error: symbol referencing errors - './Debug/Homotherium.out' not built

>> Compilation failure

Build Complete,
2 Errors, 2 Warnings, 0 Remarks.

Файл viddec_copy.a64P из папки codec_engine\examples\ti\sdo\ce\examples\codecs\viddec_copy\lib для линковки подавал в Build options проекта.

В codec engine кругом файлы .mak, .xds, .xs, bld файлы и makefile'ы без расширения. И не одного нормального проекта и .cmd-файла. В инструкции написано как это всё использовать, но чую, что инструкция та для Линукса.

Можно что-то зделать в этой ситуации? Возможно, нужно добавить какую-нибудь библиотеку, что бы оно слинковалось? Для декодера нужна какая-то программа-оболочка которая будет его запускать, подавать информацию, писать на выход? Я вообще на верном пути?

Заранее спасибо.

Сообщение отредактировал Hyena - Jul 21 2008, 20:59


--------------------
Fortuna non penis - in manus non denis
Go to the top of the page
 
+Quote Post
AndrewN
сообщение Jul 22 2008, 01:13
Сообщение #2


Местный
***

Группа: Участник
Сообщений: 336
Регистрация: 7-03-07
Из: Петербург
Пользователь №: 25 961



Цитата(Hyena @ Jul 21 2008, 23:56) *
-------------------------- Homotherium.pjt - Debug --------------------------
Warning: The project has no cmd file while the Text Linker is selected
[Linking...] "C:\CCStudio_v3.3\C6000\cgtools\bin\cl6x" -@"Debug.lkf"
<Linking>
>> warning: entry point symbol _c_int00 undefined

undefined first referenced
symbol in file
--------- ----------------
_memcpy C:\\Homotherium3\\Median\\Debug\\viddec_copy.obj
>> error: symbol referencing errors - './Debug/Homotherium.out' not built

>> Compilation failure

Build Complete,
2 Errors, 2 Warnings, 0 Remarks.

DM6446 это машинка с двумя процессорами и я не припомню, что есть такой симулятор, скорее
по отдельности, ARM926 или С64+. Причем IVCP симулироваться не будет.

Судя по сообщению, в проекте нет библиотеки RTS (_c_int00 и _memcpy - в ней) для C64+.
Смотрите в каталоге CCS/C6000/cgtools/lib/. В readme должна быть информация о big/little
endian библиотеках. А ещё в проекте должен быть _main, в конце работы _c_int00 передаёт
управление в функцию main().

Линукс работает только на ARM подсистеме, на С64+ работает DSP/BIOS.

Примерчики .cmd (или .lcf) файлов для С64/С64+ нужно искать в каталоге examples.
Но без живого оборудования, по-моему, это будет трата времени или просто практика
с CCS.

--
AN
Go to the top of the page
 
+Quote Post
Hyena
сообщение Jul 22 2008, 03:53
Сообщение #3





Группа: Новичок
Сообщений: 6
Регистрация: 21-07-08
Пользователь №: 39 125



Спасибо.
В заголовке CCS написано /DM6446 Cycle Accurate Simulator/TMS320C6400 - 64xx (Simulator) - Code Composer Studio.

Про библиотеку rts.lib я читал, что её нужно добавить, но она у меня только в CCS/C5400/cgtools/lib/. Это меня и подвело, были ошибки. Благодаря вашему совету, я воспользовался библиотекой из папки CCS/C6000/cgtools/lib/, только rts6400.lib и добавил в проект файл lnk.cmd оттуда же. Ну и то, что main() обязательно для линкования тоже не знал. Файл с ней был, но к пректу я его подсоединял и отсоединял в многочисленных попытках слинковать. Теперь всё линкуется даже без единого предупреждения. Теперь можно снова браться за бубен и продолжать попытки программирования.

А работа эта действительно только практика с CCS. Саму плату мне не дали.


--------------------
Fortuna non penis - in manus non denis
Go to the top of the page
 
+Quote Post
AndrewN
сообщение Jul 22 2008, 05:21
Сообщение #4


Местный
***

Группа: Участник
Сообщений: 336
Регистрация: 7-03-07
Из: Петербург
Пользователь №: 25 961



Цитата(Hyena @ Jul 22 2008, 06:53) *
В заголовке CCS написано /DM6446 Cycle Accurate Simulator/TMS320C6400 - 64xx (Simulator) - Code Composer Studio.


"- 64xx" и обозначает, что симулируется подсистема С64+. Для ARM все другое, и компилятор и RTS
lib и симулятор; хотя вот сейчас посмотрел, в v3.3.79 появился полный симулятор DM6467, причем
симулирует даже HDVICP!

А откуда вы взяли примеры VIDDEC? Я не распаковывал .bin архивы, у меня нет линукс машины,
они там?

--
Go to the top of the page
 
+Quote Post
Hyena
сообщение Jul 22 2008, 07:25
Сообщение #5





Группа: Новичок
Сообщений: 6
Регистрация: 21-07-08
Пользователь №: 39 125



Цитата(AndrewN @ Jul 22 2008, 08:21) *
"- 64xx" и обозначает, что симулируется подсистема С64+. Для ARM все другое, и компилятор и RTS
lib и симулятор; хотя вот сейчас посмотрел, в v3.3.79 появился полный симулятор DM6467, причем
симулирует даже HDVICP!

А откуда вы взяли примеры VIDDEC? Я не распаковывал .bin архивы, у меня нет линукс машины,
они там?

--


Мне дали codec engine прямо папкой. Пример VIDDEC лежит в codec_engine\examples\ti\sdo\ce\examples\codecs\viddec_copy, еще есть пример VIDENC в C:\codec_engine\examples\ti\sdo\ce\examples\codecs\videnc_copy. А ещё в папке codec_engine\examples\ti\sdo\ce\examples\ (помимо папки codecs) есть папки: apps - в которой лежит приложение, которое по всей видимости пользует viddec_copy и videnc_copy, buildutils и servers. Причём, в папках apps и servers приложения лежат двух видов в папках типов: evmDM6446 и evmDM6467.


--------------------
Fortuna non penis - in manus non denis
Go to the top of the page
 
+Quote Post
AndrewN
сообщение Jul 22 2008, 18:04
Сообщение #6


Местный
***

Группа: Участник
Сообщений: 336
Регистрация: 7-03-07
Из: Петербург
Пользователь №: 25 961



Цитата(Hyena @ Jul 22 2008, 10:25) *
Мне дали codec engine прямо папкой. Пример VIDDEC лежит в codec_engine\examples\ti\sdo\ce\examples\codecs\viddec_copy, еще есть пример VIDENC в C:\codec_engine\examples\ti\sdo\ce\examples\codecs\videnc_copy. А ещё в папке codec_engine\examples\ti\sdo\ce\examples\ (помимо папки codecs) есть папки: apps - в которой лежит приложение, которое по всей видимости пользует viddec_copy и videnc_copy, buildutils и servers. Причём, в папках apps и servers приложения лежат двух видов в папках типов: evmDM6446 и evmDM6467.

Любопытно взглянуть - вам не сложно положить архив или сюда или мне в е-майл? - Спасибо.
--
AN
Go to the top of the page
 
+Quote Post
Hyena
сообщение Jul 22 2008, 21:43
Сообщение #7





Группа: Новичок
Сообщений: 6
Регистрация: 21-07-08
Пользователь №: 39 125



Вот она.


--------------------
Fortuna non penis - in manus non denis
Go to the top of the page
 
+Quote Post
AndrewN
сообщение Jul 22 2008, 23:00
Сообщение #8


Местный
***

Группа: Участник
Сообщений: 336
Регистрация: 7-03-07
Из: Петербург
Пользователь №: 25 961



Цитата(Hyena @ Jul 23 2008, 00:43) *
Вот она.

Переписал, спасибо. Из каталога \codec_engine\examples\ti\sdo\ce\examples\codecs\viddec_copy
пропали .c и .h файлы - а можно и их тоже?

Вот что интересно, откуда берутся все эти апдэйты - я зарегистрирован в TI вместе с DM6446 платой,
просматриваю web-site с апдэйтами и ничего похожего не видел. А дата у почти всех файлов в архиве
июнь 18 2008...


--
AN
Go to the top of the page
 
+Quote Post
Hyena
сообщение Jul 23 2008, 06:07
Сообщение #9





Группа: Новичок
Сообщений: 6
Регистрация: 21-07-08
Пользователь №: 39 125



Вот viddec файлы. Я их нечаяно перенёс вместо копирования для экспериментов.


--------------------
Fortuna non penis - in manus non denis
Go to the top of the page
 
+Quote Post
AndrewN
сообщение Jul 23 2008, 06:52
Сообщение #10


Местный
***

Группа: Участник
Сообщений: 336
Регистрация: 7-03-07
Из: Петербург
Пользователь №: 25 961



Цитата(Hyena @ Jul 23 2008, 09:07) *
viddec файлы

Done. Спасибо. Теперь нужно вернуться обратно к PPC405....

--
AN
Go to the top of the page
 
+Quote Post
Hyena
сообщение Jul 25 2008, 10:14
Сообщение #11





Группа: Новичок
Сообщений: 6
Регистрация: 21-07-08
Пользователь №: 39 125



Проблемы продолжаются.
Я собрал проект Homotherium из примера codec_engine\examples\ti\sdo\ce\examples\apps\video_copy\dualcpu\evmDM6446. А его дочерний проект (Median) из файлов, относящихся к viddec, папки codec_engine\packages\ti\sdo\ce\video.
Собственно, это опять компилируется, но линковаться не хочет.

----------------------------- Median.pjt - Debug -----------------------------
[viddec.c] "C:\CCStudio_v3.3\C6000\cgtools\bin\cl6x" -o3 -fr"C:/Homotherium/Median/Debug" -i"extern/xdctools" -i"extern/ce" -i"extern/fc" -i"extern/utils" -i"extern/xdais/ti/xdais" -i"extern/xdais" -i"global" -i"extern/bios" -d"_DEBUG" -d"_DM64P" -mv6400+ -@"Debug.lkf" "viddec.c"

[Archiving...] "C:\CCStudio_v3.3\C6000\cgtools\bin\ar6x" @"Debug.lkf"
==> new archive 'C:\Homotherium\Median\Debug\median.a64P'
==> building archive 'C:\Homotherium\Median\Debug\median.a64P'

Build Complete,
0 Errors, 0 Warnings, 0 Remarks.
-------------------------- Homotherium.pjt - Debug --------------------------
[app.c] "C:\CCStudio_v3.3\C6000\cgtools\bin\cl6x" -o3 -fr"C:/Homotherium/Debug" -i"C:/codec_engine/packages" -i"C:/CCStudio_v3.3/bios_5_31_02/xdctools/packages" -i"C:/CCStudio_v3.3/c6000/xdais/src/api" -i"C:/CCStudio_v3.3/referenceframeworks22/include" -i"C:/CCStudio_v3.3/c6000/xdais/include" -i"C:/codec_engine/cetools/packages" -i"C:/CCStudio_v3.3/bios_5_31_02/packages" -i"C:/codec_engine/cetools/packages/ti/xdais" -i"C:/codec_engine/cetools/packages/ti/sdo/utils/trace" -d"_DEBUG" -mv6400 -@"Debug.lkf" "app.c"

[ceapp.c] "C:\CCStudio_v3.3\C6000\cgtools\bin\cl6x" -o3 -fr"C:/Homotherium/Debug" -i"C:/codec_engine/packages" -i"C:/CCStudio_v3.3/bios_5_31_02/xdctools/packages" -i"C:/CCStudio_v3.3/c6000/xdais/src/api" -i"C:/CCStudio_v3.3/referenceframeworks22/include" -i"C:/CCStudio_v3.3/c6000/xdais/include" -i"C:/codec_engine/cetools/packages" -i"C:/CCStudio_v3.3/bios_5_31_02/packages" -i"C:/codec_engine/cetools/packages/ti/xdais" -i"C:/codec_engine/cetools/packages/ti/sdo/utils/trace" -d"_DEBUG" -mv6400 -@"Debug.lkf" "ceapp.c"
"ceapp.c", line 249: warning: a value of type "char *" cannot be assigned to an entity of type "XDAS_Int8 *"
"ceapp.c", line 251: warning: a value of type "char *" cannot be assigned to an entity of type "XDAS_Int8 *"

[Linking...] "C:\CCStudio_v3.3\C6000\cgtools\bin\cl6x" -@"Debug.lkf"
<Linking>

undefined first referenced
symbol in file
--------- ----------------
_ceapp_validateBufSizes C:\\Homotherium\\Debug\\app.obj
_TraceUtil_start C:\\Homotherium\\Debug\\ceapp.obj
_Memory_contigAlloc C:\\Homotherium\\Debug\\ceapp.obj
_TraceUtil_stop C:\\Homotherium\\Debug\\ceapp.obj
_Memory_contigFree C:\\Homotherium\\Debug\\ceapp.obj
_Engine_open C:\\Homotherium\\Debug\\ceapp.obj
_Engine_close C:\\Homotherium\\Debug\\ceapp.obj
_Log_printf C:\\Homotherium\\Median\\Debug\\median.a64P
_VISA_create C:\\Homotherium\\Median\\Debug\\median.a64P
_VISA_getAlgFxns C:\\Homotherium\\Median\\Debug\\median.a64P
_VISA_delete C:\\Homotherium\\Median\\Debug\\median.a64P
_VISA_getAlgHandle C:\\Homotherium\\Median\\Debug\\median.a64P
_ti_sdo_ce_dvtLog C:\\Homotherium\\Median\\Debug\\median.a64P
_VISA_enter C:\\Homotherium\\Median\\Debug\\median.a64P
_VISA_exit C:\\Homotherium\\Median\\Debug\\median.a64P
_VISA_isChecked C:\\Homotherium\\Median\\Debug\\median.a64P
>> error: symbol referencing errors - './Debug/Homotherium.out' not built

>> Compilation failure

Build Complete,
2 Errors, 2 Warnings, 0 Remarks.

Recursive Build Complete,
Total Count: 2 Errors, 2 Warnings, 0 Remarks.
smile3046.gif

Папка extern дана мне вместе с примером аудио декодера. Её подпапки повторяют некоторые подпапки codec engine, но не совсем. Имеются лишние файлы или некоторых не достаёт. Хотел от неё отказаться вовсе, но пока не сумел.


--------------------
Fortuna non penis - in manus non denis
Go to the top of the page
 
+Quote Post
AndrewN
сообщение Jul 25 2008, 11:56
Сообщение #12


Местный
***

Группа: Участник
Сообщений: 336
Регистрация: 7-03-07
Из: Петербург
Пользователь №: 25 961



Цитата(Hyena @ Jul 25 2008, 13:14) *
Проблемы продолжаются.

Увы, девственная простота программного обеспечения С6000 навсегда утрачена...

Undefs на которые ссылается линкер нужно искать в нескольких местах одновременно
DSP/BIOS
XDAIS
DSP/BIOS link.
cначала по документации, а потом в библиотеках.

Вообще, эти примеры (я даже не пытался их собирать) работают с двумя CPU и
копроцессором: управляющая программа работает на стороне ARM-a, это линукс
программа в ос MVL. Она шлёт запросы и указатели на данные в программу на
стороне C64+ при помощи вызовов DSP/BIOS link - который осуществляет коммуникацию
между двумя CPU. Программа на стороне C64+ работает под управлением DSP/BIOS
("домашняя" rtos для процессоров TI), эта программа принимает запросы от линукс-
программы и, в свою очередь, отправляет запросы в VICP (video imaging co-processor)
вместе с указателями на данные используя интерфейс CODEC_ENGINE (ce). Кроме
того, она же может делать что-то дополнительное, что vicp делать не умеет. Таким образом,
проект состоит из четырех частей - MVL-программы, DSP/BIOS-программы, DSP/BIOS link
канала, который испоьзуется на обоих CPU и канала доступа к VICP, который используется
в C64+.

Основная проблема с использованием VICP состоит в том что это настоящий чёрный ящик
с полностью закрытым интерфейсом доступа. Про VICP из открытых документов известны
только номер прерывания и диапазон I/O адресов, а весь обмен с ним - через коммерческие
программные интерфейсы. CE поставляемый с EVM имеет каккие-то ограничения.

app.c и ceapp.c - это начало линукс-программы (в каталоге codec_engine\examples\ti\sdo\ce\examples\apps\video_copy\dualcpu\evmDM6446\);
Main.c (в каталоге codec_engine\examples\ti\sdo\ce\examples\servers\video_copy\evmDM6446\)
это начало DSP/BIOS программы - которая создает несколько процессов, обслуживающих
реквесты от ARM-side программы и передающих данные (или сообщения о готовности
данных - ram то общий) обратно.

Может быть что, для начала лучше сделать обычный проект на С - без ос и копроцессора?

--
AN
Go to the top of the page
 
+Quote Post

Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 18th June 2025 - 22:55
Рейтинг@Mail.ru


Страница сгенерированна за 0.01464 секунд с 7
ELECTRONIX ©2004-2016