20
•
Installing Xtium-CL PX4
Xtium-CL PX4 User's Manual
Configuring Sapera
Viewing Installed Sapera Servers
The Sapera configuration program (Start • Programs • Teledyne DALSA • Sapera LT •
Sapera Configuration) allows the user to see all available Sapera servers for the installed
Sapera-compatible boards. The System entry represents the system server. It corresponds to the
host machine (your computer) and is the only server that should always be present.
Increasing Contiguous Memory for Sapera Resources
The Contiguous Memory section lets the user specify the total amount of contiguous memory (a
block of physical memory, occupying consecutive addresses) reserved for the resources needed for
Sapera buffers allocation and Sapera messaging. For both items, the Requested value dialog
box shows the ‘CorMem’ driver default memory setting while the Allocated value displays the
amount of contiguous memory allocated successfully. The default values will generally satisfy the
needs of most applications.
The Sapera buffers value determines the total amount of contiguous memory reserved at boot
time for the allocation of dynamic resources used for frame buffer management such as scatter-
gather list, DMA descriptor tables plus other kernel needs. Adjust this value higher if your
application generates any out-of-memory error while allocating host frame buffers or when
connecting the buffers via a transfer object. You can approximate the worst-case scenario amount
of contiguous memory required as follows:
•
Calculate the total amount of host memory used for one frame buffer
[number of pixels per line • number of lines • (2 - if buffer is 10/12/14 or 16 bits)].
•
Provide 200 bytes per frame buffer for Sapera buffer resources.
•
Provide 64 bytes per frame buffer for metadata. Memory for this data is reserved in chunks
of 64kB blocks.
•
Provide 48 bytes per frame buffer for buffer management. Memory for this data is reserved
in chunks of 64kB blocks.
•
For each frame buffer DMA table, allocate 24 bytes + 8 bytes for each 4kB of buffer. For
example, for a 120x50x8 image: 120x50 = 6000 = 1.46 4kB blocks -> roundup to 2 4kB
blocks. Therefore 24 bytes + (2 * 8 bytes) = 40 bytes for DMA tables per frame buffer.
Memory for this data is reserved in chunks of 64kB blocks. If vertical flipping is enabled, one
must add 16 bytes per line per buffer. For example, for an image 4080x3072 image: 16
bytes * 3072 = 49152 bytes.
•
Note that Sapera LT reserves the 1
st
5MB of its own resources, which includes the 200 bytes
per frame buffer mentioned above.
•
Test for any memory error when allocating host buffers. Simply use the Buffer menu of the
Sapera Grab demo program (see
" on page 34
) to allocate the
number of host buffers required for your acquisition source. Feel free to test the maximum
limit of host buffers possible on your host system – the Sapera Grab demo will not crash
when the requested number of host frame buffers is not allocated.
•
The following calculation is an example of the amount of contiguous memory to reserve
beyond 5MB with 80,000 buffers of 2048x1024x8:
a) (80000 * 64 bytes)
b) (80000 * 48 bytes)
c) (80000 * (24 + (((2048*1024)/4kB) * 8))) = 323MB
d) Total = a (rounded up to nearest 64kB) + b (rounded up to nearest 64kB) + c (rounded
up to nearest 64kB).