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 scratchpad память ядром 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 включены; для автономных приложений по умолчанию они выключены.
© Free Software Foundation
Licensed under the GNU Free Documentation License, Version 1.3.
https://gcc.gnu.org/onlinedocs/gcc-10.5.0/gcc/Blackfin-Options.html