Spec-Zone.ru › GCC 12

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

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

-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 для плавающей точки, касающиеся проверки входных данных на Not-a-Number (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-12.2.0/gcc/Blackfin-Options.html

Spec-Zone.ru

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