[Armadillo:02771] Re: (Armadillo-9) 割り込み処理を行う方法
渡部清太郎
email@hidden
2008年 2月 23日 (土) 10:23:20 JST
渡部と申します。
私もLinuxを導入する際、何から着手していいのかわからず
このメーリングサイトにアルマジロと関係のない質問をして
しまったのでお気持ちはわかります。
Linuxについては勉強あるのみです。
> 改めて何が困っていたかと申しますと。
> INT割り込みと、タイマ割り込みの設定方法と
> 割り込み処理時が行われた場合、それをトリガとした
> プログラム起動もしくはプログラム上での割り込みの
> 手法がわからず困っていた次第でございます。
>
> その為、割り込みを使って何がしたいということは先の話であり
> まずはその方法だけでもと思い質問いたしました。
私はオライリージャパン発行の本でLinuxデバイスドライバ、カーネル
を読み、割り込みの作法を学びました。
ハードウエアとソフトウエアの関連はlinux/include/asm-arm/arch-ep93xx/irqs.h
に記述されています。
アルマジロで使用している割り込みの状態を確認するには
cat /proc/interruptsとすると表示されます。
irqs.hで定義されている番号が一番左、次が割り込みカウンタです。
PC104バスから入力できる割り込みはIRQ_ISAで定義されています。
例えば信号線IRQ4はIRQ_ISA3=65です。
これを使用してプログラムする場合はドライバーを作成する必要があります。
ドライバ内でIRQを取得します。
retval = request_irq(IRQ_ISA3,ep93xx_isa3_isr,
SA_INTERRUPT,"power_down",0);
割り込み待ちにします。
interruptible_sleep_on(&power_down_wq);
プログラムでドライバをコールして、戻ってきたら割り込みが入ったと言う事です。
後は勉強です。
armadillo メーリングリストの案内