[Subject Prev][Subject Next][Thread Prev][Thread Next][Subject Index][Thread Index]

[linux-users:102061] Re: 組込Linuxドライバの作成方法


松下電器情報システム名古屋研究所の川本といいます。

これは 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> 

この情報があなたの探していたものかどうか選択してください。
yes/まさにこれだ!   no/違うなぁ   part/一部見つかった   try/これで試してみる

あなたが探していた情報はどのようなことか、ご自由に記入下さい。特に「まさにこれだ!」と言う場合は記入をお願いします。
例:「複数のマシンからCATV経由でipmasqueradeを利用してWebを参照したい場合の設定について」
Follow-Ups: References: