6.33.27 Атрибуты функций RISC-V ¶
Эти атрибуты функций поддерживаются бэкэндом RISC-V:
naked-
Этот атрибут позволяет компилятору сгенерировать необходимое объявление функции, разрешая при этом использование ассемблерного кода в теле функции. Указанная функция не будет иметь пролога/эпилога, генерируемых компилятором. В функциях naked безопасно использовать только базовые
asmинструкции (см. Основные инструкции ассемблера без операндов). Использование расширенныхasmинструкций или комбинации базовыхasmинструкций и C-кода может показаться работоспособным, но надёжность их работы не гарантируется, и их использование не поддерживается. interrupt-
Используйте этот атрибут, чтобы указать, что указанная функция является обработчиком прерываний. При наличии этого атрибута компилятор генерирует последовательности входа и выхода из функции, подходящие для использования в обработчике прерываний.
Вы можете указать тип прерывания, добавив необязательный параметр к атрибуту прерывания, как показано ниже:
void f (void) __attribute__ ((interrupt ("user")));Допустимые значения для этого параметра —
user,supervisor, иmachine. Если параметр не указан, используется значение по умолчаниюmachine.
© Free Software Foundation
Licensed under the GNU Free Documentation License, Version 1.3.
https://gcc.gnu.org/onlinedocs/gcc-10.5.0/gcc/RISC-V-Function-Attributes.html