Ahora que lo pienos y dejando de irnos TAN alto.
Yo no exactamente la frencuencia de muestreo que va a tener. Si me decis que lo trabajas por I2S imagino que debe ser algo asi como 192k, ya que solo te interesaria la parte de 48Khz (si es que no lei mal lo cual te da casi 4 veces de oversampleo (2minimo)), o tal ves estas trabajando a 48k y te interesan frecuencias menores ,
Lo cual te deja con 5.2us o 20us entre muestras, usando el de 5.2us(192k) estas metiendo facilmente 1000 instrucciones(sin contar saltos) entre medio con 200Mhz, ahora con 400Mhz seria el doble: 2000 instrucciones, si usas 48Khz de sampleo entonces deberias tener muchisimo mas tiempo para el procesado. lo cual te queda casi 8000 instrucciones (sin esperas ni nada por el estilo) en tu ARM9
Con lo cual no creo que te afecte, a no ser que la parte grafica consuma el mayor tiempo del micro, ahora lo que me preocupa es que el micro no acepta punto fijo, lo cual el multiplicar puede que sea lo mas consumir de tiempo, pero sumar no tanto. Aun asi podes usar un algoritmo FFT con punto fijo. Pero bueno como dispones de Linux imagino que se debe manejar y darle prioridad a ambos, compartiendo el tiempo entre uno y otro lo cual te dejaria unas 4k instrucciones (tal ves 3.5k por el cambio de contexto,pila etc aunque tiene un MMC y deberia ser solo cambiar 7 registros como mucho) para hacer tus cosas. Y en caso de no necesitarse la actualizacion o no estar los datos para el actualizado de la pantalla TFT seria casi todo de la parte digital.
Y todo lo demas depende de la cantidad de filtros que le pongan. Filtro anti-aliasing no necesitan ya que su codec imagino ya lo trae incorporado de forma digital + filtro de entrada al codec, si deseas mostrar toda la frecuencia no queda otra que un FFT, ahora si deseas filtrarlo lo haces con uno/dos/tres filtros, ahi va a depender de la cantidad de MACs y rotaciones que tengas que hacer (FIR>IIR en etapas pero mas estable). Ademas tenes el tiempo en que se esta transmitiendo el cual no se hace nada. es un tiempo muerto.. aunque pequeño comparado con la recepcion.
La FFT la calculas cuando tenes todos los datos, mientras que el filtro a medida que llegan los vas procesando, sino mal recuerdo era asi...,
Si alguno pienso que me equivoco en mi razonamiento que me lo diga, pero creo ahora que es posible hacerlo, yo antes me guiaba por el tema de punto flotante. Pero si se puede hacr con punto fijo tal ves se haga mas rapido, ahora en C no se como podes decirle que es punto fijo, o creo que deberias hacer tus propias funciones de multiplicar/dividir. Ya que vuelvo a repetir, tengo entendido que no admiten punto fijo , sino enteros los ARM9, distinto al DSP que si tiene para hacer operaciones con formato Q1.14
EDIT:
https://code.google.com/p/libfixmath/wiki/BenchmarksLibreria de punto fijo para cortex M3, imagino que posee la misma ALU y MAC que el ARM9, y lo que mas tiempo lleva es la raiz cuadrada. Pero lo que es suam resta multiplicacion estan cerca de 11 a 20 ciclos cada uno como maximo, sino 2/8 ciclos inlined ( no se que joraca es,, pero imagino que debe ser lo minimo de la operacion)