ターゲットプロセッサから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になります。