(toppers-users 2713) Re: UbuntuでJSPシミュレーション環境のインストールについての質問

銭 冰 moneyqb @ gmail.com
2008年 1月 15日 (火) 21:43:31 JST


酔漢さん

こんにちは、センヒョウです。

メールありがとうございます。

 > センヒョウさんはいきなりfaultが発生したのでしょうか。
私もstartup.cにあるkernel_start関数のprint_bannerまで
の実行ができました。
いきなりfaultの発生ではありませんでした。

GDBで追ってみた結果は、kernel_startの最後のexit_and_dispatchまで
実行できました。

exit_and_dispatch関数の中に追従すると、
下記のソースの70行目で止まりました。
------------------------------------------------
ファイル名:config/linux/cpu_config.c
59      void
60      dispatch()
61      {
62          sigset_t waitmask;
63          sigemptyset(&waitmask);
64          sigaddset(&waitmask,SIGUSR1);
65              if (enadsp && (!runtsk || (runtsk != schedtsk
66                              && _setjmp(runtsk->tskctxb.env) == 0))){
67                  while (!(runtsk = schedtsk)) {
68                      sigsuspend(&waitmask);
69                  }
70                  _longjmp(runtsk->tskctxb.env, 1);
71              }else{
72                  calltex();
73              }
74      }
------------------------------------------------

つまり、『setjmp/longjmpの仕掛けが思いのほか複雑で、
この二つのレジスタの設定だけで本当に良いのか』とのことですね。

以上、よろしくお願いいたします。

酔漢 さんは書きました:
> 酔漢です。
> 
> 私は
> 
> ------------------------------
>> > #define JB_SP 4 > #define JB_PC 5 
> ------------------------------
> 
> を追加した上でsoftware_term_hook()の呼び出しをコメントアウトしてみまし 
> た。その結果、ビルドは通りました。最終的には segmentation faultがおきる 
> のですが、その前にコンソールに対してTOPPERS/JSPのメッセージが出力されま 
> した。
> 
> センヒョウさんはいきなりfaultが発生したのでしょうか。
> 
> gcc/glibのソースコードを書き分けた結果、私も上の定義でかまわないという結 
> 論に達しました。が、setjmp/longjmpの仕掛けが思いのほか複雑で、この二つの 
> レジスタの設定だけで本当に良いのか疑わしく感じています。
> 
> 酔漢
> 
> 
> moneyqb さんは書きました:
>> そしてmakeをかけると、予想のとおり、
>> software_term_hook未定義というエラーが起きました。
>>
>> JSPプロジェクトにsoftware_term_hookをグレープしてみると、
>> software_term_hookはsystask下のnewlibrt.cに定義されてある、
>> と見れています。
>>
>> そして、メインフォルダ下のMakefileを修正します。
>> STASK_COBJS := $(STASK_COBJS) timer.o linux_serial.o linux_sigio.o
>> logtask.o \
>>  log_output.o vasyslog.o t_perror.o strerror.oの後ろに、
>> newlibrt.oを追加しました。
>>
>> newlibrt.cの中に、C++とmain関数にかかわるものは全てコメントアウトしまし
>> た。
>>
>> そしてmakeをかけると、無事に終わりました。
>>
>> だが、jspを実行してみると、下記のメッセージが出てきました:
>> moneyqb @ moneyqb:~/work/jsp$ ./jsp
>> --------------------------------------------------------------
>> Segmentation fault (core dumped)
>> --------------------------------------------------------------
>>
>> 何かヒントなどをいただければと思いますが...
>>
>>   
> 
> --------------------------------------
> Easy + Joy + Powerful = Yahoo! Bookmarks x Toolbar
> http://pr.mail.yahoo.co.jp/toolbar/
> 
>