dpg-0607 - interface...dpg-0607 help for linux 第2章製品仕様 2.1 基本仕様...

22
Help for Linux DPG-0607 らくらくデバイス制御 Linux ソフトウェア Ver.1.00 Help for Linux www.interface.co.jp

Upload: others

Post on 08-Feb-2020

0 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: DPG-0607 - Interface...DPG-0607 Help for Linux 第2章製品仕様 2.1 基本仕様 最大同時使用枚数 256枚(理論値) ※実装上の数値です。ご使用の環境により、使用可能な枚数は上

Help for Linux

DPG-0607らくらくデバイス制御 Linux ソフトウェア

Ver.1.00

Help for Linux

www.interface.co.jp

Page 2: DPG-0607 - Interface...DPG-0607 Help for Linux 第2章製品仕様 2.1 基本仕様 最大同時使用枚数 256枚(理論値) ※実装上の数値です。ご使用の環境により、使用可能な枚数は上

DPG-0607 Help for Linux

目 次

第 1 章 はじめに.........................................................................31.1 概要............................................................................................................................31.2 特長............................................................................................................................31.3 用語説明.....................................................................................................................3

第 2 章 製品仕様........................................................................42.1 基本仕様.....................................................................................................................4

第 3 章 利用手順........................................................................53.1 制御対象のデバイス情報の確認方法.................................................................................53.2 すぐに動かしたい場合.....................................................................................................53.3 デバイスの制御手順.......................................................................................................5

第 4 章 リファレンス......................................................................84.1 関数一覧.....................................................................................................................84.2 関数個別説明...............................................................................................................9

第 5 章 サンプルプログラム..........................................................185.1 デバイス制御プログラム(dcctrl)....................................................................................18

第 6 章 ユーティリティ.................................................................206.1 デバイス列挙ユーティリティ(dclist)................................................................................20

第 7 章 トラブルシューティング......................................................21第 8 章 重要な情報...................................................................22

(c) 2019 Interface Corporation.

2

Page 3: DPG-0607 - Interface...DPG-0607 Help for Linux 第2章製品仕様 2.1 基本仕様 最大同時使用枚数 256枚(理論値) ※実装上の数値です。ご使用の環境により、使用可能な枚数は上

DPG-0607 Help for Linux

第1章 はじめに

1.1 概要本ソフトウェアは Linux 上から弊社 PCI/PCIe 製品を制御できるソフトウェアです。Linux 上のアプリケーションから、本製品のライブラリ関数をコールすることにより、4 つの関数で簡単に弊社 PCI/PCIe 製品の制御を行うことができます。本ドキュメントは、Linux 上で DPG-0607 を使用するための情報を掲載しています。

1.2 特長

●パフォーマンスの高いハードウェア制御本ソフトウェアを使用することでアプリケーションからデバイスのレジスタへ直接アクセスできます。ドライバの呼び出し時間がかからないため、高速なハードウェア制御が行えます。

●少ない関数で簡単に制御4 つの関数を使用するだけで、簡単に弊社 PCI/PCIe 製品を制御することができます。

●安全な制御誤ったパラメータを指定しても、ライブラリ内でエラーとして返します。不正なメモリ領域のアクセスを防ぎつつ、安全にデバイス制御が行えます。

●すぐに使えるサンプルプログラム付属コマンドラインアプリケーションとして使用できるサンプルプログラムが付属しています。一からプログラムを自作しなくても、サンプルプログラムを使用してデバイスの制御が行えます。

1.3 用語説明本書で使用する用語について説明します。

No 用語 説明

1 レジスタ ハードウェアの記憶域を指します。レジスタをリードライトすることで、ハードウェアの持っているデータを読み込んだり、ハードウェアへ値を渡す事ができます。

2 デバイス ID デバイスを識別するための値です。メーカにより値が設定されます。

3 サブシステム ID デバイス ID と同様にメーカにより値が設定されるデバイスを識別するための値です。

4 ベースアドレス レジスタの開始位置を指します。レジスタはコンピュータ上の IO ポートまたはメインメモリ上に OS によって自動で配置され、その位置を表すのがベースアドレスです。PCI の規格では一つのデバイスに最大 6 つ持つことができます。

5 ベースアドレスサイズ ベースアドレスからレジスタが何 byte 続いているかを指します。サイズはデバイスにより異なります。

6 IO 公開資料 弊社ハードウェアのレジスタ仕様を記載した文書です。弊社 Web サイトから無料でダウンロードすることができます。

(c) 2019 Interface Corporation.

3

Page 4: DPG-0607 - Interface...DPG-0607 Help for Linux 第2章製品仕様 2.1 基本仕様 最大同時使用枚数 256枚(理論値) ※実装上の数値です。ご使用の環境により、使用可能な枚数は上

DPG-0607 Help for Linux

第2章 製品仕様

2.1 基本仕様

最大同時使用枚数 256 枚(理論値)※実装上の数値です。ご使用の環境により、使用可能な枚数は上記よりも少なくなる場合があります。

ドライバ名 ifedcドライバ種別 キャラクタ型ドライバ組み込み方式 モジュール(ダイナミックロード/アンロード)

メジャー番号割り当て 自動割り当て機能 弊社 PCI/PCIe 製品の制御

・レジスタへのライト・レジスタのリード

対象製品、動作確認 OS に関する最新情報は弊社 Web サイト を参照してください。

(c) 2019 Interface Corporation.

4

参考

Page 5: DPG-0607 - Interface...DPG-0607 Help for Linux 第2章製品仕様 2.1 基本仕様 最大同時使用枚数 256枚(理論値) ※実装上の数値です。ご使用の環境により、使用可能な枚数は上

DPG-0607 Help for Linux

第3章 利用手順

3.1 制御対象のデバイス情報の確認方法本ソフトウェアでデバイスを制御するためには、制御対象のデバイス ID、サブシステム ID、RSW 番号が必要です。

ご使用のコンピュータに既にハードウェアを実装している場合、本ソフトウェア付属の デバイス列挙ユーティリティ(dclist)で確認が行えます。詳細は『6.1 デバイス列挙ユーティリティ(dclist)』を参照してください。

3.2 すぐに動かしたい場合付属のデバイス制御プログラム(dcctrl)を利用いただけます。詳細は『5.1 デバイス制御プログラム(dcctrl)』を参照してください。

3.3 デバイスの制御手順

プログラムの作成プログラムの作成を行います。

プログラム内で行うことは以下です。

1. 制御対象のデバイスを特定する。

2. 制御対象のデバイスのレジスタをリードまたはライトする。

1. 制御対象のデバイスを特定する。

DcGetDevice 関数を使用して制御対象のデバイスを特定します。DcGetDevice 関数は、DeviceID、SubsystemID、RSW 番号を指定することで制御対象を特定し、制御を行うための情報(ハンドル)を返します。以後、DcGetDevice 関数で取得したハンドルを使用してデバイスの制御が行えます。

2. 制御対象のデバイスのレジスタをリードまたはライトする。

デバイスのレジスタのリード/ライトは以下の関数を使用します。

DcWrite レジスタへライトします。

DcRead レジスタをリードします。

DcCopy データをレジスタへコピーまたはレジスタからコピーします。

3 つの関数は以下の様に使い分けてください。

単一のレジスタに対するアクセス 広範囲に一度にアクセス

ライト リード ライト リード

DcWrite ◎ ☓ △(4byte まで)

DcRead ☓ ◎ ☓ △(4byte まで)

DcCopy ◯ ◯ ◎ ◎

◎:適している ◯:使用可能 △:制限あり ☓:使用不可

(c) 2019 Interface Corporation.

5

Page 6: DPG-0607 - Interface...DPG-0607 Help for Linux 第2章製品仕様 2.1 基本仕様 最大同時使用枚数 256枚(理論値) ※実装上の数値です。ご使用の環境により、使用可能な枚数は上

DPG-0607 Help for Linux

コンパイル作成したプログラムをコンパイルします。本ソフトウェアの共有ライブラリ(libifddc.so)をリンクする必要があります。ソースコードを test.c とした場合、下記のコマンドで実行ファイル test を生成します。#gcc -o test test.c -lifddc

実行コンパイルすることで実行ファイル test ができていますので、#./test

と入力し、プログラムを実行してください。

制御対象の DeviceID、SubsystemIDやレジスタの仕様は弊社より提供の IO 公開資料を参照してください。IO 公開資料はご利用中の弊社製品の製品型式の Webページからダウンロードできます。

プログラムの詳細な実装は付属のサンプルプログラムをあわせて参照してください。

(c) 2019 Interface Corporation.

6

参考

Page 7: DPG-0607 - Interface...DPG-0607 Help for Linux 第2章製品仕様 2.1 基本仕様 最大同時使用枚数 256枚(理論値) ※実装上の数値です。ご使用の環境により、使用可能な枚数は上

DPG-0607 Help for Linux

コード例

int Handle;int Ret;unsigned int DeviceID = 0x119A;unsigned int SubsystemID = 0x2081;unsigned char RSW = 0x1;unsigned int Data;unsigned char WriteData[64];unsigned char ReadData[64];

memset(WriteData, 0xFF, 64);

// デバイス ID:0x119A, サブシステム ID: 0x2081, RSW 番号:1 のデバイスを検出Handle = DcGetDevice(DeviceID, SubsystemID, RSW);if(Handle < 0){

printf("DcGetDevice Error errno=%#x\n", errno);return -1;

}

// 4byte 書き込みRet = DcWrite(Handle, 0, 0x5A, 4, 0x44332211);if(Ret < 0){

printf("DcWrite Error errno=%#x\n", errno);return -1;

}

// 4byte 読み込みRet = DcRead(Handle, 0, 0x5A, 4, &Data);if(Ret < 0){

printf("DcRead Error errno=%#x\n", errno);return -1;

}

// 64byte ライトRet = DcCopy(Handle, DC_WRITE, 0, 0, 64, WriteData);if(Ret < 0){

printf("DcCopy Error errno=%#x\n", errno);return -1;

}

// 64byte リードRet = DcCopy(Handle, DC_READ, 0, 0, 64, ReadData);if(Ret < 0){

printf("DcCopy Error errno=%#x\n", errno);return -1;

}

(c) 2019 Interface Corporation.

7

Page 8: DPG-0607 - Interface...DPG-0607 Help for Linux 第2章製品仕様 2.1 基本仕様 最大同時使用枚数 256枚(理論値) ※実装上の数値です。ご使用の環境により、使用可能な枚数は上

DPG-0607 Help for Linux

第4章 リファレンス

4.1 関数一覧

No 関数名 機能

1 DcGetDevice デバイスを識別するための情報を取得します。

2 DcWrite レジスタへライトします。

3 DcRead レジスタをリードします。

4 DcCopy データをレジスタへコピーまたはレジスタからコピーします。

(c) 2019 Interface Corporation.

8

Page 9: DPG-0607 - Interface...DPG-0607 Help for Linux 第2章製品仕様 2.1 基本仕様 最大同時使用枚数 256枚(理論値) ※実装上の数値です。ご使用の環境により、使用可能な枚数は上

DPG-0607 Help for Linux

4.2 関数個別説明

1. DcGetDevice【機能】

デバイスを識別するための情報(ハンドル)を取得します。この関数で取得したハンドルを使用してデバイスを制御できます。

【書式】●C言語

int DcGetDevice(unsigned int DeviceID,unsigned int SubsystemID,unsigned char RSW

);

【パラメータ】DeviceID

制御したいデバイスの DeviceID を指定します。DeviceID はご使用のデバイスの IO 公開資料を参照してください。

SubsystemID制御したいデバイスの SubsystemID を指定します。SubsystemID はご使用のデバイスの IO 公開資料を参照してください。

RSW制御したいデバイスの RSW 番号を指定します。ここでの RSW はデバイスに実装されている RSW1 を指します。

【戻り値】成功すると 0 以上の値 を返します。失敗すると -1 を返し、 errno がセットされます。

errno 値 説明

ENOENT 2 ドライバのオープンに失敗しました。ドライバ(ifedc)が組み込まれていることを確認してください。

ENODEV 19 指定されたデバイスが見つかりません。DeviceID、SubsystemID、RSW に誤りが無いか確認してください。

【備考】IO 公開資料はご利用中の弊社製品の製品型式の webページからダウンロードできます。

(c) 2019 Interface Corporation.

9

Page 10: DPG-0607 - Interface...DPG-0607 Help for Linux 第2章製品仕様 2.1 基本仕様 最大同時使用枚数 256枚(理論値) ※実装上の数値です。ご使用の環境により、使用可能な枚数は上

DPG-0607 Help for Linux

【使用例】●C言語

int Handle;unsigned int DeviceID = 0x119A;unsigned int SubsystemID = 0x2081;unsigned char RSW = 0x1;

Handle = DcGetDevice(DeviceID, SubsystemID, RSW);if(Handle < 0){

printf(" DcGetDevice Error errno=%#x\n", errno);return -1;

}PCI デバイス(デバイス ID:0x119A、サブシステム ID:0x2081、RSW:0x1)のデバイスのハンドルを取得します。

(c) 2019 Interface Corporation.

10

Page 11: DPG-0607 - Interface...DPG-0607 Help for Linux 第2章製品仕様 2.1 基本仕様 最大同時使用枚数 256枚(理論値) ※実装上の数値です。ご使用の環境により、使用可能な枚数は上

DPG-0607 Help for Linux

2. DcWrite

【機能】レジスタへライトします。

【書式】●C言語

int DcWrite(int Handle,unsigned int BAdr,unsigned int Offset,unsigned int Size,unsigned int Data

);

【パラメータ】Handle

DcGetDevice 関数で取得したハンドルを指定します。

BAdrベースアドレスの番号を指定します。0~5 を指定してください。

OffsetBAdr に指定したベースアドレスからのオフセットを指定します。

Size書き込むデータのバイト数を指定します。1~4 を指定してください。

Data書き込むデータを指定します。

【戻り値】成功すると 0 を返します。失敗すると -1 を返し、 errno がセットされます。

errno 値 説明

ENOENT 2 ドライバのオープンに失敗しました。ドライバ(ifedc)が組み込まれていることを確認してください。

EFAULT 14 不正なアドレスが指定されました。BAdr が使用可能なベースアドレスを指していることを確認してください。Offset+Size が、ベースアドレスのサイズを上回らないことを確認してください。

EINVAL 22 不正な引数が指定されました。Handle に DcGetDevice 関数で取得した値が指定されていることを確認してください。BAdr が範囲内であることを確認してください。Size が範囲内であることを確認してください。

(c) 2019 Interface Corporation.

11

Page 12: DPG-0607 - Interface...DPG-0607 Help for Linux 第2章製品仕様 2.1 基本仕様 最大同時使用枚数 256枚(理論値) ※実装上の数値です。ご使用の環境により、使用可能な枚数は上

DPG-0607 Help for Linux

【使用例】●C言語

int Handle;int Ret;unsigned int DeviceID = 0x119A;unsigned int SubsystemID = 0x2081;unsigned char RSW = 0x1;

Handle = DcGetDevice(DeviceID, SubsystemID, RSW);if(Handle < 0){

printf(" DcGetDevice Error errno=%#x\n", errno);return -1;

}

// 1byte 書き込みRet = DcWrite(Handle, 0, 0x5A, 1, 0x11);if(Ret < 0){

printf("DcWrite Error errno=%#x\n", errno);return -1;

}

// 2byte 書き込みRet = DcWrite(Handle, 0, 0x5A, 2, 0x2211);if(Ret < 0){

printf("DcWrite Error errno=%#x\n", errno);return -1;

}

// 4byte 書き込みRet = DcWrite(Handle, 0, 0x5A, 4, 0x44332211);if(Ret < 0){

printf("DcWrite Error errno=%#x\n", errno);return -1;

}

PCI デバイス(デバイス ID:0x119A、サブシステム ID:0x2081、RSW:0x1)のデバイスの、ベースアドレス 0、オフセット 0x5A へ Size に指定した byte 数分書き込みます。

(c) 2019 Interface Corporation.

12

Page 13: DPG-0607 - Interface...DPG-0607 Help for Linux 第2章製品仕様 2.1 基本仕様 最大同時使用枚数 256枚(理論値) ※実装上の数値です。ご使用の環境により、使用可能な枚数は上

DPG-0607 Help for Linux

3. DcRead

【機能】レジスタをリードします。

【書式】●C言語

int DcRead(int Handle,unsigned int BAdr,unsigned int Offset,unsigned int Size,unsigned int *pData

);

【パラメータ】Handle

DcGetDevice 関数で取得したハンドルを指定します。

BAdrベースアドレスの番号を指定します。0~5 を指定してください。

OffsetBAdr に指定したベースアドレスからのオフセットを指定します。

Size読み込むデータのバイト数を指定します。1~4 を指定してください。

pData読み込むデータの格納先のポインタを指定します。

【戻り値】成功すると 0 を返します。失敗すると -1 を返し、 errno がセットされます。

errno 値 説明

ENOENT 2 ドライバのオープンに失敗しました。ドライバ(ifedc)が組み込まれていることを確認してください。

EFAULT 14 不正なアドレスが指定されました。BAdr が使用可能なベースアドレスを指していることを確認してください。Offset+Size が、ベースアドレスのサイズを上回らないことを確認してください。

EINVAL 22 不正な引数が指定されました。Handle に DcGetDevice 関数で取得した値が指定されていることを確認してください。BAdr が範囲内であることを確認してください。Size が範囲内であることを確認してください。pData が NULL でないことを確認してください。

(c) 2019 Interface Corporation.

13

Page 14: DPG-0607 - Interface...DPG-0607 Help for Linux 第2章製品仕様 2.1 基本仕様 最大同時使用枚数 256枚(理論値) ※実装上の数値です。ご使用の環境により、使用可能な枚数は上

DPG-0607 Help for Linux

【使用例】●C言語

int Handle;int Ret;unsigned int DeviceID = 0x119A;unsigned int SubsystemID = 0x2081;unsigned char RSW = 0x1;unsigned int Data;

Handle = DcGetDevice(DeviceID, SubsystemID, RSW);if(Handle < 0){

printf(" DcGetDevice Error errno=%#x\n", errno);return -1;

}

Ret = DcRead(Handle, 0, 0x5A, 4, &Data);if(Ret < 0){

printf(" DcRead Error errno=%#x\n", errno);return -1;

}PCI デバイス(デバイス ID:0x119A、サブシステム ID:0x2081、RSW:0x1)のデバイスの、ベースアドレス 0、オフセット 0x5A を 4byte 読み込みます。

(c) 2019 Interface Corporation.

14

Page 15: DPG-0607 - Interface...DPG-0607 Help for Linux 第2章製品仕様 2.1 基本仕様 最大同時使用枚数 256枚(理論値) ※実装上の数値です。ご使用の環境により、使用可能な枚数は上

DPG-0607 Help for Linux

4. DcCopy

【機能】データをレジスタへコピーまたはレジスタからコピーします。

【書式】●C言語

int DcCopy(int Handle,unsigned int Direction,unsigned int BAdr,unsigned int Offset,unsigned int Size,unsigned char *pData

);

【パラメータ】Handle

DcGetDevice 関数で取得したハンドルを指定します。

Directionアクセス方向を指定します。

識別子 値 説明

DC_WRITE 0 デバイスへコピーします。

DC_READ 1 デバイスからコピーします。

BAdrベースアドレスの番号を指定します。0~5 を指定してください。

OffsetBAdr に指定したベースアドレスからのオフセットを指定します。

Sizeコピーするバイト数を指定します。

pDataコピー元またはコピー先のポインタを指定します。

(c) 2019 Interface Corporation.

15

Page 16: DPG-0607 - Interface...DPG-0607 Help for Linux 第2章製品仕様 2.1 基本仕様 最大同時使用枚数 256枚(理論値) ※実装上の数値です。ご使用の環境により、使用可能な枚数は上

DPG-0607 Help for Linux

【戻り値】成功すると 0 を返します。失敗すると -1 を返し、 errno がセットされます。

errno 値 説明

ENOENT 2 ドライバのオープンに失敗しました。ドライバ(ifedc)が組み込まれていることを確認してください。

EFAULT 14 不正なアドレスが指定されました。BAdr が使用可能なベースアドレスを指していることを確認してください。Offset+Size が、ベースアドレスのサイズを上回らないことを確認してください。

EINVAL 22 不正な引数が指定されました。Handle に DcGetDevice 関数で取得した値が指定されていることを確認してください。BAdr が範囲内であることを確認してください。Size が範囲内であることを確認してください。pData が NULL でないことを確認してください。

【備考】pData には Size に指定した以上のサイズの領域を指定してください。

(c) 2019 Interface Corporation.

16

Page 17: DPG-0607 - Interface...DPG-0607 Help for Linux 第2章製品仕様 2.1 基本仕様 最大同時使用枚数 256枚(理論値) ※実装上の数値です。ご使用の環境により、使用可能な枚数は上

DPG-0607 Help for Linux

【使用例】●C言語

int Handle;int Ret;unsigned int DeviceID = 0x119A;unsigned int SubsystemID = 0x2081;unsigned char RSW = 0x1;unsigned char WriteData[64];unsigned char ReadData[64];

memset(WriteData, 0xFF, 64);

Handle = DcGetDevice(DeviceID, SubsystemID, RSW);if(Handle < 0){

printf(" DcGetDevice Error errno=%#x\n", errno);return -1;

}

// 64byte ライトRet = DcCopy(Handle, DC_WRITE, 0, 0, 64, WriteData);if(Ret < 0){

printf(" DcCopy Error errno=%#x\n", errno);return -1;

}

// 64byte リードRet = DcCopy(Handle, DC_READ, 0, 0, 64, ReadData);if(Ret < 0){

printf(" DcCopy Error errno=%#x\n", errno);return -1;

}PCI デバイス(デバイス ID:0x119A、サブシステム ID:0x2081、RSW:0x1)のデバイスの、ベースアドレス 0、オフセット 0 から 64 バイト分をライト、リードします。

(c) 2019 Interface Corporation.

17

Page 18: DPG-0607 - Interface...DPG-0607 Help for Linux 第2章製品仕様 2.1 基本仕様 最大同時使用枚数 256枚(理論値) ※実装上の数値です。ご使用の環境により、使用可能な枚数は上

DPG-0607 Help for Linux

第5章 サンプルプログラム

5.1 デバイス制御プログラム(dcctrl)

[機能]デバイスへのアクセスを行うサンプルプログラムです。レジスタのリード、ライト、フィル、ダンプが行なえます。

[書式]・リード$ dcctrl -r [DeviceID] [SubsystemID] [RSW] [BAdr] [Offset] [Size]

・ライト$ dcctrl -w [DeviceID] [SubsystemID] [RSW] [BAdr] [Offset] [Size] [Data]

・フィル$ dcctrl -f [DeviceID] [SubsystemID] [RSW] [BAdr] [Offset] [Size] [Data]

・ダンプ$ dcctrl -d [DeviceID] [SubsystemID] [RSW] [BAdr] [Offset] [Size]

[パラメータ]DeviceID

制御対象のデバイス ID を 16進数で指定します。

SubsystemID制御対象のサブシステム ID を 16進数で指定します。

RSW制御対象の RSW 番号を 16進数で指定します。

BAdr制御対象のベースアドレス番号を 16進数で指定します。

Offset制御対象のレジスタのオフセットを 16進数で指定します。

Sizebyte 数を 10進数で指定します。

Dataライトまたはフィルするデータを 16進数で指定します。リードまたはダンプでは無視されます。

(c) 2019 Interface Corporation.

18

Page 19: DPG-0607 - Interface...DPG-0607 Help for Linux 第2章製品仕様 2.1 基本仕様 最大同時使用枚数 256枚(理論値) ※実装上の数値です。ご使用の環境により、使用可能な枚数は上

DPG-0607 Help for Linux

[使用例]・ライト$ dcctrl -w 119A 2081 1 0 5a 2 FFFFPCI デバイス(デバイス ID:119A、サブシステム ID:2081、RSW:0x1)のデバイスの、ベースアドレス0、オフセット 0x5A へ 0xFFFF を書き込みます。

・リード$ dcctrl -r 119A 2081 1 0 5a 444332211PCI デバイス(デバイス ID:119A、サブシステム ID:2081、RSW:0x1)のデバイスの、ベースアドレス0、オフセット 0x5A を 4byte 読み込みます。

・フィル$ dcctrl -f 119A 2081 1 0 0 64 ffPCI デバイス(デバイス ID:119A、サブシステム ID:2081、RSW:0x1)のデバイスの、ベースアドレス0、オフセット 0 から 64byte を 0xFF で埋めます。

・ダンプ$ dcctrl -d 119A 2081 1 0 0 64 |0F 0E 0D 0C 0B 0A 09 08 07 06 05 04 03 02 01 00--------|-----------------------------------------------00000000|00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 0000000010|00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 0000000020|00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 0000000030|00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00PCI デバイス(デバイス ID:119A、サブシステム ID:2081、RSW:0x1)のデバイスの、ベースアドレス0、オフセット 0 から 64byte を表示します。

[コンパイル方法]

make コマンドを使用してコンパイルします。#cd /usr/src/interface/dpg0607/x86_64/linux/sample/c/dcctrl#make

(c) 2019 Interface Corporation.

19

Page 20: DPG-0607 - Interface...DPG-0607 Help for Linux 第2章製品仕様 2.1 基本仕様 最大同時使用枚数 256枚(理論値) ※実装上の数値です。ご使用の環境により、使用可能な枚数は上

DPG-0607 Help for Linux

第6章 ユーティリティ

6.1 デバイス列挙ユーティリティ(dclist)

[機能]PC に実装されているデバイスの内、本ソフトウェアで制御可能なデバイスの一覧を表示します。デバイス ID、サブシステム ID、RSW 番号、ベースアドレスサイズが表示されます。

[書式]

$ dclist

[パラメータ]なし

[使用例]

$ dclist |DeviceID SubsystemID RSW BAdrSize0 1 2 3 4 5----+-------------------------------------------------------------------------- 0|119A(h) 2081(h) 2(h) 8192 64 256 0 0 0 1|119A(h) 2081(h) E(h) 8192 64 256 0 0 0

(c) 2019 Interface Corporation.

20

Page 21: DPG-0607 - Interface...DPG-0607 Help for Linux 第2章製品仕様 2.1 基本仕様 最大同時使用枚数 256枚(理論値) ※実装上の数値です。ご使用の環境により、使用可能な枚数は上

DPG-0607 Help for Linux

第7章 トラブルシューティング

質問・現象 ドライバが組み込めない、組み込まれていない。

回答・対策 本ソフトウェアの対応していない OS を使用している可能性があります。ご使用の OS が本ソフトウェアの対応OS か確認してください。本ソフトウェアの対応OS は弊社 Web サイト を参照してください。

質問・現象 DcGetDevice 関数でハンドルを取得できない。

回答・対策 本ソフトウェアの対象外のインタフェースモジュールを使用している可能性があります。ユーティリティ(dclist)でご使用のインタフェースモジュールが表示されるか確認してください。表示されない場合、本ソフトウェアを使用して制御を行うことはできません。

質問・現象 ユーティリティ(dclist)で表示されないボードはどうやって制御すればいいのか。

回答・対策 弊社ドライバソフトウェアの GPG シリーズをご利用ください。GPG シリーズはご利用中の弊社製品の製品型式の Webページからダウンロードできます。

質問・現象 レジスタの仕様は何をみればわかるか。

回答・対策 ご利用中の弊社製品の IO 公開資料を参照してください。IO 公開資料はご利用中の弊社製品の製品型式の Webページからダウンロードできます。

(c) 2019 Interface Corporation.

21

Page 22: DPG-0607 - Interface...DPG-0607 Help for Linux 第2章製品仕様 2.1 基本仕様 最大同時使用枚数 256枚(理論値) ※実装上の数値です。ご使用の環境により、使用可能な枚数は上

DPG-0607 Help for Linux

第8章 重要な情報

保証の内容と制限弊社は本ドキュメントに含まれるソースプログラムの実行が中断しないこと、またはその実行に誤りが無いことを保証していません。本製品の品質や使用に起因する、性能に起因するいかなるリスクも使用者が負うものとします。

弊社はドキュメント内の情報の正確さに万全を期しています。万一、誤記または誤植などがあった場合、弊社は予告無く改訂する場合があります。ドキュメントまたはドキュメント内の情報に起因するいかなる損害に対しても弊社は責任を負いません。

ドキュメント内の図や表は説明のためであり、ユーザ個別の応用事例により変化する場合があります。

著作権、知的所有権弊社は本製品に含まれるおよび本製品に対する権利や知的所有権を保持しています。  本製品はコンピュータ ソフトウェア、映像/音声(例えば図、文章、写真など)を含んでいます。

医療機器/器具への適用における注意弊社の製品は人命に関わるような状況下で使用される機器に用いられる事を目的として設計、製造された物では有りません。弊社の製品は人体の検査などに使用するに適する信頼性を確保する事を意図された部品や検査機器と共に設計された物では有りません。医療機器、治療器具などの本製品の適用により、製品の故障、ユーザ、設計者の過失などにより、損傷/損害を引き起こす場合が有ります。

複製の禁止

弊社の許可なく、本ドキュメントの全て、または一部に関わらず、複製、改変などを行うことはできません。

責任の制限弊社は、弊社または再販売者の予見の有無にかかわらず発生したいかなる特別損害、偶発的損害、間接的な損害、重大な損害について、責任を負いません。

本製品(ハードウェア,ソフトウェア)のシステム組み込み、使用、ならびに本製品から得られる結果に関する一切のリスクについては、本製品の使用者に帰属するものとします。

本製品に含まれるバグ、あるいは本製品の供給(納期遅延)、性能もしくは使用に起因する付帯的損害もしくは間接的損害に対して、弊社に全面的に責がある場合でも、弊社はその製品に対する改良(正常に動作する)、代品交換までとし、金銭面での賠償の責任は負わないものとしますので、予めご了承ください。

本製品(ソフトウェアを含む)は、日本国内仕様です。本製品を日本国外で使用された場合、弊社は一切責任を負いかねます。また、弊社は本製品に関し、海外での保守サービスおよび技術サポート等は行っておりません。

商標/登録商標本書に掲載されている会社名、製品名は、それぞれ各社の商標または登録商標です。

(c) 2019 Interface Corporation.

22