O problema é que o ANSI C não é uma linguagem muito boa para o DSP em tempo real. Muitos recursos que um chip DSP real não pode ser endereçado no ANSI C. Isso inclui geradores de endereços, endereçamento reverso de bits, endereçamento circular, SIMD, segmentos de memória, vários barramentos, tipos de dados fracionários, multiplicação fracionária, matemática de ponto fixo, zero overhead looping etc. Portanto, a maioria dos compiladores para DSPs possui um extenso conjunto de extensões de idioma (#pragma, assembler embutido, novas palavras-chave etc.). No entanto, estes são decididamente não-ANSI e não portáveis.
Escrever um filtro FIR de ponto fixo simples em ANSI C pode ser facilmente 10 vezes menos eficiente do que usar extensões ou código de montagem apropriados.
Any pointers are good
- geralmente é um sinal de falta de pesquisas anteriores da sua parte.