Spec-Zone.ru › GCC 15

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

Выполнять проверку стека с использованием сведений, размещенных ядром uClinux в памяти L1 scratchpad.

-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 определяется. При использовании этого параметра вместо main следует использовать coreb_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-15.3.0/gcc/Blackfin-Options.html

Spec-Zone.ru

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