[Subject Prev][Subject Next][Thread Prev][Thread Next][Subject Index][Thread Index]

[linux-users:99564] Re: ユーザー空間からI/OPort への直接アクセス方法


今井です.

ええと,ボードは
	http://www.interface.co.jp/catalog/prdc.asp?name=pci-2752c
こいつでしょうか.

マニュアルをダウンロードするにはユーザ登録がいるようなので,一般的な話だ
け書くと

・I/O ベースアドレス
	PCI デバイスの場合は,刺さっているボード同士の I/O アドレスが
	ぶつからないように BIOS 等が良きに計らってくれます.
	というわけで,マニュアルのサンプルプログラムに載っている(と思わ
	れる)I/O アドレスとは異なった I/O アドレスに割り当てられている
	可能性があります.

	/sbin/lspci コマンドか cat /proc/pci で,ベースアドレスを確認し
	てみましょう

・I/O 空間にマップするデバイスなのか
	ボードによっては,ポートを I/O 空間にマップせずにメモリ空間にマッ
	プするものもあります.
	この場合は /dev/mem 経由のアクセスになると思います.

・初期化
	PCI コンフィギュレーションレジスタなどをいじらないとボードの設定
	ができない場合,inw(), outw() を用いたユーザプログラムでは実現不
	可能(だと思った方が良い)です.

・I/O レジスタの幅は?
	32bit や 8 bit 幅のレジスタに対して 16bit のアクセスを行った場合
	には,正常なアクセスができないデバイスである,ということも考えら
	れます.

・たまたまレジスタの値が 0xffff であった
	ええと
		何もレジスタの無いアドレスを叩いている
	のか
		レジスタにはアクセスしできているのだが,その値がたまたま
		0xffff であった
	のか,というあたりです.
	# マニュアルを読んでいないので,このレジスタの取るべき値がいくつ
	であるのかわかりませんが.

	このボードは,入出力ボード,だそうなので,簡単な LED 駆動回路を
	ポートに接続し,ポートを出力モードに切替えて,LED を点滅させてみ
	てはどうでしょうか.

でわでわ
_._. __._  _ . ... _  .___ ._. _____ _... ._ _._ _.._. .____  _ . ... _

                                                          Kunihiko IMAI
                                                              今井 邦彦

この情報があなたの探していたものかどうか選択してください。
yes/まさにこれだ!   no/違うなぁ   part/一部見つかった   try/これで試してみる

あなたが探していた情報はどのようなことか、ご自由に記入下さい。特に「まさにこれだ!」と言う場合は記入をお願いします。
例:「複数のマシンからCATV経由でipmasqueradeを利用してWebを参照したい場合の設定について」
Follow-Ups: References: