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

 
 
> 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
 
Start new topic
Ответов
Hyena
сообщение Jul 25 2008, 10:14
Сообщение #2





Группа: Новичок
Сообщений: 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
Сообщение #3


Местный
***

Группа: Участник
Сообщений: 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 Текстовая версия Сейчас: 21st August 2025 - 07:07
Рейтинг@Mail.ru


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