![]() |
FuSa 8-Bit Libraries Safety Framework
|
Contains API prototypes for the Interrupt Manager. More...
Files | |
| file | midware_interrupt_manager.c |
| Implements APIs for the Interrupt Manager. | |
Functions | |
| void | MW_SetIntVectorLocation (bool expectAltLoc) |
| Configures whether the device should expect an alternative interrupt vector table location (see IVSEL bit in CPUINT.CTRLA). | |
| errFlag_t | MW_SetIntPriority (bool useRoundRobin, uint8_t altStartVect, uint8_t highPriorityVect) |
| Configures interrupt scheduling and priority scheme. | |
| errFlag_t | MW_EnableGlobalInterrupts (void) |
| Enables global interrupts on the device. | |
| void | MW_DisableGlobalInterrupts (void) |
| Disables global interrupts on the device. | |
Contains API prototypes for the Interrupt Manager.
The Interrupt Manager provides services to Tasks to ensure correct interaction with features of the CPUCTRL and CPUINT modules.
| errFlag_t MW_EnableGlobalInterrupts | ( | void | ) |
Enables global interrupts on the device.
This function sets the global interrupts enable bit in the CPU status register, and verifies the status by reading back the bit.
| ERROR | Failed to enable global interrupts. |
| NO_ERROR | Global interrupts enabled successfully. |
Definition at line 79 of file midware_interrupt_manager.c.
| errFlag_t MW_SetIntPriority | ( | bool | useRoundRobin, |
| uint8_t | altStartVect, | ||
| uint8_t | highPriorityVect ) |
Configures interrupt scheduling and priority scheme.
This function enables or disables round robin interrupt scheduling for normal (level 0) interrupts and selects a starting vector priority order for both static and round robin scheduling. It also optionally sets which interrupt vector has high priority (level 1) which can interrupt other normal interrupts.
| useRoundRobin | Enables or disables round robin scheduling. |
| altStartVect | Sets the lowest priority vector number for static scheduling and the initial round robin schedule. Set to 0 to use default priority based on vector number. |
| highPriorityVect | Sets the high priority interrupt vector number. Set to 0 to disable this feature. |
| ERROR | Provided interrupt vector numbers are invalid, function aborted. |
| NO_ERROR | Interrupt priority and scheduling successfully configured. |
Definition at line 44 of file midware_interrupt_manager.c.
| void MW_SetIntVectorLocation | ( | bool | expectAltLoc | ) |
Configures whether the device should expect an alternative interrupt vector table location (see IVSEL bit in CPUINT.CTRLA).
| expectAltLoc | Selects whether the expected location of the interrupt vectors is at the alternative location. |
Definition at line 31 of file midware_interrupt_manager.c.