---------------------------------------------------------------------- JCG実行環境 for 超漢字(B-right/V R2.xxx) 000518 ---------------------------------------------------------------------- ====================================================================== English version is "readme_e.txt". ====================================================================== □ JCGENV のインストール方法 JCGENV は、JCG開発成果物を動作させるターゲットマシン(「超漢字」の動いている マシン)にインストールします。 1. CD-ROM内の env/JCGENV のファイルを、超漢字 (B-right/V R2.xxx) がイン ストールされているマシンの Windows 上のファイルとしてロードしてください。 2. 超漢字を起動して小物メニューの「ファイル変換」を指定し、Windows 上に ロードした JCGENV のファイルを超漢字上にドラッグしてください。 変換方法は、「無変換(基本)」を指定してください。 ※ 1., 2. の手順の代わりに、超漢字上の「ファイル変換」を用いて、CD-ROM内の env/JCGENV ファイルを直接超漢字上のファイルに変換することもできます。 3. 小物メニューの「システム環境設定」を指定して、「バージョン」の画面を 表示し、上記で変換した JCGENV をその中にドラッグしてください。 「JCG実行環境」のシステム登録処理を行いますか ? というパネルが表示され ますので、実行スイッチを押して登録してください。 登録の後、システムを再起動してください。 ========================================================================= □ libjcg.a のインストール方法 libjcg.a は、開発環境(ホストマシン)側にインストールします。 CD-ROM内の ${CDROM}/env/libjcg.a を ${BD}/lib/i386e/ の下にコピーしてください。 % cp ${CDROM}/env/libjcg.a ${BD}/lib/i386e ※ "${BD}" は開発環境(BV-GSDK)のベースディレクトリを表わします。 ※ "${CDROM}" は、CD-ROM上のファイルの所在を示すディレクトリを意味し、 ホストマシンの環境に依存して変化します。CD-ROMの個別のファイルを 直接アクセスできる場合には、"/cdrom/cdrom0" (ホスト依存) などの 名称を書きます。8+3文字のファイル名の制約などにより、CD-ROM上の アーカイブファイル(JCGPRG.TGZ)を展開したものを使う場合には、 アーカイブファイルの展開を行ったディレクトリの名称を書いてください。 ご利用の際は、libjcg.a をリンクする必要がありますので、 ${BD}/jcg/etc/makerules を以下のように修正してください。 LDLIBS = -ljcg -ldbg -lker -ldrv -lker -lg -lsys -lg -lf -lsvc ^^^^^^ あるいは、各 Makefile で以下の指定を行ってください。 LOADLIBES = -ljcg ^^^^^^^^^^^^^^^^^ 取扱説明書の「2.1 ホストマシン側のインストール」も合わせてご覧ください。 ========================================================================= □ JCG インタフェースライブラリ(libjcg.a)の仕様 JCG インタフェースライブラリ(libjcg.a)には、以下の関数が含まれています。 1. メモリ獲得 / 解放ライブラリ ※ 機能的には、一般の malloc(), free() と同一です。 #include IMPORT void* i_malloc(size_t size); IMPORT void i_free(void *ptr); ※ なお、以下のメモリプール関連のシステムコールもサポートしています。 可変長メモリプール操作 cre_mpl, del_mpl, ref_mpl, get_blk, pget_blk, tget_blk, rel_blk 固定長メモリプール操作 cre_mpf, del_mpf, ref_mpf, get_blf, pget_blf, tget_blf, rel_blf 可変長メモリプール、固定長メモリプールは、それそれ id = 1 〜 4 が 利用可能です。なお、システムメモリプール (id < 0)は利用できません。 2. TCP/IP ソケットインタフェースライブラリ ※ 機能的には、B-right/V のソケットインタフェースと同一です。 #include 3. デバイスインタフェースライブラリ ※ JCG のための特殊なデバイスインタフェースです。 #include IMPORT ERR idev_macaddr(UB *addr); ネットワークアダプタの MAC アドレスを addr[6] に取り出す。 IMPORT ERR idev_diskchs(W *cyl, W *head, W *sec); システムディスクのシリンダ数、ヘッド数、セクタ数を、それぞれ *cyl, *head, *sec に取り出す。 4. JTRON 2.0 ITRON 拡張 I/F ライブラリ ※ JTRON 2.0 サポート用の ITRON 拡張システムコールです。 この機能を利用するためには、ITRON 拡張機能モジュール (jt2ext) をインストールする必要があります。 #include Java スレッド操作 extern ER jti_get_thr(char *thrnm, JNO *p_thrno); extern ER jti_isa_thr(JNO thrno); extern ER jti_int_thr(JNO thrno); extern ER jti_isi_thr(JNO thrno); extern ER jti_sus_thr(JNO thrno); extern ER jti_rsm_thr(JNO thrno); extern ER jti_sta_thr(JNO thrno); extern ER jti_thr_stp(JNO thrno); extern ER jti_get_jpr(JNO thrno, INT *p_rslt); extern ER jti_set_jpr(JNO thrno, INT newpri); extern ER jti_des_thr(JNO thrno); Java スレッドグループ操作 extern ER jti_get_tgr(char *tgrnm, JNO *p_tgrno); extern ER jti_des_tgr(JNO tgrno); extern ER jti_sus_tgr(JNO tgrno); extern ER jti_rsm_tgr(JNO tgrno); extern ER jti_stp_tgr(JNO tgrno); Java スレッドとリアルタイムタスクの対応 extern void jti_set_hpr(PRI hijpri); extern PRI jti_get_hpr(PRI hijpri, INT jpr); extern PRI jti_get_lpr(PRI hijpri); 共通オブジェクトアクセス extern ER jti_get_obj(char *objnm, JNO *p_objno); extern ER jti_get_mem(JNO objno, VP *p_addr); extern ER jti_loc_obj(JNO objno, TMO tmout); extern ER jti_unl_obj(JNO objno); extern ER jti_funl_obj(JNO objno); ストリームインタフェース extern ER jti_cre_stm(ID stmid, T_JTI_CSTM *pk_cstm); extern ER jti_del_stm(ID stmid); extern ER jti_wri_stm(ID stmid, VP data, INT len, TMO tmout); extern ER jti_rea_stm(ID stmid, VP data, INT len, TMO tmout); extern ER jti_sht_stm(ID stmid); extern ER jti_ref_stm(ID stmid, T_JTI_RSTM *pk_rstm); ( JTRON 側の テスト用 I/F ) extern ER jti_java_if(INT cmd, VP par) 5. プログラムロード I/F ライブラリ ※ 動的にプログラムをロードして実行するためのライブラリです。 実際の処理としては、一旦、システムディスクの一時ファイルに格納 してからロードして実行しています。 #include IMPORT WERR ipld_mload(VP mem, W len, VP arg, UW *sadr, UW *eadr); mem アドレスから len バイトのリロケータブルオブジェクト形式のプログラ ムイメージをロードして、その初期化処理を実行する。 初期化処理からの戻り値 < 0 のときは、アンロードして、戻り値をそのまま 戻し、>= 0 のときは、ロードしたプログラム ID を戻す。 arg は、初期化処理のパラメータとして渡される。arg を通して、初期化処 理から任意のデータを受け取ることもできる。 sadr と eadr には、それぞれ NULL でないとき、ロードした開始アドレスと 終了アドレスが戻される。 ロードするプログラムは以下の形式となる。 EXPORT ERR main(Bool Startup, VP arg) { < 初期化処理 > Startup : True arg : ipld_mload() で指定した値 < 終了処理 > Startup : False arg : NULL return er; er >= 0 : 正常 < 0 : エラー } IMPORT ERR ipld_unload(W progid); progid で指定したプログラム ID でロードしたオブジェクトの終了処理を 実行する。終了処理からの戻り値 < 0 のときは、戻り値をそのまま戻し、 >= 0 のときは、アンロードして 0 を戻す。 以上 =========================================================================