松下電器情報システム名古屋研究所の川本といいます。 これは read メソッドの作りが悪いですね。 read メソッドは「デバイスの状態ないしはバッファを見て、まだデータが 揃っていないようなら、interruptible_sleep_on を呼ぶ」ことを繰り返し てください。 From: "Yuichi Enokida" <enokida@xxxxxxxxxxxxxxxxxx> Subject: [linux-users:102054] 組込Linuxドライバの作成方法 Date: Wed, 03 Mar 2004 14:20:56 +0900 Message-ID: <200403030520.OAA17960@xxxxxxxxxxxxxxxxxx> enokida> こんにちは。えのきだ申します。 enokida> enokida> 現在、組込Linuxドライバを作成中なのですが困った現象が enokida> でており、知恵を拝借したいと思いメールしました。 enokida> enokida> o ソフト構造 enokida> - キャラクタ型デバイス(read,open,close)、割込を登録済 enokida> - Aスレッド処理内容 enokida> デバイスの初期化、割込MASK解除を行い、Readメソッド enokida> をコール(Aスレッドにてデバイスからの割込待ちを行い enokida> たいと思うため)。 enokida> - Readメソッド処理内容 enokida> "interruptible_sleep_on"をコール enokida> - 割込ハンドラ処理内容(request_irqにて登録したもの) enokida> wake_up_interruptible、デバイスの割込マスク enokida> enokida> o 現象 enokida> - Aスレッドを生成し、起動すると割込MASKの解除直後に enokida> 割込ハンドラが動いてしまい、ハンドラから処理が戻って enokida> きた後にスレッドは寝る動きになっている。 enokida> 結果、Aスレッドがデバイスの状態を参照する機会を失っ enokida> てしまう。 enokida> enokida> o 質問事項 enokida> - 本来、デバイスからの割込を参照し、その状態変化を上位 enokida> に知らせるためにはどのようなソフト構造にすべきなの enokida> でしょうか。 enokida> - もしステータスレジスタを参照するのはドライバなのなら enokida> その状態変化をスレッドに知らせるにはどのようにすれば enokida> よいのでしょうか。 enokida> enokida> 以上基本的な質問かもしれませんがよろしくお願い致します。 enokida> enokida> ----- enokida> Yuichi Enokida enokida> mail : enokida@xxxxxxxxxxxxxxxxxx enokida>
Follow-Ups:
- [linux-users:102064] Re: 組込Linuxドライバの作成方法Yuichi Enokida
- [linux-users:102075] Re: 組込Linuxドライバの作成方法Naoto Shimazaki
- [linux-users:102054] 組込Linuxドライバの作成方法Yuichi Enokida
- Prev by Subject: [linux-users:102060] Re: メール転送設定
- Next by Subject: [linux-users:102062] Re: メール転送設定
- Previous by thread: [linux-users:102054] 組込Linuxドライバの作成方法
- Next by thread: [linux-users:102064] Re: 組込Linuxドライバの作成方法
- Indexes:[Main][Thread]