Spec-Zone.ru › GCC 9

3.18.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

Генерировать код, не предполагающий использования динамических библиотек на основе идентификаторов. Это значение по умолчанию.

-mleaf-id-shared-library

Генерировать код, поддерживающий динамические библиотеки с использованием метода идентификаторов библиотек, но предполагает, что данная библиотека или исполняемый файл не будут ссылаться на другие динамические библиотеки с идентификаторами. Это позволяет компилятору использовать более быстрый код для переходов и вызовов.

-mno-leaf-id-shared-library

Не предполагать, что компилируемый код не будет ссылаться на динамические библиотеки с идентификаторами. Генерируется более медленный код для инструкций переходов и вызовов.

-mshared-library-id=n

Указывает идентификационный номер динамической библиотеки на основе идентификаторов, которая компилируется. Указание значения 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; для автономных приложений по умолчанию – выключено.

Далее: Параметры C6X, Предыдущий: Параметры AVR, Вверх: Параметры подмодели [Содержание][Индекс]

© Free Software Foundation
Licensed under the GNU Free Documentation License, Version 1.3.
https://gcc.gnu.org/onlinedocs/gcc-9.5.0/gcc/Blackfin-Options.html

Spec-Zone.ru

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