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