ВходНаше всё Теги codebook 无线电组件 Поиск Опросы Закон Среда
8 мая
769884 Топик полностью
misyachniy (20.07.2017 19:29, просмотров: 90) ответил michas на Меня вот и смущает, что по объему жмет прилично так, но вот скорость пропорционально не растет.
По скорости выиграть компилятором сложно. Типично компилятор может заинлайнить функции, пересчитать выражения констант. Обычно оптимизируют алгоритм. Например, при синхронном детектировании можно сложить отсчеты, затем помножить их на значения sin. Или использовать фиксированную точку вместо плавающей (если контроллер не поддерживает). Нужно также смотреть листинг во что компилируется. Например для ARM регистр возврата функции 32 бита. Если результат возврата функции char присваивается переменной int, то компилятор может вставить коды преобразования форматов. Я также измерял скорость перемножения коэффициентов фильтра при расположении коэффициентов во флеш и ОЗУ. Для STM32F103 оказалось выгоднее во флеш. Так как у него гарвардская архитектура, то данные на умножитель поступают по шине ОЗУ и флеш параллельно. Подозреваю что для SAM7S(X) лучше код+коэффициенты+данные лучше расположить в ОЗУ, так как такты ожидания при работе с флеш тормозят работу.