0

我正在尝试实现 ARM/DSP 共享内存通信。ARM 端将一个数据块放在共享内存上(我们将其命名为 array[]),并将块的地址和大小发送到 DSP 端,DSP 端只是读取它们。在 DSP 方面,

void * buf //address of block on shared memory
int length //size of block

但是,当我尝试阅读它们时,我得到的实际上是:

buf[0] = length
buf[1] = array[1]
buf[2] = array[2]
buf[3] = array[3]
    :
    :
    :

看起来好像长度变量覆盖了数组的第一个单元格(这有点奇怪),或者我以错误的方式使用了 void 指针。有什么建议么?

4

1 回答 1

0

我认为,该数据结构是:

buf[0] = length
buf[1] = array[0]
buf[2] = array[1]
:
buf[length] = array[lenght-1]

并且你必须保留 buf 为 length+1

于 2012-05-22T20:24:43.830 回答