携帯版
5090 (isweb) + 79520 (Vector) + Counter by XREA.COM


メニュー
アンテナ
Autch.net > 小ネタ > P/ECE を Linux で使う Last-Modified: 2008-10-16 15:30:06 (JST)

P/ECE を Linux で使う

概要

Aquaplus の携帯機 P/ECE -mobile equipment- の開発環境は Windows 用に提供されているが、 言語処理系そのもの(≒ EPSON の著作物)以外のソースコードがすべて 公開されているため、多くの人がこいつを Linux で使えないかと挑戦し ている。

この文書では、Linux から P/ECE のクロス開発をするための方法の一 例を解説する。

また Linux で P/ECE のクロス開発をするためのアプローチとしては、 nsawa さんgcc for S1C33 を ソースからコンパイルして使うか、 Wine で本家開発環境 の gcc33 または nsawa さんの gcc for S1C33 バイナリ をエミュレートして使うという二通りがある。

この文書では後者の、P/ECE 開発環境を Wine で使う方法を説明する。

環境

P/ECE
初回生産分ではない、白モデル。 銀次郎さんにフラッシュ メモリ 2MB 改造をしていただいたもの。システムは v1.20.
コンピュータ
Lenovo ThinkPad X61 7675-A31 Core 2 Duo T7500 2.2GHz, 4GB RAM, 160GB HDD
Debian GNU/Linux sid kernel 2.6.26-1-amd64

ファイルのコピー

今のところ P/ECE 開発環境のインストーラは Wine では動かないので、 既に P/ECE 開発環境の入っているマシンから、P/ECE 開発環境を全部 Linux にコピーする。私の環境では Windows に は c:/usr/piece/ にインストールされており、Linux に は /usr/local/piece/ にコピーした。

Wine のドライブ名の振り方との関係から、このままでは pcc33 などが ヘッダやライブラリを見つけられないので、関係するファイルを設定す る。

/usr/local/piece/bin/pcc33.cfg を開き、

LIB=z:\usr\local\piece\lib
INC=z:\usr\local\piece\include

以上の 2 行を追加または修正して保存する。

Wine のインストール

いまどきの Linux distro なら Wine はパッケージシステム経由でイン ストールできるはずなので、それをインストールする。

binfmt_misc を設定するパッケージ(Debian な ら binfmt-support)を使って、.exe ファイ ルを Wine 越しに実行できるよう設定する。

~/.wine/system.reg(なければ ~/.wine/config)を開いて、

System\\CurrentControlSet\\Control\\Session Manager\\Environment

このキーを探し、値 Pathz:\\usr\\local\\piece\\bin を追加する。

~/.bash_profile (シェルが bash のとき)などを編集し て、PATH 環境変数に /usr/local/piece/bin を追加する。

シェルから pcc33.exe とやってみて、usage メッセージが出ることを確認する。

P/ECE 標準ヘッダへパッチ

この環境でコンパイルをしようとすると、

c:/usr/PIECE/include/stdlib.h:97:9: warning: extra tokens at end of #endif directive

この様なメッセージが limits.h や stdio.h, stdlib.h などに対して 表示されることがある。それらのヘッダファイルの末尾にあ る #endif 行のあとに余計なマクロが書かれているので、こ れをコメントアウトする。

stdlib.h と stddef.h で wchar_t の宣言がコンフリク トしているというエラーになったら、stddef.h の _WCHART というマクロを _WCHAR_T に直す。

stdarg.h を使おうとして _BOUNDARY が未定義というエ ラーになったら、#define _STDARG_H の次の行 に #include <smcvals.h> という行を追加する。

TODO

  • P/ECE コミュニケータやカーネルアップデータ、isd は使えないので、wo さん の Linux 版 isd を使うしかない。gcc 4.3.2 だと make 一 発でコンパイル出来ているので、以下の対応は不要。

    どうも、はじめまして。wo です。Linux の isd がコンパイルで きない、とのことだったので、調べてみたら、たしかにバージョ ン 2.95 あたりの gcc だとコンパイルできませんでした。 DEBUG_MSG を

    #define DEBUG_MSG(format, ARGS...)  (::n_debug::output(__FILE__ ":%d " format, __LINE__, ##ARGS ))
    

    に直してあげといてください… gcc 拡張なんてうかつに使って はいけないですな。。

改版履歴

2008.10.16
  • P/ECE に Lua VM を載せる試みのついでに、現在の Linux 状況 に合わせて記事を加筆更新。
大昔(ぉ
  • 初版

リンク

linux-p/eace
gcc for S1C33 をネイティブビルドして使うアプローチでの手順。

Autch.net > 小ネタ > P/ECE を Linux で使う Last-Modified: 2008-10-16 15:30:06 (JST)
Valid XHTML 1.0! Valid CSS! Made with Cascading Style Sheets Powered by PHP Powered by Smarty
転載・引用・リンク・アンリンク自由。一切のコンテンツは無保証。
Copyright © 2000 - 2008, Autch.net. "gray_forest" theme designed by OCEAN-NET.