Spec-Zone.ru › GCC 7

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 (Not-a-Number) в интересах производительности.

-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

Предполагается, что ICPLBs включены во время выполнения. Это влияет на некоторые обходные пути аномалий. Для целевых систем Linux по умолчанию предполагается, что ICPLBs включены; для автономных приложений по умолчанию – выключены.

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

© Free Software Foundation
Licensed under the GNU Free Documentation License, Version 1.3.
https://gcc.gnu.org/onlinedocs/gcc-7.5.0/gcc/Blackfin-Options.html

Spec-Zone.ru

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