6.4.1.22 Атрибуты функций 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-15.3.0/gcc/NDS32-Function-Attributes.html