Estou trabalhando em um projeto DSP (filtragem IIR) em um processador de sinal digital da Analog Devices (BF706) com o conjunto de compiladores que vem com ele, o CrossCore Studio. Ele contém alguns exemplos de itens DSP simples, como filtros FIR e IIR e funções de biblioteca. O manual do processador descreve o conjunto de instruções de montagem e não comenta sobre C.
Minha pergunta surge dessa aplicação específica, mas achei que havia uma prática recomendada que os desenvolvedores do DSP seguem. Então, eu vou enquadrar de uma maneira geral:
O que percebi pelos exemplos que acompanham este DSP é que, se eu quiser usar os circuitos projetados para aplicativos DSP, preciso programar em montagem para executar diretamente essas instruções (como multiplicar e adicionar, etc.). Eu apenas programa em C, o compilador (que também vem da empresa de chips DSP) não o otimizaria para esse DSP e usaria seus recursos? Ou eu realmente preciso escrever rotinas DSP diretamente na montagem?