問題タブ [ioports]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
1 に答える
475 参照

linux - デバイスに割り当てられている ioport を見つける方法

製造されたすべてのデバイス用に Linux で予約された io ポート番号があります。

Intelビルトインネットワークカードのようなデバイスがあります。または、realtekのwifi(usb)用に持っている別のデバイス。github の Linux リポジトリでは、デバイス ドライバーは特定の io ポートを使用して登録します。そして、カーネルはそれらのポートをデバイスドライバーに割り当てます。デバイス ドライバーは通常、request_region 関数の呼び出しを使用してポートを要求します。したがって、一部のイーサネットデバイスでは、次のように要求します

0x110上記はtoで始まり0x200、任意のポートをカーネルによってドライバーにこの範​​囲で割り当てることができ、/proc/ioports ファイルに表示されます。これは、ドライバーが からの成功リターンの時間までにその io ポートを使用していることを意味しrequest_regionます。

質問 : 私の質問は、Linux がカーネル 5.7 または最新のカーネル バージョンで使用可能なすべての製造済みデバイスに io ポートを割り当てているということですか?

質問 : 任意のデバイスのデバイス ドライバーを作成したい場合はどうすればよいですか。要求する io ポート番号の範囲を見つけるにはどうすればよいですか。カーネルコードを調べて、より類似したドライバーのポート範囲を見つける必要があるとは思いません。そのioポート番号の範囲を見つけるにはどうすればよいですか。デバイスドライバーの作成に必要なこの最初のステップを達成する方法(任意のデバイス。wifiインターネットデバイスまたはイーサネットデバイス)

0 投票する
1 に答える
52 参照

assembly - ワードサイズの OUT からバイト IO レジスタへ? 古い VGA コードの命令なしでシーケンス コントローラ レジスタを設定する

この例では、いくつかの古い VGA コードを使用してシーケンス コントローラ レジスタがどのように設定されているか理解できません。

この例は、Michael Abrash の VGA 本からのものです: https://www.phatcode.net/res/224/files/html/ch47/47-02.html

説明によると、彼はインデックス 4 にあるメモリ モード レジスタを設定したいと考えています。彼は、ビット インデックス 3 にある chain4 を無効にしたいと考えています (すべて、Richard F. Ferraro による EGA、VGA、およびスーパー VGA カードのプログラマーズ ガイドによると)。 )。

なぜ彼が 06 と 04outの 2 バイトを ax に入れ、それらを . out レジスタは 1 バイトのみであり、アドレス指定のためにレジスタのインデックスを明示的に設定していません。私が理解できない魔法が起こっているのでしょうか?