問題タブ [device-driver]
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.
java - Javaでデバイスドライバーをコーディングすることは可能ですか?
序章
Javaでデバイスドライバを作成することについて何か聞いたことがあり(インターネットからではなく「耳で」のように聞いた)、疑問に思っていました...デバイスドライバはオペレーティングシステムレベルで動作するため、同じ言語で作成する必要があると常に思っていましたOSとして(したがって、ほとんどの場合CIが想定します)
質問
- 私は一般的にこの仮定に誤りがありますか?(そのようです)
- 「異星」言語のドライバーをOSでどのように使用できますか?
- とにかく、デバイスドライバーの(プログラミング言語の観点からの)要件は何ですか?
読んでくれてありがとう
c# - Windowsドライバー作成用のC#?
正確な重複: C#ドライバーの開発?
C#をWindowsドライバーの作成に使用できるかどうか疑問に思っていましたか?
x86 - この IDE コントローラ レジスタ アドレス マップの開始位置をメモリ内のどこに配置するか説明できますか?
私は、単純なディスク ドライバを開発するという 4 分の 1 に及ぶプロジェクトの一環として、ドキュメンテーションを大量に作成してきました。現在、Intel 82801EB IO コントローラー内に実装されているさまざまな atapi および IDE コントローラー レジスターをマップしようとしています。
まず、参照しているドキュメント: www.intel.com/assets/pdf/datasheet/252516.pdf
415 ページの表 154 は、さまざまな構成レジスタのオフセットを示しています。これはばかげた質問のように思えるかもしれませんが、どこからオフセットされているかを見つけるにはどうすればよいですか? これらのレジスター用に予約された何らかの固定ベースアドレスが見つかることを期待していました。そこから、このテーブルを使用してドライバーを構築できます。
たとえば、テーブル 154 では、PCI コマンド レジスタはオフセット 04 ~ 05h に配置されています。レジスターは 417 ページに詳述されており、私はそれを理解していると信じています。しかし、このレジスタが 4 バイト離れたベース アドレスはどこにあるのでしょうか。
更新: 今、使用している D865PERL ボードの固定 IO マップを振り返ってみると、0000-00ffh は B865PERL によって予約されており、動的アドレス情報については ICH5 データシートを参照する必要があることがわかります。上記のテーブル 154 の IDE コントローラ レジスタに使用できると思われます。この時点で、私は教授に電子メールを送信しましたが、これらがどこにあるかをまだ把握しようとしています.
ご覧いただきありがとうございます。
windows-xp - ページプールメモリまたは非ページプールメモリ?? (Windowsドライバー開発)
私はWindowsドライバー開発の初心者です。知りたいのですが、ドライバーのグローバル変数はページプールメモリまたは非ページプールメモリを使用しますか?
よろしくお願いします
ナバニース
java - デバイスと直接通信する Java のネイティブな方法は何ですか?
LPT1、COM1、USB などのデバイスまたはポートと直接通信する Java のネイティブな方法は何ですか?
operating-system - 割り込みの生成を開始するようにATAハードディスクを構成するにはどうすればよいですか?
解決済み
多くの混乱と欲求不満の後、私はついにハードディスクを中断させました。:D基本的には、代替ステータスレジスタの代わりにステータスレジスタを読み続けたという事実に帰着しました。他にもいくつかの問題が発生して起動しましたが、要点は、私のハードディスクドライバがようやく形になり始めているということです。さて、他の人のために私は元の投稿を残します。
PSさらに明確にするために、私はどんな種類のリセットコマンドも発行する必要はありませんでした。私がしたのは次のことだけでした:
- デバイスを選択します(他のディスク上のSolaris OSを強制終了したくない)
- DEVICECONTROLレジスタのnIENビットをクリアします
- IDENTIFYDEVICEコマンドを発行します***
実際、コマンドを発行せずにコードをテストする前にラボを満足させたため、IDENTIFYDEVICEコマンドが必要かどうかはわかりません。ただし、重要な点は、代替ステータスレジスタを必ず読み取り、リセットせずにnIENビットをクリアする必要があるということです。BIOSは明らかにほとんどのものを処理します。
現在、学校で開発中のホビーOS用のディスクドライバを作成しようとしています。現在、PCI構成スペースでデータを読み書きするルーチンと、ATA/ATAPI-7で定義されたさまざまなレジスタを使用してポートIOを実行するアセンブリルーチンがあります。さて、私の質問は、具体的には、IDEハードドライブに割り込みの生成を開始させる方法を教えてください。私はこのすべてのドキュメントを調べてきましたが、何が間違っているのかはっきりしていません。
誰かがIDEハードドライブが割り込みの生成を開始する原因を正確に説明できますか?すでに割り込みサービスルーチンをテストする準備ができていますが、そもそも割り込みを取得するのに問題があります。これは、ATA SOFT RESETを介して実行できますか?
ありがとう!
更新:わかりました。ソフトリセット用にDEVICE CONTROLレジスタのSRSTビットを設定することにより、割り込みを生成するためのセカンダリチャネルであるATAPICDROMを取得できました。これは、プライマリチャネルのハードディスクでは機能しません。これまで気付いたのは、HDDのSRSTビットをセットするとBSYビットがセットされたままになるということです。そこから私は何をすべきかわかりません。
driver - Vista 64 用に署名されたドライバー WHQL を取得するにはどうすればよいですか?
私の会社が顧客のために数年間使用しているドライバーがあります。このドライバは、Vista 64 ではインストールできなくなりました。ドライバに署名してもらう必要があると思いますが、どうすれば開始できるかわかりません。
- 始めるのに最適な場所は何ですか?
- 通常、これにはどのくらいの時間がかかりますか?
- Microsoft に何を送信する必要がありますか?
- 私たちのためにこれをすべてやってくれるサードパーティはいますか?
- プロセス(サードパーティの有無にかかわらず)には通常いくらかかりますか?