Spec-Zone.ru › GCC 10

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

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 scratchpad память ядром 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-10.5.0/gcc/Blackfin-Options.html

Spec-Zone.ru

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