[b-free: 388] 現状報告等 (pc-98 での中心核動作 )

藤井 俊典 (TBE01041@niftyserve.or.jp)
Sat, 05 Aug 1995 22:03:00 +0900

 Joy こと藤井です。

 今だに PC-98 上でカーネルが動きません。
 一応前回よりメモリーを9Mbyteに増設するなどはしていますが駄目です。あ
っさり動いている方がいるところを見ると、もしかしたら新しいpc-98の問題
かもしれません。

今の状態ですが、

1.itron.image での実行

ITRONの起動後(init_itron: start表示後) pmemory.c の pmem_init()関数内
でboot_info->count に設定されている 3145978 という数分 release_memory
をかけようとして300個目でフォルト(KERNEL PAGE FALT (memory fault).)し
て停止します。(もともと256しかないのに)

 これは多分私の勘違いで、もともとこのようなことは出来ないと思われる
(src/kernel/make/での作成がいる?)ので調査中止。

2.src/kernel/make/btron での実行

ITRON起動後初期化作業が正常に終了して(いるように見えるだけかもしれない
)、
src/kernel/itron-3.0/common/main.c の itron() の最後の task_switch()
を呼び出し、
task.c で task_switch() 内でキーボードタスク (ID = 3) を選んで、
resume()を呼び出したあとにリセットがかかる。
キーボードタスクは呼び出されないようである。
resume()呼び出し前にprint_task_list()を実行すると、以下の表示

1 <RDY> 0x0 初期タスク
3 <RUN> 0x80018BE8 keyboard_task() の先頭
4 <RDY> 0x80019988 debugger() の先頭
21 <RDY> 0x80019750 echo_server() の先頭

今は GDTR の設定やディスクプリタデーブルの設定を調べています。

なかなかうまくいきませんね。これに手がかかって他のことが出来ない(;_;)
リセットがかかるということはダブルフォルトでしょうか。リセット直前の状
態を調べたいのですが、どのようにするのが良いでしょうか? どこかで
printf()を呼べれば良いのだが。

明日のミーティングは出席します。