我正在尝试实现ARM / DSP共享内存通信。 ARM端将一块数据放在共享存储器上(让我们将其命名为array []),并将块的地址和大小发送到只读取它们的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指针。 有什么建议吗?
答案 0 :(得分:0)
我认为,该数据结构是:
buf[0] = length
buf[1] = array[0]
buf[2] = array[1]
:
buf[length] = array[lenght-1]
你必须为lenght + 1
保留buf