[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: CS12 and irq (Re: MGL2 update)
鈴木(康)です。
<200002101538.AAA12798@ninja.hpc.bs1.fc.nec.co.jp>の記事において
suz@hpc.bs1.fc.nec.co.jpさんは書きました。
| -----
|
| いろいろやった末、次の仮説を立てました。
|
| 1) irq 0x00090003 は正しい。
|
| 2) 正常系で なにか処理が足りず
|
| kern/init_main.c での次のところがクリアできない。
|
|while (config_pending)
| (void) tsleep((void *)&config_pending, PWAIT, "cfpend", 0);
いろいろ調べたのですが、config_pending は 0 になっているにもかかわらず、
ここの tsleep() から先に処理が行っていないことを確認しました。
db> ps
PID PPID PGRP UID S FLAGS COMMAND WAIT
2 0 0 0 3 0x20204 pcic0,0,0 pcicev
1 0 0 0 3 0x4 init initexe
>0 -1 0 0 2 0x20204 swapper
ddb で他のものは動いていないことも確認しています。
ちなみに wdattach も 終了しています。
質問1) これはどういう状態なんでしょうか?
割り込み処理の中でループとしか思えないのですが、合っていますか?
質問2) 合っているとして、どこでループしているとか調べる方法が
あれば教えてください。
# 実は DDB に入る方法も知らなくて、パワーボタンでフォルトする
# コード入れています。
--
鈴木 康司 @NEC
suz@hpc.bs1.fc.nec.co.jp
TEL 0423-33-5381