[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 メーリングリストの案内