btndrvとかbuttondとか

  • 投稿日:
  • by
  • カテゴリ:

じつは、btndrvとbuttondに関しても手を出したのですが、うまくいかないところがあって、頓挫しています。本体に付属のbtndrvは、IRQ30をひっかけて、ボタンの状態変化を拾っている様子ですが、IRQ30を単純に引っ掛けてもスイッチのオン/オフでは割り込みが来ません。ちなみにボタンの状態は、拾い出すことが出来ています

なので、fanctldのように、一定間隔でボタンの状態を監視して、shutdown を走らせるというようなbuttondと、割り込みが拾えない半端btndrvなら用意できます。が、あんまり間隔が長いとレスポンスが悪い感じだし、間隔が短いとシステムに対する無駄な負荷が増えるような気がしてなりません。

怪しいのは、CPLD_INTMASKという割り込みマスクレジスタ。これのLSB(0x01)を立ててやると、システムがフリーズします。(他のビットは立てても特段の変化なし。0x40はRS5C372Aからの割り込みマスクのようです。) このあたりの、扱いがきちんと分かって、割り込みが拾えるようになれば、poll()で寝て待つbuttondが作れるのですが……。仕様が公開されていれば、こんなことで悩まんで済むのに oTL