(toppers-users 4041) Re: jsp 1.4.3でアボートします

Shinya Honda honda @ ertl.jp
2012年 11月 9日 (金) 12:33:32 JST


野田さん

本田です.

小南さんが言われるように,JSPのLinuxシミュレータは現状メンテしていないの
で,おすすめしていません.

今使われるでしたら,ASPカーネルの Skyeyeシミュレータ簡易パッケージ がお
すすめです.
http://www.toppers.jp/asp-e-download.html

シミュレータは,以下の場所からダウンロード可能です.
http://www.toppers.jp/sim.html

以上,よろしくお願いします.

(2012/11/09 12:12), yasuo kominami(nifty) wrote:
> 野田様
> 
> 小南と申します。
> 
> まず最初に確認しておきたいことががあります。
> JSP1.4.3のlinuxシュミレータを使用されているとのことですが、TOPPERSプロジェクト
> の開発成果物として公開されているJSP 1.4.3(に限らす、1.4以降すべてにおいて)の
> linuxシュミレータは、現在広く使われているバージョンのLinuxカーネル上ではコンパ
> イルエラーが発生してコンパイルできません
> 
> linuxシミュレータの実装は、doc/linux.txtに記載されている「カーネル2.2」の内部構造
> に依存しており、Linuxカーネル2.3か2.4の段階でそのカーネル内部構造が変更となり、
> コンパイルできなくなっています。
> linuxシミュレータは、JSP 1.4の一部として2003年に公開されて以降、一度も更新され
> ておりません。
> 
> On Thu, Nov 8, 2012 at 4:17 PM, 野田敬雄 <takaon90 @ gmail.com> wrote:
> 
>> はじめまして、野田と申します。
>>
>> 会社の研修で、ITRONのプログラムを作成しろという課題を与えられていろいろ頑張っているんですが、
>> 完全な実力不足で環境さえ作成できないため、申し訳ありませんがアドバイスをお願いします。
>>
>> jsp-1.4.3のlinuxシミュレータでサンプルアプリのコンパイルが通るところまでは行ったんですが、
>> 実行してすぐにアボートしてしまいます。
>>
>> gdbもろくに使えないレベルなので解釈が全く違っているかもしれませんが、
>> なんとなく実行結果を見た限りでは、無限ループに入ってメモリを食いつぶした、
>> という感じかな、と思っています。
>>
>> こういった状況の場合、原因としてどんなことが考えられるでしょうか?
>> よろしくお願いします。
>>
>> 以下に環境と実行結果のログを貼り付けます。
>>
>> ハード(?):
>> WindowsXP+VMwarePlayer2.5.5
>> OS: Ubuntu10.04(8.04LTSからアップグレード)
>>
>> ソフト:
>> gcc              4:4.4.3-1ubuntu1
>> gcc-4.4       4.4.3-4ubuntu5.1
>> g++             4:4.4.3-1ubuntu1
>> g++4.4        4.4.3-4ubuntu5.1
>> binutils       2.20.1-3ubuntu7.1
>> libnewlib0  1.18.0-1ubuntu2
>>
>>
>> -----------------実行結果---------------------------------------
>> noda @ ubuntu-vm:~/work/jsp/APL$ ./jsp
>>
>> 相談されているlinuxシュミレータは、以下のメッセージから判断すると、
> 
> TOPPERS/JSP Kernel Release 1.4 (patchlevel = 3) for Linux(posix-base)
>>
> 
> 私が作成し、以下で紹介したパッチをあてたものではないかと思います。
> 
> http://www.toppers.jp/TOPPERS-USERS/2008-January/002534.html
> 
> 私の作成したパッチを当てているのでしたら、「動作したらラッキー」ぐらいに
> 思ってください。
> パッチを作成した環境では(Fedora 7)では、sample1の実行に支障がないこと
> は確認しましたが、POSIXではシグナルハンドラでlongjmp関数が安全に使用
> できることは保障されていないため、パッチが期待したとおりに動作するか否か
> は、Linuxカーネルの実装にどうしても依存してしまうからです。
> 
> 
> 
> (Nov  7 2012, 16:56:27)
>> Copyright (C) 2000-2003 by Embedded and Real-Time Systems Laboratory
>>                              Toyohashi Univ. of Technology, JAPAN
>> Copyright (C) 2004-2006 by Embedded and Real-Time Systems Laboratory
>>              Graduate School of Information Science, Nagoya Univ., JAPAN
>>
>>   以下のメッセージが出る段階で、Linuxカーネルが、パッチを適用したlinuxシミュレータ
> の期待した動作をしてない可能性が、非常に高いです。
> 
> *** longjmp causes uninitialized stack frame ***: ./jsp terminated
>>
> 
>   私がcygwinにlinuxシミュレータを移植しようとした時にも同じような現象が発生し、
> 移植を断念したことがあります。
> 
> 私ができる現実的なアドバイスは、以下の通りです。
> 
> 1. TOPPERS/ASPのMac OS Xシミュレータを用いる。
> JSPでなく、ASPであり、Mac OS Xを使うことになりますが、UNIX上のシミュレータ
> として現在唯一メンテナンスされており(メンテナは高田先生です)、また現時点までに
> 動かないという報告は上がっていません。
> 
> 研修というレベルであれば(過去との互換性が最重要という話でなければ)、ITRON
> OS上のプログラム作成という観点からいえば、JSPとASPは一緒といっていいです。
> 
> 2.パッチを適用したlinuxシミュレータが動作する古いバージョンのLinuxカーネル
> の上で動作させる。
> 
> 最近使われているバージョンのLinuxカーネルでなく、古いバージョンであれば、
> 動作する可能性が高いです。
> 私がパッチを作成したのはFedora 7です。
> 現在は手元に32bit Linuxマシンがないため確認できません。
> 
> 現在の環境でコンパイルするのならば、JSP 1.4.3ではなく、JSP 1.4.4のソース
> を使うことをお勧めします。
> linuxシミュレータ自体のソースには変更がありませんが、その他の、例えば
> コンフィギュレータ(cfg)のソースも、1.4.3以前のものは、gcc4以降ではコンパイル
> エラーが発生します。
> 
> JSPカーネル自体は問題がない場合でも、開発環境を含めて、現時点で気軽に
> 使うには、JSPよりもASPのほうが、便利なことが多いです。
>