[Armadillo:07882] Re: Armadillo-420のGPIOの割り込み応答時間について

岸本 考史 email@hidden
2012年 2月 1日 (水) 11:44:07 JST


竹之下様

突拍子用の無い質問に対して、
詳しい説明で回答していただきありがとうございました。

追加で確認したいので、
割り込みが発生するのに、最低限必要なL区間(orH区間)は何secでしょうか?

私の想定としては、もしGPIOにノイズのようなものが入り、
L区間(orH区間)が非常に短い(L区間=1nsecなど)のパルス波が入力された場合、
割り込みは発生するのでしょうか。
GPIOの割り込み設定がエッジ検出の場合とレベル検出の場合で異なる場合は、
両方の設定に対し必要最低限のL区間(orH区間)を教えていただけませんでしょうか?

以上。宜しくお願いします
> -----Original Message-----
> From: email@hidden
> [mailto:email@hidden] On Behalf Of
Takenoshita
> Koyo
> Sent: Tuesday, January 24, 2012 5:21 PM
> To: Armadillo general discussion list
> Subject: [Armadillo:07840] Re: Armadillo-420のGPIOの割り込み応答時間につ
> いて
>
> 竹之下です。
>
> GPIOの反応速度を厳密に測定するのは、難しいですね。
> そもそも、Linuxの場合、リアルタイムOSではないので、反応速度が
> 一定ではありません。
>
> 処理としては、以下のルートを通ります。
>
> 0. アプリがpoll()またはselect()で割り込み待ちに入る
> 1. 割り込み発生
> 2. カーネルの割り込みハンドラが呼ばれる
> linux-2.6.26-at/drivers/gpio/gpiolib.c::gpio_sysfs_irq()
>  -> schedule_work() してすぐ終了
> 3. shceduleされたタスクが呼ばれる
> linux-2.6.26-at/drivers/gpio/gpiolib.c::gpio_notify_sysfs()
>  -> linux-2.6.26-at/fs/sysfs/file.c::sysfs_notify_dirent()
>   -> wake_up_interruptible()
> 4. アプリがpoll()またはselect()から抜ける
>
> 遅延が発生する要因としては、以下の箇所があります。
>
> A. 1. と 2. の間
> 割り込みハンドラ内で長い時間処理を行うような、行儀の悪ドライバが
> いた場合、割り込みが発生してから、割り込みハンドラが呼ばれるまでに
> 遅延が発生する可能性があります。
>
> B. 2. と 3. の間、3. と 4. の間
> ここで、優先度の高いプロセスが他にある場合、そのプロセスが実行されるので、
> 遅延が発生する可能性があります。
> オーダーとしては、10msec単位です。
> (この間、他の割り込みが発生した場合、そちらの処理に時間を取られます)
>
> 影響としては、B.(プロセススイッチ)の影響が大きいと思います。
> 対策としては、速い反応速度が必要なプロセスの優先度を上げてください。
>
> 具体的な回答ができず申し訳ありません。
>
> (2012年01月20日 17:34), 岸本 考史 wrote:
> > 初めまして、岸本と申します。
> >
> > Armadillo-420のGPIO sysfsを使った割り込みについて、
> > 応答時間を知りたいのですが、どなたか教えていただけないでしょうか?
> > 計算方法などございましたら、教えていただけると幸いです。
> >
> > 以上。宜しくお願い致します。
> >
> > _______________________________________________
> > armadillo mailing list
> > email@hidden
> > http://lists.atmark-techno.com/cgi-bin/mailman/listinfo/armadillo
> >
>
>
> --
> Koyo Takenoshita
>
> _______________________________________________
> armadillo mailing list
> email@hidden
> http://lists.atmark-techno.com/cgi-bin/mailman/listinfo/armadillo




armadillo メーリングリストの案内