См. документацию.
41 #ifndef _iARCH_AVR_INTERRUPT_H_
42 #define _iARCH_AVR_INTERRUPT_H_ 1
44 #if defined (defined (__ICCARM__))
47 #elif (defined (__GNUC__))
52 # PORT_ISR_IRQ_PROTO(name) \
53 extern "C" void name##_vect (void) __attribute__ ((signal,__INTR_ATTRS)) __VA_ARGS__
55 #define PORT_ISR_IRQ_PROTO(name) \
56 void name##_vect (void) __attribute__ ((signal,__INTR_ATTRS)) __VA_ARGS__
59 #define PORT_ISR_IRQ(name) ISR(name##_vect)
61 #ifdef iSCHEDULER_TYPE
62 #if (iSCHEDULER_TYPE == iPREEMPETIVE_SCHEDULER)
63 #if (configUSE_PREEMPTION == 1)
67 #define PORT_ISR_IRQ_OS(name) \
68 static inline void name##_inline_interrupt_wrapper(void); \
69 ISR(name##_vect,ISR_NAKED) \
72 name##_inline_interrupt_wrapper(); \
73 portRESTORE_CONTEXT(); \
75 void name##_inline_interrupt_wrapper(void)
83 #ifndef PORT_ISR_EXCEPTION_PROTO
84 #define PORT_ISR_EXCEPTION_PROTO(name) ISR_HANDLER_PROTO(name##_Handler)
86 #ifndef PORT_ISR_EXCEPTION
87 #define PORT_ISR_EXCEPTION(name) ISR_HANDLER(name##_Handler)
90 #ifndef PORT_ISR_IRQ_PROTO
91 #define PORT_ISR_IRQ_PROTO(name) ISR_HANDLER_PROTO(name##_IRQHandler)
94 #define PORT_ISR_IRQ(name) ISR_HANDLER(name##_IRQHandler)
97 #ifndef PORT_ISR_IRQ_OS_PROTO
98 #define PORT_ISR_IRQ_OS_PROTO(name) ISR_HANDLER_PROTO(name##_IRQHandler)
100 #ifndef PORT_ISR_IRQ_OS
101 #define PORT_ISR_IRQ_OS(name) ISR_HANDLER(name##_IRQHandler)