У меня есть этот проект, описанный в разделе «Обработка сигналов Wiley-Embedded с микросигнальной архитектурой 2007» - 2D DCT / IDCT (сжатие изображений) реализовано, и я хочу объединить (переместить эти файлы в..) с другим персональным проектом с обработкой изображений (в котором есть только * .cpp файлы) в Visual Dsp для Blackfin BF 537 .(сначала в Симулятор , а затем на плате BF537 ..)
Реализованный проект 2D DCT / IDCT имеет *. c и *. ASM файлы, и это работает очень хорошо.В какой-то момент, для некоторых вычислений, из файла C используется функция, объявленная (и реализованная) в файле asm.
Я заметил, что если я переместу эти * .c файлы в моем проекте (которые содержат только *.файлы cpp), я получаю много ошибок, и некоторые из них, как этот:
"`[Error li1021] The following symbols referenced in processor 'p0' could not be resolved:
'something [_something]' referenced from '.\Debug\project name.doj'"
Итак, я думаю, что мне нужно иметь только * .cpp файлы в моем проекте (а не комбинацию из * .cpp и *.c).
В проекте 2D DCT / IDCT проблема возникает, когда я заменяю всех этих *. c файлов на*. cpp файлы.Когда я пытаюсь построить, я получаю эту ошибку компоновки:
"[Error li1021] The following symbols referenced in processor 'p0' could not be resolved:
'_r8x8dct(short *, short *, short *) [__r8x8dct__FPsN21]' referenced from '.\Debug\Start_DCT2.doj'
'_r8x8invdct_ieee(short *, short *, short *) [__r8x8invdct_ieee__FPsN21]' referenced from '.\Debug\Start_DCT2.doj'"
В *. cpp файле вот как я вызываю функцию, реализованную в asm:
_r8x8dct(in,coeff,temp);
В том же файле *. cpp я включаю заголовочный файл, в котором я объявил функцию:
void _r8x8dct(fract16 *in, fract16 *coeff, fract16 *temp);
А вот часть *. ASM файл, который содержит функцию:
.section L1_code;
.global __r8x8dct;
.align 8;
__r8x8dct:
.....................................
__r8x8dct.end:
Аналог с функцией $_r8x8invdct_ieee()
* извините меня за мои английские ошибки при записи