Tengo que hacer un filtro digital con un dsPIC30F4011 (soy completamente nuevo en microcontroladores). Estaba leyendo la documentación sobre la biblioteca de DSP para averiguar cómo usarla. Creé un programa de C simple basado en un fragmento de código que vi en la documentación:
#include <stdio.h>
#include <stdlib.h>
#include <p30F4011.h>
#include <dsp.h>
#include <xc.h>
int main(int argc, char** argv) {
fractional *dstV;
fractional srcV1[2] = {Q15(0.2), Q15(0.2)};
fractional srcV2[2] = {Q15(0.5), Q15(0.5)};
dstV = VectorAdd(2, dstV, srcV1, srcV2);
int n = 1;
return (EXIT_SUCCESS);
}
Pero cuando lo construyo, recibo los siguientes mensajes:
build/default/production/main.o(.text+0x22): In function '_main':
: undefined reference to '_VectorAdd'
make[2]: *** [dist/default/production/test-dspic.X.production.hex] Error 255
make[1]: *** [.build-conf] Error 2
make: *** [.build-impl] Error 2
nbproject/Makefile-default.mk:135: fallo en las instrucciones para el objetivo 'dist/default/production/test-dspic.X.production.hex'
make[2]: se sale del directorio '/home/adrian/MPLABXProjects/test-dspic.X'
nbproject/Makefile-default.mk:90: fallo en las instrucciones para el objetivo '.build-conf'
make[1]: se sale del directorio '/home/adrian/MPLABXProjects/test-dspic.X'
nbproject/Makefile-impl.mk:39: fallo en las instrucciones para el objetivo '.build-impl'
BUILD FAILED (exit value 2, total time: 1s)
Dice que la función VectorAdd
no está definida. ¿Hay algo mal o falta?