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]

長さ + 1 の buf を予約する必要があります

于 2012-05-22T20:24:43.830 に答える