3.17.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-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- Предполагать, что ICPLBs включены во время выполнения. Это влияет на некоторые обходные решения проблем. Для целей Linux по умолчанию предполагается, что ICPLBs включены; для автономных приложений значение по умолчанию выключено.
© Free Software Foundation
Licensed under the GNU Free Documentation License, Version 1.3.
https://gcc.gnu.org/onlinedocs/gcc-4.9.4/gcc/Blackfin-Options.html