[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