PxIntInstallHandler()
Install an interrupt handler.
- APPLIES TO
-
8.2.0
- SYNOPSIS
-
PxError_t PxIntInstallHandler (PxUInt_t intno, PxInterrupt_t intObj, void(* inthandler)(PxArg_t), PxArg_t arg); - ARGUMENTS
|
|
|
|
|
|
|
- RETURN VALUES
-
-
PXROS error code
-
- ERROR CODES
-
PXERR_REQUEST_INVALID_PARAMETERintnoout of specificationPXERR_ACCESS_RIGHTThe calling task has not the right to install handlers
PXERR_INTR_ILLThe handler already installed from another task
PXERR_INTERRUPT_ILLINTERRUPTintObjnot valid interrupt objectPXERR_ILLEGAL_SERVICE_CALLEDService invalid
- DESCRIPTION
-
Installs the C-function handler as interrupt handler for interrupt number
intno. Whenever this interrupt occurs, handler is queued into the PXROSsysjoblist via the interrupt objectintObj. When the interrupt level is left to system level, handler is executed with argumentargon 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
intnointerrupts occur during a call toPxIntInstallHandler (intno,…)!
- IMPLEMENTATION GUIDELINES
-
- Before call
-
-
The parameter
intnomust be a valid interrupt id. (V) -
intObjmust be a valid PXROS-HR interrupt object created with aPxInterruptRequestcall (V). The validity ofintObjmay also be checked by thePxInterruptIsValidmacro (F). -
inthandlermust be a pointer to an interrupt handler function.(V)
-
- After call
-
-
The function returns
PXERR_NOERRORif 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, intObj, interruptHandler, (PxArg_t) 0); if (Err != PXERR_NOERROR) { // Report error }