Table 4-1. ni-visa/ni-vxi examples, Optimizing large vxibus transfers, Optimizing large vxibus transfers -7 – National Instruments NI VXIpc-882 User Manual

Page 55

Advertising
background image

Chapter 4

Developing Your Application

© National Instruments Corporation

4-7

NI VXIpc-882 User Manual

Note

MAX includes configuration options that affect low-level functions and shared

memory, as well as trigger mappings and other attributes of your VXI system. Refer to the
MAX help for information regarding these options.

Optimizing Large VXIbus Transfers

For best performance, keep the following in mind when using

viMove()

or

VXImove()

:

Make sure your buffers are 32-bit aligned.

Transfer 32-bit data whenever possible.

Use VXI block access privileges to significantly improve performance
to devices that are capable of accepting block transfers.

To optimize move performance on virtual memory systems, lock the
user buffer in memory yourself so the move operation does not need to
lock the buffer.

To optimize move performance on paged memory systems, use a
contiguous buffer so the move operation does not need to build a
scatter-gather list for the user buffer.

Note

viMemAlloc()

or

VXImemAlloc()

returns 32-bit aligned, page-locked,

contiguous buffers which work efficiently with the move operations.

Table 4-1. NI-VISA/NI-VXI Examples

Coverage

NI-VISA Example

NI-VXI Example

(Optional)

Message-Based
Access

RdWrt.c

VXIws.c

High-Level
Register Access

HighReg.c

VXIhigh.c

Low-Level
Register Access

LowReg.c

VXIlow.c

Sharing Memory

ShareSys.c

VXImem.c

Interrupt Handling

AsyncIntr.c

and

WaitIntr.c

VXIint.c

Trigger Handling

WaitTrig.c

VXItrig.c

Advertising