37 #define _________________________________________VARIABLES_SECTION__________________________________________________________________________ 40 extern const char __main_stack_end;
50 #define CREATE_INTERRUPT_WEAK_PROTOTYPE( BASE_NAME , INTERRUPT_TYPE , INTERRUPT_NUMBER , VECTOR_NUMBER ) \ 51 oC_InterruptHandlerWeakPrototype( BASE_NAME , INTERRUPT_TYPE ); 53 #undef CREATE_INTERRUPT_WEAK_PROROTYPE 56 void (*
const vectors[])(void) __attribute__ ((section (
".vectors"))) =
58 (void (*)(void))&__main_stack_end,
60 #define PUSH_INTERRUPT_TO_VECTOR( BASE_NAME , INTERRUPT_TYPE , INTERRUPT_NUMBER , VECTOR_NUMBER , ...) \ 61 [VECTOR_NUMBER] = oc_InterruptHandlerName(BASE_NAME , INTERRUPT_TYPE) , 63 #undef PUSH_INTERRUPT_TO_VECTOR 67 #define PUSH_INTERRUPT_TO_ARRAY( BASE_NAME , INTERRUPT_TYPE , INTERRUPT_NUMBER , VECTOR_NUMBER , ...) \ 68 [VECTOR_NUMBER] = { .BaseAddress = oC_InterruptBaseAddress_(BASE_NAME,INTERRUPT_TYPE) , \ 69 .Type = oC_InterruptType_(INTERRUPT_TYPE) ,\ 70 .InterruptIndex = oC_InterruptIndex_(BASE_NAME , INTERRUPT_TYPE) ,\ 71 .InterruptNumber= oC_InterruptNumber_(BASE_NAME , INTERRUPT_TYPE)\ 74 #undef PUSH_INTERRUPT_TO_ARRAY 77 #undef _________________________________________VARIABLES_SECTION__________________________________________________________________________ 84 #define _________________________________________INTERFACE_FUNCTIONS_SECTION________________________________________________________________ 102 oC_ARRAY_FOREACH_IN_ARRAY(oC_InterruptData,interruptData)
104 if(interruptData->BaseAddress == BaseAddress && interruptData->Type == InterruptType)
106 data = interruptData;
114 #undef _________________________________________INTERFACE_FUNCTIONS_SECTION________________________________________________________________ 122 #define _________________________________________INTERRUPT_HANDLERS_SECTION_________________________________________________________________ 138 #undef _________________________________________INTERRUPT_HANDLERS_SECTION_________________________________________________________________ oC_InterruptHandler_t oC_UnexpectedInterruptHandler
Handler for unexpected interrupts.
#define oC_ResetInterruptHandlerPrototype
Prototype of reset handler. Not for user usage.
void(* oC_InterruptHandler_t)(void)
Stores interrupt handler pointer.
The file with interface for LSF module.
#define oC_ResetInterruptHandlerName
Name of reset handler. Not for user usage.
#define oC_MACHINE_INTERRUPTS_LIST(ADD_INTERRUPT)
Definition of interrupts.
structure with data for interrupts
#define oC_DefaultInterruptHandler
Creates prototype of default interrupt handler.
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.
#define oC_DefaultInterruptHandlerPrototype
Creates special prototype for default interrupt handler. Not for user usage.
oC_InterruptBaseAddress_t
Base address connected to the interrupt.
Static array definitions.
The file with interface interrupt module.
Definition of the null pointer.
const oC_InterruptData_t oC_InterruptData[oC_InterruptIndex_NumberOfElements]
Data for interrupts.
#define NULL
pointer to a zero