玄箱 rvtl 投稿者:BigJoe 投稿日:2006/07/21(Fri) 08:16 No.1363 | |
|
はじめまして! 「玄箱 cgi」でググッていたところ、こちらのページへたどり着いた者です。 rvtl は perl に比して軽いとの事でしたので、早速 DL させて頂きました。 アーカイブを解凍後、実行ファイルを /usr/bin にコピーして起動しようとしたところ「Segmentation fault」とエラー表示されてしまいます。 環境は玄箱HG(Debian3.1sarge2.6.17.3)です。 稼動への足掛かりをご教授頂きたくお願いいたします。 ※PCのFedoraCore5上でx86版は正常動作しております。
|
| Re: 玄箱 rvtl jun - 2006/07/22(Sat) 00:10 No.1366 | |
|
|
はじめまして。 rvtl-3.03ppc.tar.gz ですよね。 手元で玄箱と玄箱HGで確認してみましたが、問題ないようです。 カーネルは 2.6.17.3 でしょうか? 私はカーネルを変更していないので そこに問題があるのかもしれません。PowerPCの 2.4 と 2.6 のカーネルに 大きな違いがあるのでしょうか。
$ gdb /usr/bin/rvtl (gdb) run
とすると、どのように表示されますか。 |
| Re: 玄箱 rvtl jun - 2006/07/25(Tue) 01:17 No.1367 | |
|
|
玄箱/HG を同じ環境にしてみました。
jun@KURO-BOX:~$ uname -a Linux KURO-BOX 2.6.17.3-kuroboxHG #2 Sat Jul 1 10:32:37 JST 2006 ppc GNU/Linux
で
jun@KURO-BOX:~/rvtl-3.03ppc$ ./rvtl Segmentation fault
再現しました。 $gdb rvtl (gdb) run Starting program: /home/jun/rvtl-3.03ppc/rvtl warning: shared library handler failed to enable breakpoint
Program received signal SIGSEGV, Segmentation fault. 0x1000009c in ?? ()
調べてみます。 |
| Re: 玄箱 rvtl jun - 2006/07/28(Fri) 00:05 No.1368 | |
|
|
システムコールの前後でレジスタ(r4とかr5)が保存されないような感じです。 2.6.14ぐらいからカーネルのソースを眺めてみるとPowerPC系では 結構変化している模様。これは手強い。 |
| Re: 玄箱 rvtl jun - 2006/08/02(Wed) 00:50 No.1369 | |
|
|
カーネルの2.6.17.3と2.6.17.7で確認してみましたが、 sc 命令の前後で r0,r4-r12 が保存されない場合があります。 ABI的には保存する必要はないのでしょうが、カーネル 2.4.17では 保存されていました。2.6のソースでも保存されているように読める のですが、どうも違うようです。
とにかく sc 命令の前後で r4-r12 を保存するようにrvtlを変更したら 動作しました。もう少しテストしてから公開します。 |
| rvtl-3.03.1ppc jun - 2006/08/03(Thu) 00:31 No.1370 | |
|
|
rvtl-3.03.1ppc を公開しました。
jun@KURO-BOX:~$ uname -a Linux KURO-BOX 2.6.17.7-kuroboxHG #1 Sat Jul 29 18:18:41 JST 2006 ppc GNU/Linux
jun@KURO-BOX:~$ rvtl RVTL v.3.03.1 2006/08/02, (C)2006 Jun Mizutani RVTL may be copied under the terms of the GNU General Public License.
<07BD>
RvtlWiki も動作しました。
ダウンロード: https://www.nk.rim.or.jp/~jun/rvtl/rvtl_ppc.html |
| Re: 玄箱 rvtl NH3 - 2006/08/13(Sun) 21:44 No.1371 | |
|
|
玄箱ではないのですが、親から借りたMacに自分のPCを接続して、PowerPCのアセンブラで遊んでいます。将来的には玄箱を買おうかと考えてはいます(経済的にも学生にとってはそちらのほうがいいですしw とにかくPowerPCのアセンブラに関しては情報が少ないので(苦笑)、junさんのrvtlの"stdio.s"をいろいろといじりっており、まさに"手探り"状態です。そこでネットでオペコードを調べていたところ、Altivecについて興味を持ちました。Appleのサイトなどを見てベクトルの性質についてはおおよそ理解できました。ここで問題が発生したのですが、どうやったらベクトルのレジスタの内容をstdoutに出力できるのでしょうか? まだアセンブラには慣れていないので命令なども教えていただけるとありがたいです.. |
| Altivec jun - 2006/08/15(Tue) 20:18 No.1372 | |
|
|
Macは持っていないので、Altivecは使ったことがありませんが、 AltiVec(TM) Technology Programming Environments Manual を読んでみると lvx、lvxl、stvx、stvxl 命令でメモリとvectorレジスタ間の転送するようです。 出力したいvectorレジスタをメモリに転送し、そのメモリの内容をstdoutに出力 すればよいと思います。
|
| Re: 玄箱 rvtl NH3 - 2006/08/15(Tue) 21:17 No.1373 | |
|
|
ありがとうございます。 IBMに4MB超のマニュアルがあったので、lvx命令の使いかたを調べてやってみます。
|
|