Pracuję nad projektem DSP (filtrowanie IIR) na cyfrowym procesorze sygnałów Analog Devices (BF706) z dołączonym pakietem kompilatorów, CrossCore Studio. Zawiera kilka przykładów prostych rzeczy DSP, takich jak filtry FIR i IIR oraz funkcje biblioteczne. Instrukcja procesora opisuje zestaw instrukcji montażu i nie komentuje C.
MOJE pytanie wynika z tej konkretnej aplikacji, ale myślałem, że istnieje najlepsza praktyka, którą przestrzegają programiści DSP. Tak więc ułożę to w ogólny sposób:
Z przykładów dostarczonych z tym DSP zdałem sobie sprawę, że jeśli chcę korzystać z obwodów zaprojektowanych dla aplikacji DSP, muszę zaprogramować w asemblerze, aby bezpośrednio uruchamiać te instrukcje. (Np. Mnożenie i dodawanie itp.) Moje pytanie brzmi, czy Po prostu programuję w C, czy kompilator (który również pochodzi od producenta układów DSP) nie zoptymalizuje go pod kątem tego DSP i nie wykorzysta jego możliwości? Czy też naprawdę muszę pisać procedury DSP bezpośrednio w asemblerze?