RTOS Considerations
Deployment of system services and the device driver model within an
application based around an RTOS, such as VDK, is highly recom-
mended. However, observe these considerations to avoid conflict with the
RTOS and to successfully deploy the system services and device drivers
within a multi-threaded application.
The following discussion, which is limited to VDK, is also relevant
to other RTOS environments.
Interoperability of System Services With VDK
There are three major considerations to keep in mind when deploying sys-
tem services and the device driver model within a VDK-based application.
• Interrupt handling – The interrupt manager is a cornerstone of the
system services and the device driver model. The interrupt manager
is designed to manage only the interrupt vector groups (IVG) that
it is requested to manage, as dictated by each call to
adi_int_CECHook()
per the user's requirements. Thus, VDK-managed interrupts can
easily coexist alongside those managed by system services, provided
that neither method manages the same IVG levels as the other. It is
not possible to have a VDK ISR and an interrupt manager chain
assigned to the same IVG level, as one will overwrite the other in
the event vector table (EVT).
All DMA channels and device drivers use the default IVG levels as
defined in the
(that is, during the call to
• Prohibited interrupt levels – Appendix A of the VisualDSP++ 5.0
Kernel (VDK) User's Guide details four interrupt levels [EVT3
(EVX), EVT6 (IVTMR), IVG14, and IVG15] which are reserved
VisualDSP++ 5.0 Device Drivers and System
Services Manual for Blackfin Processors
, leaving the other IVG levels to be handled as
registers at the time of device initialization
SIC_IARx
adi_dev_Open()
Introduction
).
1-17
Need help?
Do you have a question about the VisualDSP++ 5.0 and is the answer not in the manual?