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-mno-id-shared-library-mleaf-id-shared-library-mno-leaf-id-shared-library-mshared-library-id=n-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