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-
Генерировать код, не предполагающий использования динамических библиотек, основанных на ID. Это значение по умолчанию.
-mleaf-id-shared-library-
Генерировать код, поддерживающий динамические библиотеки с помощью метода идентификации библиотек, но предполагает, что эта библиотека или исполняемый файл не будут связаны ни с какими другими динамическими библиотеками, основанными на ID. Это позволяет компилятору использовать более быстрый код для переходов и вызовов.
-mno-leaf-id-shared-library-
Не предполагать, что компилируемый код не будет связан с динамическими библиотеками, основанными на ID. Генерируется более медленный код для инструкций перехода и вызова.
-mshared-library-id=n-
Указывает идентификационный номер динамической библиотеки, основанной на ID, которая компилируется. Указание значения 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 включены; для автономных приложений по умолчанию они отключены.
© Free Software Foundation
Licensed under the GNU Free Documentation License, Version 1.3.
https://gcc.gnu.org/onlinedocs/gcc-11.4.0/gcc/Blackfin-Options.html