team-ebi

技術系の情報共有

GPIO割込みをシグナル(ソフト割り込み)でもらったら応答速度改善

結構必要としてる人はいるはず。

GPIOからの割込み信号を使う場合、楽なのはgpioディレクトリopenしてpollかselect。
そしたら遅延がひどい。ミニマムは良いのにワーストが酷いらしい。
じゃあやっぱりデバドラで割込み拾わんと、って言っても、
割込みもらった後の処理がかなり膨大でデバドラでは無理そうだ、
だそうだ。シグナルならいわゆるソフト割込みだから遅延少ないはず。しらんけど。
て言ったら書く羽目になった。なんでだ。

というわけで、これはGPIO入力をハードウェア割込みで受けて、アプリにソフトウェア割込み=シグナルで渡すドライバ。
今まで数十msあった最大遅延が1ms以下になった、まじかとのお言葉。

はい。マジすか頂きました。

使い方は、、、他のdriver群と一緒にmakeしてもらって、
insdevして、それをアプリからopen("/dev/gpii"...)云々したら
シグナルハンドラが呼ばれるようになる、、、
アプリはいいか。また今度ね。


追記:組込みLinuxの話でした。


GPLにしといたから使ってみて。

ソース gpiisig.c