[Armadillo:01614] 割り込みの使い方について
ASAHI Takeshi
email@hidden
2007年 5月 22日 (火) 15:25:28 JST
はじめまして。朝日と申します。
ハードウェア割り込みの使い方について質問があります。
Armadillo-9 hardware manual ver.1.06 p28に
「CPU(EP9315)のINT1として割り込みが通知されます」
と記載されていることから、デバイスドライバでINT1を
扱おうとしています。
しかしながら、request_irq()のパラメータに
・irq = 1
・handler = 割り込みパンドラのポインタ(!= 0)
・irq_flags = 0
・dev_id = "foobarbaz"
を与えると、-EINVALが戻されます。
irq = 2の場合は、-EINVALが戻されません。
このことから、下記ソースコードのif文を見ると、
irq_desc[1].validが0のためではないかと考えられます。
しかし、irq_desc[1].validの制御の仕方が分かりません。
---------------------------------------
int request_irq(
unsigned int irq,
irqreturn_t (*handler)(int, void *, struct pt_regs *),
unsigned long irq_flags,
const char * devname, void *dev_id)
{
unsigned long retval;
struct irqaction *action;
if (irq >= NR_IRQS || !irq_desc[irq].valid || !handler ||
(irq_flags & SA_SHIRQ && !dev_id))
return -EINVAL;
---------------------------------------
(上記コードはアットマークテクノの森島様から頂きました)
Linuxカーネルのバージョンは以下の通りです。
Linux armadillo9 2.6.12.3-a9-6 #1 Mon Sep 4 22:31:10 JST 2006 armv4tl
GNU/Linux
デバイスドライバでINT1の割り込みハンドラを登録するには
request_irq()の他に何か記述が必要でしょうか。
割り込み制御のサンプルコード等がありましたらご教示願えれば幸いです。
どうぞよろしくお願いいたします。
--
朝日
armadillo メーリングリストの案内