Version 1 (modified by hig-iitk, 17 months ago) (diff) |
---|
リフレクティブメモリへの書き込み
aao レコードタイプと組み合わせて、リフレクティブメモリへのデータ書き込みを行う。
Device Type 名は "aao5565"
Synopsis
record(aao, "pv-name") { field(DTYP, "aao5565") field(OUT, "#C<card_number> S @<offset>[,<wait>]") field(FTVL, "<value_type>") field(VAL, "<data>") field(NELM, "<num_of_elems>") }
- card_number
The card number designated in argument card in RM5565PciConfigure - offset
Offset of RM5565 memory - wait
Waiting time for completion of write - value_type
Field Type of Value - num_of_elems
Number of elements - data
data to write
Usage
record(aao, "RM5565:DEV0:A000:W") { field(DTYP, "aao5565") field(OUT, "#C0 S @0xA000,1.0") field(FTVL, "SHORT") field(NELM, "1") ・ ・ ・ field(VAL, "<data>") }
OUT フィールドでカード番号/オフセットを指定する。
"C" に続く数字(例では '0')でカード番号を、 "@" に続く数字(例では '0xA000')でオフセットを指定しておく。
指定できるオフセットは 0x0000~である。ちなみに VME版では 0x3000~であり、 PCI版の 0x0000 と VME版の 0x3000 が同じアドレスになる。
また、オフセットの指定には 16 進表記以外にも 10 進表記や 8 進表記も使用可能。
field(OUT, "#C0 S @40960") ... 10 進表記
field(OUT, "#C0 S @0120000") ... 8 進表記
また、オプションとして書き込み完了待ちの最大時間を秒で指定可能 (例では '1.0')である。
書き込み待ちの処理は PRIO フィールドで指定された General Purpose Callback Task のコンテキストで非同期式デバイスサポート処理として実行され、 drvRM5565_waitOwnData を使用して完了までの待ち処理を行う。
もし、最大待ち時間を過ぎても書き込みが完了しなかった (OWN DATA ビットがセットされなかった)場合、 レコードは COMM_ALARM/MINOR_ALARM 状態になる。