問題タブ [linux-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.
linux-kernel - Linux カーネル モジュールにメモリ制限はありますか?
Linuxカーネルモジュールによるメモリ使用量、つまりコードセグメントのサイズやグローバルメモリの量などに制限はありますか?
linux - mpc8xxx_gpio.c デバイスドライバーの使い方
デバイスドライバー開発初心者です。MPC837xERDB 評価ボードの GPIO にアクセスしようとしています。
カーネルを にアップグレードし、linux-2.6.28.9
サポートを有効にしましたmpc8xxx_gpio.c
。起動時に、2 つのgpio
コントローラーを正常に検出します。
今私の質問は、gpio
ピンと通信するためにどのように使用するのですか? ファイル内のコードを変更してmpc8xxx_gpio.c
やりたいことを実行する必要がありますか、またはカーネルで提供されるgpios
標準API ( / ) を使用できますか。標準のカーネル API も試してみましたが、失敗しました。これが私のコードです:gpio
gpio_request()
gpio_free()
次の O/P が得られます。
誰かが私にサンプルコードなどを提供できますか? 実際にGPIOのピン番号を設定しようとしています。9 はボード上の LED に接続されているため、アクティブ Low になります。
linux-device-driver - Linux デバイス ドライバーのオンザフライでの I2C アドレスの変更
Linux システムに 2 台のカメラが接続されています。カメラは I2C 経由で制御されます。シングル カメラのデバイス ドライバーは、デバイス ドライバーに基づいていi2c-core
ます。2台のカメラを切り替えたい。したがって、I2C アドレスをオンザフライで変更して、いずれかのカメラを制御したいと考えています。
これは合理的ですか?はいの場合、それを行う機能はありますか、またはクライアントをi2c_detach_client
およびi2c_attach_client
でそれぞれ切り離して接続する必要がありますか?
アドバイスをありがとう、ステファン
c - シリアルポートに接続されたデバイスと通信するためのAPIの作成
私の質問のいくつかの用語が間違っているのではないかと心配しています。私に耐えて、私が間違っているところはどこでも私を訂正してください。
シリアルポートに接続されたカードリーダーを操作するための一連の機能を提供するライブラリ/プログラムを作成する必要があります。挿入されたカードを取り出すのと同じように、ユーザーは自分のコードを呼び出すだけです。たとえば、
cardEject()
その他の機能は、シリアルポートのオープン、データの書き込み、確認応答の確認、エラーコードの確認、障害が発生した場合のコマンドの再送信などを自動的に処理します。シリアルポート上のデバイスとの通信についてはかなり明確です。
私の質問は、これらすべての関数を記述してテストした後、どのようにユーザーに提供する必要があるかということです。
彼にヘッダーファイル(.h
)とオブジェクトファイル(.o
)を与える必要がありますか?実際のプログラムをコンパイルしながらオブジェクトにリンクできるようにします。
静的ライブラリ(.a
)を提供する必要がありますか?
どちらが良いアイデアですか?
各機能がシリアルポートを開いてから閉じるのは良い考えですか?または、initCardReader()
それを開き、そのプロパティを設定し、それcloseCardReader()
を閉じる必要がありますか?initCardReader()
他のすべての関数は、 ?の後にのみ呼び出すことができます。
今、ばかげているが本当の質問:-)そのようなプログラムに使用される用語は何ですか?それはドライバーまたはライブラリまたはデバイスインターフェイスですか?そのようなプロジェクトの正しいラベルは何ですか?
御時間ありがとうございます。
編集
私を導いてくれた皆さんに感謝します。本当に感謝。
このAPIは、より大きなプロジェクトの一部になる必要があります。実際、私もそのプロジェクトに取り組んでいます。しかし、このAPIは、私がいるかどうかに関係なく、他のプロジェクトで使用される可能性が高いです。他のプロジェクトでの使用の可能性を考えると、ライブラリの方が理にかなっていると思います。私が間違っている場合は、親切に訂正してください。
linux - 一部のハードウェアで特定のUSBマスストレージデバイスを検出できないのはなぜですか?
複合USBフレームワークを使用して大容量記憶装置ドライバーを変更し、組み込みの大容量記憶装置をXbox 360で表示できるようにしようとしています。これは、単純なVendorID/ProductIDブロックではないことを確認しました。
Xbox 360など、一部のデバイスが特定の大容量記憶装置を認識できない原因を具体的に理解したいと思います。私の質問はXboxに固有のものですが、デバイスが特定の種類の大容量記憶装置を認識できない理由を説明する一般的な回答も受け入れられます。
私が所有しているフラッシュデバイスのうち、機能しないのは、2つのエンドポイント(バルクIN、バルクOUT)のみが定義されているデバイスであることがわかりました。一方、3つのエンドポイント(バルク入力、バルク出力、割り込み入力)を含むすべての大容量記憶装置は機能しました。これは関連する観察または偶然の一致ですか?
linux - ioctl ドライバ関数は Linux 2.6 でアトミック コンテキストから実行されますか?
ドライバーの 1 つで発生した「アトミックなスケジュール設定」エラーを追跡しており、ioctl がアトミック コンテキストであるかどうか疑問に思っています。また、アトミック コンテキストに出入りする方法、およびそれらが発生する一般的な場所について誰かが共有するものがあれば、それは役に立ちます。
c - volatile を使用する場所
volatile キーワードについて読みましたが、どのような状況で使用すればよいかわかりません。
メモリ(変数)が更新されていて、プロセスがそれを認識していないのはいつですか?
ドライバーはどのような場合に揮発性変数を使用する必要がありますか?
linux - Gprofでプロファイリングするドライバーをコンパイルする方法
簡単な質問..Gprofでプロファイリングするドライバーをコンパイルする方法は?
私の現在のMakefile:
正常に動作しますが(ドライバーなどをロードできます)、ファイルに-pgオプションを追加しようとすると、エラーが発生します。
Makefile:
エラーが発生します:
linux-device-driver - Linux ドライバー - 割り込みを防ぐ方法
Linux ドライバーは初めてで、ハードウェア用の char ドライバーを作成しています。
ドライバー機能 (例: ioctl) の実行中に割り込み (ソフトウェア/ハードウェア) の妨害を防ぐ正確な方法は何ですか?
ありがとう、
プイ
linux - 低レイテンシの割り込み処理 (カーネルからユーザー空間に戻る平均時間は?)
独自のデバイス ドライバーを使用した光ファイバー リンクがあります。
リンクは PCIe カードに入ります。RHEL 5.2 (2.6.18-128~) で実行しています。セットアップや FIFO アクセスなどのためにカードのインターフェイス
を調整mmap
しました。これらの読み取り/書き込みは完了するまでに数マイクロ秒かかるため、すべて問題ありません。
もちろん、これを割り込みに使用することはできないため、提供されているカーネル モジュールをユーザー空間の lib インターフェイスと共に使用する必要があります。
WaitForInterrupt()から戻るのに約70µsかかります。(割り込みが発生した時間はファームウェアでラッチされます。これを読み取り、上記のように約2μsかかり、ファームウェアの現在の時間と比較します)
割り込みが発生してからユーザー空間 API の割り込み呼び出し待機メソッドが戻るまでの予想アクセス時間は?
ネットワーク/その他の高速インターフェイスはかかりますか?