Memory Access (MEMACC) Resource
This topic describes the Memory Access (MEMACC) Resource that is provided to encapsulate the address space of a memory-mapped bus, such as the VXIbus.
This section contains information specific to the Windows product.
MEMACC Resource Overview
The Memory Access (MEMACC) Resource encapsulates the address space of a memory-mapped bus such as the VXIbus. A VISA Memory Access Resource, like any other resource, starts with the basic operations and attributes of the VISA Resource Template. For example, modifying the state of an attribute is done via the operation viSetAttribute.
Although the MEMACC resource does not have viSetAttribute listed in its operations, it provides the operation because it is defined in the VISA Resource Template. From this basic set, each resource adds its specific operations and attributes that allow it to perform its dedicated task, such as reading a register or writing to a memory location.
The MEMACC Resource lets a controller interact with the interface associated with this resource. It does this by providing the controller with services to access arbitrary registers or memory addresses on memory-mapped buses.
MEMACC Resource Attributes
AP = Access Privileges
Attribute Name |
Attribute Value |
Access Privilege |
Data Type |
Range |
Default |
|
---|---|---|---|---|---|---|
Generic MEMACC Resource Attributes |
||||||
0x3FFF001EUL |
RW |
Local |
ViBoolean |
VI_TRUE |
N/A |
|
0xBFFF00E9UL |
RO |
Global |
ViString |
N/A |
N/A |
|
0x3FFF0176UL |
RO |
Global |
ViUInt16 |
0 to FFFFh |
0 |
|
0x3FFF0171UL |
RO |
Global |
ViUInt16 |
VI_INTF_VXI |
N/A |
|
0x3FFF001AUL |
RW |
Local |
ViUInt32 |
VI_TMO_IMMEDIATE |
2000 msec. |
|
VXI and GPIB-VXI and PXI Specific MEMACC Resource Attributes |
||||||
0x3FFF0041UL |
RW |
Local |
ViInt32 |
0 to 1 |
1 |
|
0x3FFF0040UL |
RW |
Local |
ViInt32 |
0 to 1 |
1 |
|
0x3FFF00C3UL |
RO |
Local |
ViUInt16 |
VI_NMAPPED |
VI_NMAPPED |
|
0x3FFF0098UL |
RO |
Local |
ViBusAddress |
N/A |
N/A |
|
0x3FFF009BUL |
RO |
Local |
ViBusAddress64 |
N/A |
N/A |
|
0x3FFF009AUL |
RO |
Local |
ViBusSize |
N/A |
N/A |
|
0x3FFF009CUL |
RO |
Local |
ViBusSize64 |
N/A |
N/A |
|
VXI and GPIB-VXI Specific MEMACC Resource Attributes |
||||||
0x3FFF0039UL |
RW |
Local |
ViUInt16 |
VI_DATA_NPRIV |
VI_DATA_PRIV |
|
0x3FFF003AUL |
RW |
Local |
ViUInt16 |
VI_BIG_ENDIAN |
VI_BIG_ENDIAN |
|
0x3FFF003CUL |
RW |
Local |
ViUInt16 |
VI_DATA_NPRIV |
VI_DATA_PRIV |
|
0x3FFF003DUL |
RW |
Local |
ViUInt16 |
VI_BIG_ENDIAN |
VI_BIG_ENDIAN |
|
0x3FFF00D5UL |
RO |
Global |
ViInt16 |
0 to 255 |
N/A |
|
0x3FFF0045UL |
RW* |
Local |
ViUInt16 |
VI_DATA_NPRIV |
VI_DATA_PRIV |
|
0x3FFF0047UL |
RW* |
Local |
ViUInt16 |
VI_BIG_ENDIAN |
VI_BIG_ENDIAN |
|
* For VISA 2.2, the attributes VI_ATTR_WIN_BYTE_ORDER and VI_ATTR_WIN_ACCESS_PRIV are RW (readable and writable) when the corresponding session is not mapped ( VI_ATTR_WIN_ACCESS = = VI_NMAPPED). When the session is mapped, these attributes are RO (read only). |
||||||
0x3FFF0173UL |
RO |
Global |
ViUInt16 |
0 to 30, VI_NO_SEC_ADDR |
N/A |
|
0x3FFF0172UL |
RO |
Global |
ViUInt16 |
0 to 30 |
N/A |
|
0x3FFF0101UL |
RO |
Global |
ViUInt16 |
0 to FFFFh |
N/A |
MEMACC Resource Attribute Descriptions
MEMACC Resource Events
This resource defines the following event for communication with applications, where AP = Access Privilege.
VI_EVENT_IO_COMPLETION - Notification that an asynchronous operation has completed.
Event Attribute |
Attribute Value |
Description |
AP |
Data Type |
Range |
---|---|---|---|---|---|
0x3FFF4027UL |
Address of a buffer that was used in an asynchronous operation. |
RO |
ViBuf |
N/A |
|
0x3FFF4010UL |
Unique logical identifier of the event. |
RO |
ViEventType |
VI_EVENT_IO_COMPLETION |
|
|
0x3FFF4006UL |
Job ID of the asynchronous operation that has completed. |
RO |
iJobId |
N/A |
0xBFFF4042UL |
Name of the operation generating the event. |
RO |
iString |
N/A |
|
0x3FFF4025UL |
Return code of the asynchronous I/O operation that has completed. |
RO |
iStatus |
N/A |
|
32-bit: 0x3FFF4026UL 64-bit: 0x3FFF4028UL |
Actual number of elements that were asynchronously transferred. |
RO |
ViBus Size |
* |
|
0x3FFF4026UL |
Actual number of elements that were asynchronously transferred. |
RO |
ViUInt32 |
0 to FFFFFFFFh |
|
0x3FFF4028UL |
Actual number of elements that were asynchronously transferred. |
RO |
ViUInt64 |
0 to FFFFFFFF FFFFFFFFh |
*The data type is defined in the appropriate VPP 4.3.x framework specification.
**Defined only for operating systems that are 64-bit native.
MEMACC Resource Operations
viIn8 (vi, space, offset, val8)
viIn16 (vi, space, offset, val16)
viIn32 (vi, space, offset, val32)
viIn64(vi, space, offset, val64)
viMapAddress (vi, mapSpace, mapBase, mapSize, access, suggested, address)
viMapAddressEx (vi, mapSpace, mapBase64, mapSize, access, suggested, address)
viMemAllocEx(vi, size, offset64)
viMove (vi, srcSpace, srcOffset, srcWidth, destSpace, destOffset, destWidth, length)
viMovEx(vi, srcSpace, srcOffset64, srcWidth, destSpace, destOffset64, destWidth, length)
viMoveAsync (vi, srcSpace, srcOffset, srcWidth, destSpace, destOffset, destWidth, length, jobId)
viMoveAsyncEx (vi, srcSpace, srcOffset64, srcWidth, destSpace, destOffset64, destWidth, length, jobId)
viMoveIn8 (vi, space, offset, length, buf8)
viMoveIn16 (vi, space, offset, length, buf16)
viMoveIn32 (vi, space, offset, length, buf32)
viMoveIn64(vi, space, offset, length, buf64)
viMoveIn8Ex (vi, space, offset64, length, buf8)
viMoveIn16Ex (vi, space, offset64, length, buf16)
viMoveIn32Ex (vi, space, offset64, length, buf32)
viMoveIn64Ex(vi, space, offset64, length, buf64)
viMoveOut8 (vi, space, offset, length, buf8)
viMoveOut16 (vi, space, offset, length, buf16)
viMoveOut32 (vi, space, offset, length, buf32)
viMoveOut64 (vi, space, offset, length, buf64)
viMoveOut8Ex (vi, space, offset64, length, buf8)
viMoveOut16Ex (vi, space, offset64, length, buf16)
viMoveOut32Ex (vi, space, offset64, length, buf32)
viMoveOut64Ex (vi, space, offset64, length, buf64)
viOut8 (vi, space, offset, val8)
viOut16 (vi, space, offset, val16)
viOut32 (vi, space, offset, val32)
viOut64(vi, space, offset, val64)