执行散列读 - DmaScatterExecute
函数简介
执行散列读操作,读取所有已准备的地址数据。(高级版功能,普通版无法使用)
接口名称
DmaScatterExecute
DLL调用
int32_t OLA_CALL_TYPE DmaScatterExecute(int64_t instance, int64_t scatterHandle);
参数定义:
instance(长整型数): OLAPlug对象的指针,由 CreateCOLAPlugInterFace 接口生成。scatterHandle(长整型数): 散列句柄,由 DmaScatterCreate 返回
示例:
// 创建散列读句柄
int64_t scatterHandle = DmaScatterCreate(instance, deviceId, 1234);
// 准备地址
DmaScatterPrepare(instance, scatterHandle, 0x400000, 4);
DmaScatterPrepare(instance, scatterHandle, 0x400010, 4);
// 执行散列读
int32_t result = DmaScatterExecute(instance, scatterHandle);
if (result == 1) {
printf("散列读执行成功\n");
// 现在可以读取数据
const char* data1 = DmaScatterRead(instance, scatterHandle, 0x400000, NULL, 4);
const char* data2 = DmaScatterRead(instance, scatterHandle, 0x400010, NULL, 4);
printf("数据1: %s\n", data1);
printf("数据2: %s\n", data2);
} else {
printf("散列读执行失败\n");
}
返回值
整型数:
- 1: 成功
- 0: 失败
参数说明
执行流程:
- 必须先调用 DmaScatterPrepare 准备地址
- 执行后可以使用 DmaScatterRead 读取数据
- 可以多次执行以刷新数据
应用场景
- 执行批量内存读取
- 刷新散列读数据
- 高效读取多个地址
相关接口
- DmaScatterCreate - 创建散列读句柄
- DmaScatterPrepare - 准备散列读地址
- DmaScatterRead - 从散列读结果中读取数据
