Spec-Zone.ru › GCC 14

3.19.39 Параметры PRU

Эти параметры командной строки определены для целевой платформы PRU:

-minrt

Связь с минимальной средой выполнения. Это может значительно уменьшить размер конечного двоичного файла ELF, но некоторые стандартные возможности среды выполнения C удаляются.

Этот параметр отключает поддержку статических инициализаторов и конструкторов. Обратите внимание, что компилятор все равно может генерировать код со статическими инициализаторами и конструкторами. Программист должен убедиться, что исходная программа не будет использовать эти возможности.

Минимальный стартовый код не передаст аргументы argc и argv функции main, поэтому последняя должна быть объявлена как int main (void). Это уже норма для большинства проектов прошивки.

-mmcu=mcu

Укажите вариант аппаратного обеспечения PRU для использования. Соответствующий файл спецификаций будет загружен, передавая размеры областей памяти компоновщику и определяя аппаратные макросы C.

Newlib предоставляет только спецификацию sim, предназначенную для запуска регрессионных тестов с использованием симулятора. Спецификации для реального оборудования можно получить, установив пакет GnuPruMcu.

-mno-relax

Заставьте GCC передать параметр командной строки --no-relax компоновщику вместо параметра --relax.

-mloop

Разрешить (или запретить) GCC использовать инструкцию LOOP.

-mabi=variant

Укажите вариант ABI для вывода кода. -mabi=ti выбирает неизменённый ABI TI, а -mabi=gnu выбирает вариант GNU, который более естественно справляется с определёнными предположениями GCC. Вот отличия:

‘Размер указателя на функцию’

ABI TI определяет, что указатели на функции (код) имеют размер 16 бит, в то время как GNU поддерживает только 32-битные указатели на данные и код.

‘Необязательный указатель на возвращаемое значение’

Значения возврата функции, размер которых больше 64 бит, передаются с помощью скрытого указателя как первого аргумента функции. Однако ABI TI требует, чтобы указатель мог быть NULL в случае, если вызывающая сторона не использует возвращаемое значение. GNU всегда передает и ожидает действительный указатель на возвращаемое значение.

Текущее реализация -mabi=ti просто выдает ошибку компиляции при обнаружении любого из вышеуказанных конструкций кода. Вследствие этого стандартная библиотека C не может быть скомпилирована и она опущена при компоновке с -mabi=ti.

Расслабление — это функция GNU, и по соображениям безопасности она отключена при использовании -mabi=ti. TI-инструментарий не генерирует перемещения для инструкций QBBx, поэтому компоновщик GNU не может их настроить при сокращении смежных псевдоинструкций LDI32.

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

Spec-Zone.ru

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