Spec-Zone.ru › GCC 6

3.18.6 Параметры 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

Не сохранять указатель на кадр в регистре для функций-листьев. Это исключает инструкции по сохранению, настройке и восстановлению указателей на кадр и освобождает дополнительный регистр в функциях-листьях. Параметр -fomit-frame-pointer удаляет указатель на кадр для всех функций, что может затруднить отладку.

-mspecld-anomaly

При включении компилятор гарантирует, что сгенерированный код не содержит условных загрузок после инструкций перехода. Если этот параметр используется, __WORKAROUND_SPECULATIVE_LOADS определяется.

-mno-specld-anomaly

Не генерировать дополнительный код для предотвращения условных загрузок.

-mcsync-anomaly

При включении компилятор гарантирует, что сгенерированный код не содержит инструкций CSYNC или SSYNC слишком рано после условных переходов. Если этот параметр используется, __WORKAROUND_SPECULATIVE_SYNCS определяется.

-mno-csync-anomaly

Не генерировать дополнительный код для предотвращения инструкций CSYNC или SSYNC слишком рано после условного перехода.

-mlow-64k

При включении компилятор может использовать информацию о том, что вся программа помещается в нижние 64 КБ памяти.

-mno-low-64k

Предполагается, что программа произвольно большая. Это значение по умолчанию.

-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-6.5.0/gcc/Blackfin-Options.html

Spec-Zone.ru

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