TODOPIC

Otros Microcontroladores / Dispositivos programables => Microcontroladores ARM => Mensaje iniciado por: JKM en 30 de Septiembre de 2014, 19:52:06

Título: Intrucciones DSP en STM32F4
Publicado por: JKM en 30 de Septiembre de 2014, 19:52:06
Hola Gente!

Tengo una duda.

Estoy implementado, con un microcontrolado STM32F4, un reproductor WAV al cual le aplico unos filtro IIR para eliminar ciertas frecuencias.
La finalidad es implementar algo parecido a un ecualizador.

Tengo entendido que estos micro poseen instrucciones optimizadas para DSP y en mi caso simplemente puse el codigo en C de un filtro generico.
Nose si en realidad este se esta implementado con esas instrucciones. Hay que habilitar algo para el uso de DSP o directamente el compilador ya utiliza las intrucciones optimizadas?

Por ejemplo este es el filtro pasa bajo que tengo, que anda, pero nose si esta utilizando las intrucciones especificas de DSP o estos quemando recursos....

float filtro_low_2(float x)
{

   static float vt_1 = 0, vt_2 = 0, yt, vt;

   vt= x  + 0.19507203E+01 * vt_1  -.97258544E+00 * vt_2;
   yt = vt   -.19681747E+01 * vt_1 +   0.10000000E+01 * vt_2;
   vt_2 = vt_1;
   vt_1 = vt;

   return(yt);
}

 float filtro_low(float x)
{
   static float vt_1 = 0, vt_2 = 0, yt, vt, yt2;

   vt= x * 0.75627159E-01 + 0.18378850E+01 * vt_1  -.85192148E+00 * vt_2;
   yt = vt   -.18767974E+01 * vt_1 +   0.10000000E+01 * vt_2;
   vt_2 = vt_1;
   vt_1 = vt;
   yt2 = filtro_low_2(yt);
   return(yt2);
}

Desde ya, muchas gracias!
Título: Re: Intrucciones DSP en STM32F4
Publicado por: MerLiNz en 01 de Octubre de 2014, 07:27:33
siempre puedes ver el codigo generado en ASM y ahi verificar que utiliza las instrucciones DSP, sin embargo yo creo que no las utiliza, por defecto normalmente suelen usar librerias que contiene el compilador, luego existen otras librerias con funciones DSP, tendrias que enterarte de como va.

Toma, por si esto te ayuda: