ターゲットプロセッサから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]に入れます。 入力されたデータはそのままなので別途CONINで読む必要があります。 |
上記のどのコマンドも異常終了は無いのでStatusは0x00となります。未定義のCommandの場合はStatusは0xFFになります。