[Suzaku:01833] Re: Linuxの割り込みでハンドラがリソースを占有
mizo
email@hidden
2010年 7月 7日 (水) 10:25:44 JST
溝渕です。
Nobuaki Sugishima wrote:
> Linuxで割り込みに関するデバイスドライバが不調です。
>
> まずEDKの段階では割り込みは正常に動作しています。割り込み源は繰り返し
> 10Hzのタイマーです。
追加した割り込みは、SILのタイマ割り込みを参考に追加したものですか?独自
に追加したものですか?
SILを参考にした場合は、ISR(Interrupt Status Register)に割り込み要因を書
き込み、割り込みを止める処理を行なわなければなりません。
これは、bbootのソースから確認することができます。
int timer_interrupt_handler(void * baseaddr_p)
{
Xuint32 IntrStatus;
IntrStatus = OPB_SIL00_mReadReg(XPAR_OPB_SIL00_0_BASEADDR,
OPB_SIL00_INTR_ISR_OFFSET);
slot();
OPB_SIL00_mWriteReg(XPAR_OPB_SIL00_0_BASEADDR, OPB_SIL00_INTR_ISR_OFFSET,
IntrStatus);
return 0;
}
上記コードでは、
1. OPB_SIL00_mReadReg()で割り込み要因を読み込む
2. OPB_SIL00_mWriteReg()で割り込み要因をISRに書き込む
という処理を行なっています。この処理を行なわなければ、割り込みが入りっぱ
なしになります。
以上ご確認ください。
suzaku メーリングリストの案内