| 1 | == リフレクティブメモリへの書き込み == |
| 2 | aao レコードタイプと組み合わせて、リフレクティブメモリへのデータ書き込みを行う。 [[br]] |
| 3 | Device Type 名は "'''aao5565'''" [[br]] |
| 4 | |
| 5 | '''Synopsis''' |
| 6 | {{{ |
| 7 | record(aao, "pv-name") { |
| 8 | field(DTYP, "aao5565") |
| 9 | field(OUT, "#C<card_number> S @<offset>[,<wait>]") |
| 10 | field(FTVL, "<value_type>") |
| 11 | field(VAL, "<data>") |
| 12 | field(NELM, "<num_of_elems>") |
| 13 | } |
| 14 | }}} |
| 15 | * card_number[[br]]The card number designated in argument card in RM5565PciConfigure |
| 16 | * offset[[br]]Offset of RM5565 memory |
| 17 | * wait[[br]]Waiting time for completion of write |
| 18 | * value_type[[br]]Field Type of Value |
| 19 | * num_of_elems[[br]]Number of elements |
| 20 | * data[[br]]data to write |
| 21 | |
| 22 | '''Usage''' |
| 23 | {{{ |
| 24 | record(aao, "RM5565:DEV0:A000:W") { |
| 25 | field(DTYP, "aao5565") |
| 26 | field(OUT, "#C0 S @0xA000,1.0") |
| 27 | field(FTVL, "SHORT") |
| 28 | field(NELM, "1") |
| 29 | ・ |
| 30 | ・ |
| 31 | ・ |
| 32 | field(VAL, "<data>") |
| 33 | } |
| 34 | }}} |
| 35 | OUT フィールドでカード番号/オフセットを指定する。 [[br]] |
| 36 | "C" に続く数字(例では '0')でカード番号を、 "@" に続く数字(例では '0xA000')でオフセットを指定しておく。 [[br]] |
| 37 | 指定できるオフセットは 0x0000~である。ちなみに VME版では 0x3000~であり、 PCI版の 0x0000 と VME版の 0x3000 が同じアドレスになる。 [[br]] |
| 38 | また、オフセットの指定には 16 進表記以外にも 10 進表記や 8 進表記も使用可能。 |
| 39 | {{{ |
| 40 | field(OUT, "#C0 S @40960") ... 10 進表記 |
| 41 | }}} |
| 42 | {{{ |
| 43 | field(OUT, "#C0 S @0120000") ... 8 進表記 |
| 44 | }}} |
| 45 | また、オプションとして書き込み完了待ちの最大時間を秒で指定可能 (例では '1.0')である。 [[br]] |
| 46 | 書き込み待ちの処理は PRIO フィールドで指定された General Purpose Callback Task のコンテキストで非同期式デバイスサポート処理として実行され、 drvRM5565_waitOwnData を使用して完了までの待ち処理を行う。 [[br]] |
| 47 | もし、最大待ち時間を過ぎても書き込みが完了しなかった (OWN DATA ビットがセットされなかった)場合、 レコードは COMM_ALARM/MINOR_ALARM 状態になる。 |