Spec-Zone.ru › GCC 14

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

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API