Binarix FL-net Library for Windows

マニュアル>アプリケーション開発ガイド C/C++編>コモンメモリ

コモンメモリ

メモリマップ

コモンメモリには、アドレス空間が独立した2つの領域があります。領域1は512ワード、領域2は8192ワードの記憶領域があり、どちらの領域も1アドレスに1ワードのデータを格納できます。(ワード=16ビット)

メモリマップ
先頭アドレス最終アドレスサイズ
領域10x00000x01FF(511)0x200(512)
領域20x00000x1FFF(8191)0x2000(8192)

サイズはワード単位。カッコ内は10進数表記。

コモンメモリの初期化

コモンメモリは、FL-netネットワークがクローズ状態でBflOpen関数が呼ばれた時に0(ゼロ)で初期化されます。複数のユーザーアプリケーションが同じFL-netネットワークをオープンした場合は、FL-net通信エンジンが最初のオープンを受け付けた時だけコモンメモリの初期化が行われます。
付属のFL-net Utilityもユーザーアプリケーションに分類されます。FL-net Utilityをモニタ状態でユーザーアプリケーションがBflOpen関数を呼び出した場合は、最初のオープンにならないので、コモンメモリは初期化されません。

コモンメモリのアクセス

FL-net通信エンジンは、コモンメモリ全領域の最新の内容を保持しています。ユーザーアプリケーションは、BflRead/BflWrite系関数でアドレスとサイズを指定して、FL-net通信エンジンが管理しているコモンメモリを読み書きします。コモンメモリのアドレスは、絶対アドレスと相対アドレスのどちらでも指定できます。絶対アドレスで指定した場合は、コモンメモリの先頭を0(ゼロ)番地とします。相対アドレスで指定した場合は、コモンメモリの自ノードに割り付けた範囲の先頭を0(ゼロ)番地とします。
FL-net(OPCN-2)の仕様で、コモンメモリの2つの領域は同時性が保証されています。つまり、領域1と領域2に同時に書き込んだデータは、他ノードに同時に送信されます。BflRead/BflWrite系関数には、1つの領域に対して読み書きする関数と、2つの領域に対して同時に読み書きする関数があります。後者の関数を使用すると、領域1と領域2の同時性が保証されたデータの読み書きができます。