PxIntInstallHandler()
Install an interrupt handler.
- APPLIES TO
-
1.0.0
- SYNOPSIS
-
PxError_t PxIntInstallHandler (PxInt_t intno, PxUInt_t prio, PxInterrupt_t intObj, PxIntHandler_t inthandler, PxArg_t arg);
- ARGUMENTS
|
|
|
|
|
|
|
|
|
- RETURN VALUES
-
-
PXROS error code
-
- ERROR CODES
-
PXERR_REQUEST_INVALID_PARAMETER
intno
out of specificationPXERR_ACCESS_RIGHT
The calling task has not the right to install handlers
PXERR_INTR_ILL
The handler already installed from another task
PXERR_INTERRUPT_ILLINTERRUPT
intObj
not valid interrupt objectPXERR_ILLEGAL_SERVICE_CALLED
Service invalid
- DESCRIPTION
-
Installs the C-function handler as interrupt handler for interrupt number
intno
. Whenever this interrupt occurs, handler is queued into the PXROSsysjob
list via the interrupt objectintObj
. When the interrupt level is left to system level, handler is executed with argumentarg
on the installing task’s interrupt stack.Handler MUST FOLLOW the standard GNU C calling conventions!
The function is not protected against the abort mechanism!
The installation is NOT ATOMIC! The application MUST ENSURE that no
intno
interrupts occur during a call toPxIntInstallHandler (intno,…)
!
- IMPLEMENTATION GUIDELINES
-
- Before call
-
-
The parameter
intno
must be a valid interrupt id. (V) -
intObj
must be a valid PXROS-HR interrupt object created with aPxInterruptRequest
call (V). The validity ofintObj
may also be checked by thePxInterruptIsValid
macro (F). -
inthandler
must be a pointer to an interrupt handler function.(V)
-
- After call
-
-
The function returns
PXERR_NOERROR
if the interrupt handler could be installed. Any other return value describes an error, which has to be interpreted (C).
-
- Best Practice
-
-
The calling task must have the right to install interrupt handlers (
PXACCESS_INSTALL_HANDLERS
). (V)
-
- SEE ALSO
- USAGE
-
#include "pxdef.h" PxError_t Err = PxIntInstallHandler(intno, 1, intObj, interruptHandler, (PxArg_t) 0); if (Err != PXERR_NOERROR) { // Report error }