6.33.21 Атрибуты функций NDS32
Эти атрибуты функций поддерживаются бэкендом NDS32:
-
exception -
Используйте этот атрибут на целевой системе NDS32, чтобы указать, что указанная функция является обработчиком исключений. Компилятор сгенерирует соответствующие секции для использования в обработчике исключений.
-
interrupt -
На целевой системе NDS32 этот атрибут указывает, что указанная функция является обработчиком прерывания. Компилятор генерирует соответствующие секции для использования в обработчике прерывания. Вы можете использовать следующие атрибуты для изменения поведения:
-
nested Эта обработка прерывания прерывается.
not_nestedЭта обработка прерывания не прерывается.
nested_readyЭта обработка прерывания прерывается после того, как установлено
PSW.GIE(глобальное разрешение прерываний). Это позволяет обработчику прерывания завершить некоторые короткие критические участки кода перед включением прерываний.save_allСистема поможет сохранить все регистры в стеке перед входом в обработчик прерывания.
partial_saveСистема поможет сохранить регистры вызывающей функции в стеке перед входом в обработчик прерывания.
-
-
naked -
Этот атрибут позволяет компилятору построить необходимое объявление функции, позволяя телу функции быть кодом ассемблера. Указанная функция не будет иметь пролога/эпилога, сгенерированных компилятором. В голых функциях безопасно включать только базовые
asmинструкции (см. Основные инструкции ассемблера без операндов). Использование расширенныхasmинструкций или смешанного кодаasmи C может показаться работающим, но их надежная работа не гарантируется, и они не поддерживаются. -
reset -
Используйте этот атрибут на целевой системе NDS32, чтобы указать, что указанная функция является обработчиком сброса. Компилятор сгенерирует соответствующие секции для использования в обработчике сброса. Вы можете использовать следующие атрибуты для предоставления дополнительной обработки исключений:
-
nmi Предоставьте пользовательскую функцию для обработки исключения NMI.
warmПредоставьте пользовательскую функцию для обработки исключения теплого сброса.
-
© Free Software Foundation
Licensed under the GNU Free Documentation License, Version 1.3.
https://gcc.gnu.org/onlinedocs/gcc-13.3.0/gcc/NDS32-Function-Attributes.html