El problema es que ANSI C no es un lenguaje terriblemente bueno para DSP en tiempo real. Muchas de las características que tiene un chip DSP real no se pueden abordar en ANSI C. Estos incluyen generadores de direcciones, direccionamiento de bits invertidos, direccionamiento circular, SIMD, segmentos de memoria, buses múltiples, tipos de datos fraccionales, multiplicación fraccional, ciertas matemáticas de punto fijo, cero sobrecarga en bucle, etc. Por lo tanto, la mayoría de los compiladores para DSP tienen un extenso conjunto de extensiones de lenguaje (#pragma, ensamblador en línea, nuevas palabras clave, etc.). Sin embargo, estos son decididamente no ANSI y no portátiles.
Escribir un filtro FIR simple de punto fijo en ANSI C puede ser fácilmente 10 veces menos eficiente que usar las extensiones adecuadas o el código de ensamblaje.
Any pointers are good
- generalmente es un signo de falta de investigación previa de su parte.