15-6
Programmer’s Manual
devices. The list of device interrupt identifiers are list in Table 15-5
15.2.1
User Defined Interrupt Handlers
For each of the external interrupts not used by PPSM system, user can install
their own handler. The generic, or stub, handler source is provided in the PPSM
device library. These are:
SPI Master
SPI Slave(DragonBall only)
IRQ6
IRQ3
IRQ2
IRQ1
INT0 - INT7
Watch Dog
PWM
UART
Each of the stub handler is associated with an external interrupt. For example,
_IRQ6IrptHandler is associated with the IRQ6 external interrupt. When the
external interrupt event occurs, PPSM automatically calls up the associated
handler as part of the interrupt handling procedure.
For system that uses any of the external interrupts, they can supply their own
handler such that integration into PPSM is possible.
For PPSM source licensee, if _UARTIrptHandler() needs to be used, "-
DNO_UART_HANDLER" needs to be included in the compiler option to indicate
that the internal PPSM UART interrupt handler need not be used.
Table 15-5 Interrupt Identifiers and User Defined Handlers
Interrupt Source
Interrupt Identifier
PPSM User Defined Handler
SPI Master
IRPT_SPIM
_SPIMIrptHandler
SPI Slave
IRPT_SPIS
_SPISIrptHandler(DragonBall only)
IRQ1
IRPT_IRQ1
_IRQ1IrptHandler
IRQ2
IRPT_IRQ2
_IRQ2IrptHandler
IRQ3
IRPT_IRQ3
_IRQ3IrptHandler
IRQ6
IRPT_IRQ6
_IRQ6IrptHandler
INT0 - INT7
IRPT_INT
_INTIrptHandler
WatchDog
IRPT_WDOG
_WatchdogIrptHandler
PWM
IRPT_PWM
_PWMIrptHandler
UART
IRPT_UART
_UARTIrptHandler
User Defined
IRPT_USER
None
Personal Portable System Manager
Programmer’s Manual
Interrupt Interrupt Handling
15-7
15.2.2
Device Interrupt Identifiers
The device interrupt identifiers listed in
handlers to send soft interrupt messages from the handler to the application,
much like the system pen and timer interrupt identifiers. PPSM provides a tool,
IrptSendData(), to allow messages be sent from the user installed interrupt
handlers to the application.
can be used by the interrupt
For example, user installed IRQ6 handlers can use IrptSendData() to send a
message to the application from the IRQ6 handler to inform the application of the
event, or to pass data from the hardware layer to the application layer.
15.2.3
Application Access to Handlers
By isolating the interrupt handler from the application, multiple applications can
have access to the same hardware resource. However, an interrupt handler can
only be registered with a single application at any one time. If more than one
application is requesting the services of a single handler, it will be granted to the
first application making the request. The other applications cannot access the
handler until it is released by the first application.
To control access conflict between multiple application tasks accessing the same
hardware concurrently, a set of interrupt tools are defined.
IrptRequest()
IrptRelease()
Requests for an interrupt handler
Releases an interrupt handler
15.2.4
Request and Release Interrupt Handler Service
U32
IrptRequest
(U32
)
STATUS
IrptRelease
)
When an application task needs the resource of a particular hardware peripheral,
it must first request for service with the interrupt handler. Once the task
successfully registers with the handler, all messages received from that peripheral
are directed to the registered task until the task releases the service of the
handler.
One application task can request and register with any number of interrupt
handlers in the system, but each of the handlers in the system can only be
attached to one single application task. Because of this, applications tasks must
release the handler after use in order for the peripherals to be fully utilized.
To request or release a handler, the flags in the
the interrupt tools to specify which of the handlers to use. These flags are bit
values representing individual interrupt handlers.
below are used in all
Table 15-6 Interrupt Handler Flags
Interrupt Handler
Interrupt Flag
SPI Master
IRPT_SPIM_FLAG
F
Freescale Semiconductor, Inc.
For More Information On This Product,
Go to: www.freescale.com
n
.