問題タブ [hardware-port]

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 投票する
4 に答える
4776 参照

linux-device-driver - inb() および outb() 経由で通信するためのデバイス ベース アドレスの検索

ドライブに関する特定の情報を見つけることができるように、inb()、inw()、outb()、および outw() コマンドを使用してディスク ドライブと通信しようとしています。ただし、これらのコマンドを使用するには、デバイスの正しい I/O ポートが必要です。正しい I/O ポートがあれば、探している情報を簡単に見つけることができますが、Linux でデバイスの I/O ポートのベース アドレスを見つける方法がわかりません。

DOS では、Hdat2 を使用してデバイスのベース アドレスを見つけることができますが、Linux でアドレスを見つけようとしています。Linux でどのデバイスがどの I/O ポートにマップされているかを調べる方法はありますか?

/proc には ioports というファイルがあり、いくつかの情報が含まれていますが、この情報を特定のデバイスに関連付ける方法はわかりません。

どんな助けでも大歓迎です。ありがとう!

0 投票する
2 に答える
1024 参照

linux-kernel - キャラクターデバイスドライバー

「cmosram.c」デバイス ドライバーの read() および write() コールバック関数は、呼び出されるたびに 1 バイトのデータしか転送しないため、RTC ストレージの場所をすべて読み取るには 128 のシステム コールが必要です。

read() 関数と write() 関数を変更して、提供されたバッファーのスペースが保持できる限り多くの有効なバイトを転送することで、このドライバーの効率を改善できますか?

コードは次のとおりです

0 投票する
3 に答える
2565 参照

winapi - inb()、outb()、低レベル I/O に相当する Windows

inb()、outb()、inl() などの低レベル i/o 関数を使用してマザーボードから温度、電圧、およびファン速度を収集することにより、ハードウェアを監視する Linux コードがいくつかあります。

私の課題は、そのコードを単純なコンソール アプリとして Windows で実行できるように移植することです。しかし、Win32 (または .NET) が提供する、ダイレクト メモリ マップ ポートへのアクセスを許可する機能に困惑しています。

システムドライバーもコーディングしたくありません。

私の Windows ツールの好みは VS2008 です。(ご参考までに)

これは可能ですか?

0 投票する
2 に答える
10018 参照

assembly - AT&T asmの「outb」とはどういう意味ですか?

Linuxのコードを読んでいます。Keyboard.Sには次のようなものがあります

保留中の「b」は「バイト」を意味すると思いますが、これらの命令が何を意味するのかまだわかりません。

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

java - Linux 上の Java からの PC ハードウェア ポート アクセス

C バイト サイズの PC アーキテクチャ ハードウェア ポート入出力関数に相当する Java-on-Linux は何ですか?

出力についてはoutb、次のようになります。

入力にはinb、次のようなものがあります。

目的: これよりもオーバーヘッドが少ないものを実装したい:

コード 7 (ベル文字) を標準出力に送信する代わりに、これは Ubuntu で積極的に無効にされているようです。Toolkit のビープ音もミュートされます。

0 投票する
3 に答える
17764 参照

c - outb および inb を使用した低レベル I/O アクセス

割り込みがどのように機能するかを理解するのに苦労しています。

以下のコードは、プログラマブル割り込みコントローラーを初期化します

誰かが私にそれがどのように機能するかを説明できますか:

- outb の役割 (Linux の人間がわかりませんでした)

- アドレスとその意味

別の無関係な質問ですが、outb と inb はポート マップ I/O 用であると読みましたが、入出力通信を行うためにメモリ マップ I/O を使用できますか?

ありがとう。

0 投票する
2 に答える
2030 参照

c - I/O ポートでの読み取りと書き込み

次のコードを理解しようとしています。

出力は 0xff、10 進数で 255 で、ポート 1 またはポート 0 (を使用outb()) に書き込みます。0 を書き込んでいるのになぜ 255 なのか理解できません。

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

c - inb() および outb() を使用して GPIO 値を読み書きする方法

Fintek F75111 GPIO を搭載した Atom ボードがあります。製造元から、チップにアクセスするための SMbus アドレスは 06EH であるという情報があります。

Linux で GPIO の値を読み書きしようとしています。このような Windows 用に作成されたメーカーのサンプル プログラムがあります。

これを Linux 互換関数 inb() および outb() に変換しようとしましたが、これが得られたものです。

GPIO1x インデックス 0x10 は、GPIO1x に接続されている 8 つの GPIO ポートが出力ポートか入力ポートかを設定するために使用されます。

GPIO の出力値はインデックス 0x11 を使用して設定され、ポートが入力ポートとして機能する場合は、インデックス 0x12 が入力値の読み取りに使用されます。

問題は、これが正しいかどうか、または値を読み取る方法がわからないことです (なぜ読み取り関数は読み取り前に何かを出力するのですか?!?)

私が実行すると:

1..9 の値で X を変更すると、出力として次のようになります: 0 8 8 0 0 0 0 0 0

8という数字は私を混乱させます...

0 投票する
2 に答える
397 参照

coding-style - --linuxの最初のカーネルスペースドライバー

ユーザースペースから直接LEDの動作を制御するmmapシステムコールを使用してGPIOを制御することができました。ここで、カーネル空間にドライバーを実装したいと思います。

LinuxでARMコントローラーRPi用の16*2ラインのLCD用の最初のカーネルスペースデバイスドライバーを作成しようとしています。今、私はこの目的のためにGPIOにアクセスする必要があります。

AVRでは、私はこのようにポートにアクセスするために使用します。

私は、inb()およびoutb()関数を使用してi/oポートにアクセスするように指示するLLDを読んでいました。
http://www.makelinux.net/ldd3/chp-9-sect-2

1>ポートの#defineアドレスを使用してGPIOにアクセスすることはできませんか?

2> GPIOを制御するためにinb()およびoutb()関数を使用する利点は何ですか?

提案してください。

0 投票する
2 に答える
13619 参照

linux - Linux でパラレルポートにアクセスする方法

Linux マシン (Debian Wheezy) でパラレル ポートにアクセスしようとしましたrequest_region()が、システムが既にカーネル モジュールをロードしていたため、アクセスできませんでしたparport...

したがって、rmmodモジュールlpppdevparport_pcおよびparport. その後、モジュールを正常に挿入できました。

inb()ただし、返されたベースアドレスからは、0xffどのような値が書き込まれても.

カーネルからのこれらのモジュールの前にrmmod、このレジスタを読み書きできました。次に、これらのモジュールをシステムの起動時にロードされないようにブラックリストに登録しました。これらのレジスタを読み書きでき、モジュールも機能しました。のclearup機能がparport_pcハードウェアを使用不能にするようなことをしたようです。(少なくとも、ポートのステータスは、モジュールがロードされる前と同じではありません)。

私の質問はなぜですか、そして reload の代わりにポートを回復するにはどうすればよいparport_pcですか?