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

kishimoto.kouji email@hidden
2012年 2月 8日 (水) 14:17:16 JST


竹之下様

ご連絡ありがとうございます。岸本です。

> (必ず割り込みを発生させるのに必要な区間であれば、規定できます。)
お手数ですが、ご教授御願いできないでしょうか?

> 発生します。
> その対策としては、レベル割り込みにして、割り込みハンドラでGPIOの状態を確認
> して、想定しない状態であったら、割り込み処理をしない、等が必要になるかと
> 思います。(いわゆる、チャタリング除去。)
ご教授ありがとうございます。
上記の処理を入れる方法で考えたいと思います。

以上です。

> -----Original Message-----
> From: email@hidden
> [mailto:email@hidden] On Behalf Of
Takenoshita
> Koyo
> Sent: Tuesday, February 07, 2012 7:10 PM
> To: email@hidden
> Subject: [Armadillo:07888] Re: Armadillo-420のGPIOの割り込み応答時間につ
> いて
>
> 竹之下です。
>
> > 追加で確認したいので、
> > 割り込みが発生するのに、最低限必要なL区間(orH区間)は何secでしょうか?
> 最低限必要な区間は、おそらく規定できないと思います。
> (必ず割り込みを発生させるのに必要な区間であれば、規定できます。)
>
> > 私の想定としては、もしGPIOにノイズのようなものが入り、
> > L区間(orH区間)が非常に短い(L区間=1nsecなど)のパルス波が入力された場合、
> > 割り込みは発生するのでしょうか。
> 発生します。
> その対策としては、レベル割り込みにして、割り込みハンドラでGPIOの状態を確認
> して、想定しない状態であったら、割り込み処理をしない、等が必要になるかと
> 思います。(いわゆる、チャタリング除去。)
>
> (2012年02月01日 11:44), 岸本 考史 wrote:
> > 竹之下様
> >
> > 突拍子用の無い質問に対して、
> > 詳しい説明で回答していただきありがとうございました。
> >
> > 追加で確認したいので、
> > 割り込みが発生するのに、最低限必要な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 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 メーリングリストの案内