3.19.7 Параметры Blackfin
-
-mcpu=cpu[-sirevision] -
Указывает имя целевого процессора Blackfin. В настоящее время cpu может быть одним из следующих значений: ‘bf512’, ‘bf514’, ‘bf516’, ‘bf518’, ‘bf522’, ‘bf523’, ‘bf524’, ‘bf525’, ‘bf526’, ‘bf527’, ‘bf531’, ‘bf532’, ‘bf533’, ‘bf534’, ‘bf536’, ‘bf537’, ‘bf538’, ‘bf539’, ‘bf542’, ‘bf544’, ‘bf547’, ‘bf548’, ‘bf549’, ‘bf542m’, ‘bf544m’, ‘bf547m’, ‘bf548m’, ‘bf549m’, ‘bf561’, ‘bf592’.
Необязательный параметр sirevision указывает ревизию кремния целевого процессора Blackfin. Все доступные обходные пути для указанной ревизии кремния будут включены. Если sirevision равно ‘none’, обходные пути не включаются. Если sirevision равно ‘any’, все обходные пути для целевого процессора включаются. Макрос
__SILICON_REVISION__определён как две шестнадцатеричные цифры, представляющие основные и второстепенные номера в ревизии кремния. Если sirevision равно ‘none’,__SILICON_REVISION__не определён. Если sirevision равно ‘any’,__SILICON_REVISION__определён как0xffff. Если этот необязательный параметр sirevision не используется, GCC предполагает последнюю известную ревизию кремния целевого процессора Blackfin.GCC определяет препроцессорный макрос для указанного cpu. Для инструментальной цепочки ‘bfin-elf’ этот параметр вызывает подключение BSP оборудования, предоставляемого libgloss, если не задан -msim.
Без этого параметра по умолчанию используется процессор ‘bf532’.
Обратите внимание, что поддержка ‘bf561’ неполная. Для ‘bf561’ определён только препроцессорный макрос.
-
-msim -
Указывает, что программа будет запущена в симуляторе. Это вызывает подключение BSP симулятора, предоставляемого libgloss. Этот параметр имеет эффект только для инструментальной цепочки ‘bfin-elf’. Некоторые другие параметры, такие как -mid-shared-library и -mfdpic, подразумевают -msim.
-
-momit-leaf-frame-pointer -
Не сохранять указатель на кадр в регистре для функций-листьев. Это позволяет избежать инструкций сохранения, настройки и восстановления указателей на кадр и делает доступным дополнительный регистр в функциях-листьях.
-
-mspecld-anomaly -
При включении компилятор гарантирует, что сгенерированный код не содержит упреждающих загрузок после инструкций перехода. Если этот параметр используется,
__WORKAROUND_SPECULATIVE_LOADSопределён. -
-mno-specld-anomaly -
Не генерировать дополнительный код для предотвращения упреждающих загрузок.
-
-mcsync-anomaly -
При включении компилятор гарантирует, что сгенерированный код не содержит инструкций CSYNC или SSYNC слишком рано после условных переходов. Если этот параметр используется,
__WORKAROUND_SPECULATIVE_SYNCSопределён. -
-mno-csync-anomaly -
Не генерировать дополнительный код для предотвращения инструкций CSYNC или SSYNC слишком рано после условного перехода.
-
-mlow64k -
При включении компилятор может воспользоваться знанием, что вся программа помещается в нижние 64К памяти.
-
-mno-low64k -
Предполагается, что программа произвольно большая. Это значение по умолчанию.
-
-mstack-check-l1 -
Проверка стека с использованием информации, помещённой в память кэша L1 ядром uClinux.
-
-mid-shared-library -
Генерировать код, поддерживающий динамические библиотеки с помощью метода идентификатора библиотеки. Это позволяет использовать исполнение на месте и динамические библиотеки в среде без управления виртуальной памятью. Этот параметр подразумевает -fPIC. С целевым параметром ‘bfin-elf’ этот параметр подразумевает -msim.
-
-mno-id-shared-library -
Генерировать код, не предполагающий использование динамических библиотек на основе ID. Это значение по умолчанию.
-
-mleaf-id-shared-library -
Генерировать код, поддерживающий динамические библиотеки с помощью метода идентификатора библиотеки, но предполагает, что эта библиотека или исполняемый файл не будут ссылаться ни на какие другие динамические библиотеки с идентификаторами. Это позволяет компилятору использовать более быстрый код для переходов и вызовов.
-
-mno-leaf-id-shared-library -
Не предполагать, что компилируемый код не будет ссылаться на какие-либо динамические библиотеки с идентификаторами. Для команд перехода и вызова генерируется более медленный код.
-
-mshared-library-id=n -
Указывает идентификационный номер динамической библиотеки на основе ID, которая компилируется. Указание значения 0 генерирует более компактный код; указание других значений принудительно выделяет этот номер для текущей библиотеки, но не более эффективное с точки зрения памяти или времени, чем опускание этого параметра.
-
-msep-data -
Генерировать код, позволяющий разместить сегмент данных в другом участке памяти, отличном от сегмента текста. Это позволяет использовать исполнение на месте в среде без управления виртуальной памятью, устраняя перебазирования относительно секции текста.
-
-mno-sep-data -
Генерировать код, предполагающий, что сегмент данных следует за сегментом текста. Это значение по умолчанию.
-
-mlong-calls -mno-long-calls-
Сообщает компилятору выполнить вызовы функций, сначала загрузив адрес функции в регистр, а затем выполнив вызов подпрограммы на этом регистре. Этот переключатель необходим, если целевая функция находится за пределами 24-битного диапазона адресов, доступного для версии инструкции вызова подпрограммы на основе смещения.
Эта функция по умолчанию отключена. Указание -mno-long-calls восстанавливает поведение по умолчанию. Обратите внимание, что эти переключатели не влияют на то, как компилятор генерирует код для обработки вызовов функций через указатели на функции.
-
-mfast-fp -
Подключиться к библиотеке быстрых операций с плавающей точкой. Эта библиотека ослабляет некоторые правила стандарта IEEE для плавающей точки, касающиеся проверки входных данных на не число (NaN), в целях повышения производительности.
-
-minline-plt -
Включить инлайнирование записей PLT в вызовах функций для функций, которые не известны как локально связанные. Это не имеет эффекта без -mfdpic.
-
-mmulticore -
Создать автономное приложение для многоядерных процессоров Blackfin. Этот параметр вызывает использование соответствующих файлов инициализации и скриптов компоновки, поддерживающих многоядерность, и определяет макрос
__BFIN_MULTICORE. Он может быть использован только с -mcpu=bf561[-sirevision].Этот параметр может быть использован с -mcorea или -mcoreb, которые выбирают модель программирования «один-приложение-на-ядро». Без -mcorea или -mcoreb используется модель программирования «одно-приложение/два-ядра». В этой модели главная функция ядра B должна быть названа как
coreb_main.Если этот параметр не используется, используется модель программирования «одно-приложение-на-одном-ядре».
-
-mcorea -
Создать автономное приложение для ядра A процессора BF561 при использовании модели программирования «один-приложение-на-ядро». Используются соответствующие файлы инициализации и скрипты компоновки для поддержки ядра A, и определён макрос
__BFIN_COREA. Этот параметр может использоваться только совместно с -mmulticore. -
-mcoreb -
Создать автономное приложение для ядра B процессора BF561 при использовании модели программирования «один-приложение-на-ядро». Используются соответствующие файлы инициализации и скрипты компоновки для поддержки ядра B, и определён макрос
__BFIN_COREB. При использовании этого параметра,coreb_mainследует использовать вместоmain. Этот параметр может использоваться только совместно с -mmulticore. -
-msdram -
Создать автономное приложение для SDRAM. Используются соответствующие файлы инициализации и скрипты компоновки, чтобы поместить приложение в SDRAM, и определён макрос
__BFIN_SDRAM. Загрузчик должен инициализировать SDRAM перед загрузкой приложения. -
-micplb Предполагать, что ICPLB включены во время выполнения. Это влияет на некоторые обходные пути для неисправностей. Для целевых систем Linux по умолчанию предполагается, что ICPLB включены; для автономных приложений по умолчанию они выключены.
© Free Software Foundation
Licensed under the GNU Free Documentation License, Version 1.3.
https://gcc.gnu.org/onlinedocs/gcc-13.3.0/gcc/Blackfin-Options.html