|
С компилеры, что от AD, что от TI не умеют юзать специализированные инструкции, как то сдвоенная арифметика (когда одно 32-битное число рассматривается как два 16-битных, и например старшая половина вычитается, а младшая складывается, и рвется цепочка переноса между 16-м и 17-м разрядом) - это как раз для БПФ. Еще кучу полезных инструкций он не знает, которые для FIR, LMS - фильтров и алгоритмов Витерби. Не юзает инструкции dual-MAC, dual-multiply. И много-много еще полезных дел. Потом С не умеет использовать битреверсную адресацию. Конечно можно понатыкать intrinsinc-функций, но это IMHO извращение, и превращает С в процессорно-зависимую писанину...
А вот для C6xxx - ситуация наоборот - там RISC, и С оптимизирует циклы так, что сам даже с ящиком пива не придумаешь :) Однако опять-же не юзает спец-инструкции (их хоть мало, но пользу приносят). И почти не оптимизирует линейный код.
А для ADSP-2185 С-писание вообще полностью отравляет результат, архитектура у него совершенно не предназначена для С.
E-mail: info@telesys.ru