現在地

共有メモリ フォーマットとプロトコル

ターゲットプロセッサからEMILY Boardに要求を出すための共有メモリのフォーマットです。

これは基本ボードのみの場合メモリ空間のうち任意の16バイト境界に置くことができます。16/32ビット拡張ボードを使用する場合については暫定実装で、今後変更の予定です。

Offset Name Remarks
+0x00 Signature 必ず0xA5
+0x01 Handshake ターゲットプロセッサは0xCC、EMILY Boardは0x33を書く
+0x02 Command ターゲットプロセッサからEMILY Boardへのコマンド
+0x03 Status EMILY Boardからターゲットプロセッサへのステータス
+0x04 Data[0]
+0x05 Data[1] 現時点では未使用
... ... ...
+0x0F Data[11] 現時点では未使用

ターゲットプロセッサはHandshakeが0x33であることを確認し、Command, Dataを書いてからHandshakeに0xCCを書きます。

EMILY BoardはHandshakeが0xCCになるのを待ってCommand, Dataを取り出して要求を処理します。処理が終わったらStatus, Dataを書いてからHandshakeに0x33を書きます。

ターゲットプロセッサはHandshakeが0x33になるのをまってからStatus, Dataを取り出します。

現在定義されているコマンドは以下の4つのみです。

Command Name Description
0x00 INIT 現状特に何もしません。
0x01 CONOUT Data[0]の内容をTxD1に出力します。
0x02 CONIN RxD1の入力を待ってData[0]に入れます。
0x03 CONST RxD1に入力があれば0x01、無ければ0x00をData[0]に入れます。

上記のどのコマンドも異常終了は無いのでStatusは0x00となります。未定義のCommandの場合はStatusは0xFFになります。