Physical Driver Design
In general, a physical driver controls all instances of a device within a sys-
tem. For example, if there are four serial ports (SPORTs) in the system, a
single physical driver for the SPORT peripheral is capable of controlling
all four serial ports individually and simultaneously.
The physical driver is responsible for hooking any and all interrupts as
needed for the physical device. Many physical devices generate interrupts
on error conditions. These interrupts are caught by the physical driver and
passed back up as an event via the callback mechanism. The interrupt
manager provides a very simple, straightforward mechanism that is used
for all interrupt processing. This simplifies the task of porting device driv-
ers to different operating environments, toolchains, and operating
systems.
If a device is supported by peripheral DMA, the physical driver is greatly
simplified as the device manager typically controls all DMA interaction,
without any involvement from the physical driver. When a device is
opened, the device manager interrogates the physical driver as to whether
the device is supported by peripheral DMA. If the physical driver responds
in the affirmative, the device manager controls all DMA activity (such as
initialization, providing data buffers, callback mechanisms, and so on) via
the DMA manager API. As such, the device manager never calls the
and
pdd_Read
adi_pdd_Write
supported by peripheral DMA. Physical drivers for devices that are sup-
ported by peripheral DMA are quite simple to implement.
For devices that are not supported by peripheral DMA, physical drivers
can still take advantage of the DMA manager, as memory DMA can be an
effective strategy for reading/writing to devices that use programmed I/O.
If directed to use deferred callbacks, physical drivers use the services of the
deferred callback manager exclusively in order to post callbacks into the
device manager. See
information.
10-46
routines of a physical driver that is
"Deferred Callback Manager" on page 5-1
VisualDSP++ 5.0 Device Drivers and System
Services Manual for Blackfin Processors
adi_
for more
Need help?
Do you have a question about the VisualDSP++ 5.0 and is the answer not in the manual?