Неофициальная классификация семейств процессоров Blackfin |
Добавил(а) microsin | ||||||||||||||||||||||
Вам наверное не раз приходилось встречаться с директивами препроцессора в исходном коде библиотек Analog Devices, которые используют загадочные определения наподобие __ADSP_STIRLING__, __ADSP_EDINBURGH__ и т. п. Это макроопределения, которые отражают подгруппы аналогичных по возможностям процессоров. Процессоры одной подгруппы имеют незначительные отличия друг от друга, что позволяет легко портировать низкоуровневый код с одного процессора на другой, когда они находятся в одной подгруппе. Например, процессоры ADSP-BF531, ADSP-BF532, ADSP-BF533 относятся к подгруппе Edinburgh (__ADSP_EDINBURGH__) и они аналогичны друг-другу по возможностям, т. е. для того, чтобы программа процессора ADSP-BF531 заработала на процессоре ADSP-BF532, скорее всего будет достаточно перенастроить свойства проекта (указать другой процессор ADSP-BF532) и перекомпилировать проект. К сожалению, на сайте Analog Devices нет никакой информации о классификации процессоров по подгруппам. Есть только обобщенная таблица по функциональным возможностям [1], в которой нет никакой классификации по семействам процессоров. Однако имеется заголовочный файл services.h (находится в каталоге установки Blackfin\include\services среды разработки VisualDSP++), где эти подгруппы определены с помощью директив препроцессора. Т. е. на основе процессора, заданного в проекте, условными операторами препроцессора #if, #elif и #ifndef и т. п. определяются макроопределения для семейств (подгрупп родственных процессоров). Для удобства я составил таблицу, чтобы можно было проще ориентироваться в семействах моделей процессоров Blackfin.
[Ссылки] 1. Blackfin Processor Family site:analog.com. |