wiki:epics/epics/pcie5565/db/aao

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 状態になる。