专栏算法工具链Shared memory共享内存示例

Shared memory共享内存示例

TROS.Assist2024-04-12
139
0

Shared memory共享内存示例

1. 概述

Shared memory 作为一个独立的库,提供基于共享内存的进程间通信能力,且Shared memory 支持分配在hbmem上的数据零拷贝传输。Shared memory库的使用非常简单,用户仅需熟悉SegReader SegWriter 和SegData三个类的使用,具体使用见example。

2. 功能介绍

shared memory提供基于共享内存的ipc通信,支持hbmem数据零拷贝传输(J3和J5平台)

3. 使用步骤

  • SegReader端

  1. 给定共享内存总大小、每个可写块大小、通信隔离域,和hbmem保持时间(如果使用hbmem),调用shm_init()初始化共享内存

  2. 创建SegReader

  3. 调用init接口初始化SegReader

  4. 循环read数据

  5. 退出进程前使用shm_deinit()

  • SegWriter端

  1. 给定共享内存总大小、每个可写块大小、通信隔离域,和hbmem保持时间(如果使用hbmem),调用shm_init()初始化共享内存

  2. 给定欲申请共享内存的size和每个可读写块的size,创建SegWriter

  3. 调用init接口初始化SegWriter

  4. 创建SegData,按照需求填写数据(支持hbmem数据),调用write接口

  5. 退出进程前使用shm_deinit()

其中步骤1和步骤5在一个进程种操作一次即可。

4. 示例

本example展示在J3、J5平台上传输的SegData,同时混合hbmem数据(com_buf, graph_buf)和普通堆内存和栈内存数据。

算法工具链
杂谈
评论0
0/1000