32 #ifndef SYSTEM_PORTABLE_INC_OC_INTERRUPTS_H_ 33 #define SYSTEM_PORTABLE_INC_OC_INTERRUPTS_H_ 35 #include <oc_interrupts_defs.h> 45 #define _________________________________________MACROS_SECTION_____________________________________________________________________________ 55 #define oC_InterruptType_(TYPE_NAME) oC_1WORD_FROM_2( oC_InterruptType_ , TYPE_NAME ) 62 #define oC_InterruptIndex_(BASE_NAME,TYPE_NAME) oC_1WORD_FROM_4( oC_InterruptIndex_ , BASE_NAME , _ , TYPE_NAME ) 69 #define oC_InterruptNumber_(BASE_NAME,TYPE_NAME) oC_1WORD_FROM_4( oC_InterruptNumber_ , BASE_NAME , _ , TYPE_NAME ) 81 #define oC_InterruptBaseAddress_(BASE_NAME,TYPE_NAME) oC_1WORD_FROM_4( oC_InterruptBaseAddress_ , BASE_NAME , _ , TYPE_NAME ) 110 #define oc_InterruptHandlerName(BASE_NAME,TYPE_NAME) oC_1WORD_FROM_4( oC_InterruptHandler_ , BASE_NAME , _ , TYPE_NAME ) 139 #define oC_InterruptHandlerPrototype(BASE_NAME,TYPE_NAME) void oc_InterruptHandlerName(BASE_NAME , TYPE_NAME) (void) 146 #define oC_InterruptHandlerWeakPrototype(BASE_NAME,TYPE_NAME) oC_InterruptHandlerPrototype(BASE_NAME , TYPE_NAME) __attribute__ ((interrupt, weak, alias(oC_TO_STRING(oC_DEFAULT_INTERRUPT_HANDLER_NAME)))) 167 #define oC_InterruptHandler(BASE_NAME,TYPE_NAME) oC_InterruptHandlerPrototype(BASE_NAME , TYPE_NAME) 226 #define oC_DefaultInterruptHandler void oC_DEFAULT_INTERRUPT_HANDLER_NAME(void) 233 #define oC_DefaultInterruptHandlerPrototype oC_DefaultInterruptHandler __attribute__ ((interrupt)) 241 #define oC_ResetInterruptHandlerName Reset_Handler 248 #define oC_ResetInterruptHandler void oC_ResetInterruptHandlerName( void ) 255 #define oC_ResetInterruptHandlerPrototype oC_ResetInterruptHandler 257 #undef _________________________________________MACROS_SECTION_____________________________________________________________________________ 265 #define _________________________________________TYPES_SECTION______________________________________________________________________________ 285 #define MAKE(TYPE_NAME) oC_InterruptType_(TYPE_NAME) , 301 #define MAKE_INTERRUPT_NUMBER(BASE_ADDRESS_NAME , TYPE_NAME , PRIORITY , NUMBER) \ 302 oC_InterruptIndex_(BASE_ADDRESS_NAME , TYPE_NAME) = NUMBER , 304 #undef MAKE_INTERRUPT_NUMBER 305 oC_InterruptIndex_NumberOfElements
318 #define MAKE_INTERRUPT_PRIORITY(BASE_ADDRESS_NAME , TYPE_NAME , PRIORITY , NUMBER) \ 319 oC_InterruptNumber_(BASE_ADDRESS_NAME , TYPE_NAME) = PRIORITY , 321 #undef MAKE_INTERRUPT_PRIORITY 322 oC_InterruptNumber_NumberOfElements
336 #define MAKE(BASE_ADDRESS_NAME , TYPE_NAME , PRIORITY , NUMBER) \ 337 oC_InterruptBaseAddress_(BASE_ADDRESS_NAME , TYPE_NAME) = oC_BaseAddress_(BASE_ADDRESS_NAME) , 340 oC_InterruptBaseAddress_NumberOfElements
380 #undef _________________________________________TYPES_SECTION______________________________________________________________________________ 388 #define _________________________________________PROTOTYPES_SECTION_________________________________________________________________________ 392 #undef _________________________________________PROTOTYPES_SECTION_________________________________________________________________________ 400 #define _________________________________________VARIABLES_SECTION__________________________________________________________________________ 431 #undef _________________________________________VARIABLES_SECTION__________________________________________________________________________ oC_InterruptHandler_t oC_UnexpectedInterruptHandler
Handler for unexpected interrupts.
#define oC_MACHINE_INTERRUPTS_TYPES_LIST(ADD_INTERRUPT_TYPE)
definition with types of interrupts
void(* oC_InterruptHandler_t)(void)
Stores interrupt handler pointer.
The file contains definitions for the compiler, that helps to manage errors, etc. ...
#define oC_InterruptType_(TYPE_NAME)
Returns value from oC_InterruptType_t. It is an index of interrupt type.
#define oC_MACHINE_INTERRUPTS_LIST(ADD_INTERRUPT)
Definition of interrupts.
structure with data for interrupts
const oC_InterruptData_t * oC_Interrupt_GetData(oC_InterruptBaseAddress_t BaseAddress, oC_InterruptType_t InterruptType)
returns data pointer for interrupt
oC_InterruptType_t
Stores interrupt type.
oC_InterruptBaseAddress_t
Base address connected to the interrupt.
Contains machine core specific functions.
const oC_InterruptData_t oC_InterruptData[oC_InterruptIndex_NumberOfElements]
Data for interrupts.
oC_InterruptIndex_t
Index of interrupt in the interrupt vector.
oC_InterruptNumber_t
Number of interrupt in system.
Interface for Machine Base Addresses (BA) module.