DWロゴ icon CQ出版社のトップページへ戻る
CqREEKのページへ戻る

Windows対応RISCシステム開発パッケージ

CQ RISC評価キット/SH-4



日立純正Cコンパイラの使い方

 ここではCQ RISC評価キット/SH-4キット付属の日立純正Cコンパイラ SuperH RISC engine C/C++ Compiler(評価版)の,手っ取り早い使い方を簡単に説明します.なおこのページに書かれている内容についてのご質問はご遠慮ください.
(CQ RISC評価キット/SH-4キット付属の日立純正Cコンパイラ(評価版)については,日立製作所も弊社もいっさいサポートできません.ユーザー自身の責任においてご使用ください.)


●コンパイラのインストール
 キット付属のCD-ROMの \HITACHI のディレクトリの中にある SHC のディレクトリを,ディレクトリごと,任意のHDD上にコピーします.
 ここでは例として,C:\SHC にインストールします.以下にインストール後のディレクトリ構成を示します.

  C:\SHC ----- BIN
           |-- INLCUDE
           |-- LIB

●コンパイラの環境設定
 インストールしたディレクトリに,以下の内容のバッチファイル SETSHC.BAT を作成します.このファイルを C:\SHC の中に収録しておきます.

    ---- SETSHC.BAT ---
    PATH C:\SHC\BIN;%PATH%
    SET SHC_LIB=C:\SHC\BIN
    SET SHC_INC=C:\SHC\INCLUDE
    SET SHC_TMP=C:\TEMP
    COMMAND
    -------------------
 テンポラリディレクトリ(SET SHC_TMP=xxxx)は,お使いの環境に合わせて設定してください.

●スタートメニューへの登録
 exeGCCコンパイル用DOS窓の起動と同じように,SH Cコンパイラ用のDOS窓もスタートメニューから起動できると簡単です.さきほど作成した SETSHC.BAT を,スタートメニューに登録します.
 exeGCCコンパイル用DOS窓のように,DOS窓のコマンドプロンプトを EXIT で終了すると自動的にウィンドウを閉じるようにするには,SETSHC.BAT のプロパティを開いて,TAB“プログラム”の中の“プログラム終了時にウィンドウを閉じる”を設定しておくと便利です.またライブラリやインクルードファイルのパスを環境変数で設定するので,環境によっては,TAB“メモリ”の中の“環境変数の初期サイズ”を増やさなければならない場合があります.
 これら一連のスタートメニューへの登録方法の一例を,こちらで説明しています.

●SH C用サンプルプログラムのコピー
 C:\Program Files\Kmc\PARTNER-J SH4 スタータキット\samples\KZ-SH4-SHC の中にある以下のファイルを,C:\SHC にコピーしてください.
    start.src
    sync_l.src
    make.bat
    sample.lnk
    sample.c

●sample.cをCqREEK/SH-4 CPUボード搭載のSDRAM領域に配置するための設定
 本キット付属のexeGCC評価版は,ユーザープログラムをCqREEK/SH-4 CPUボード搭載のSDRAM領域で実行するようにアドレスが固定されています.しかしSH Cでは,CqREEK/SH-4 CPUボードのメモリマップがどうなっているかは知らないので,それをユーザーが指定する必要があります.
 さきほどコピーしたファイルのうち,リンカ指定ファイル sample.lnk の中を,以下の矢印(←)部分に示すように書き換えます.

    ---- sample.lnk ---
    INPUT start.obj,sample.obj,sysc_l.obj
    debug
    output sample.abs
    entry start
    print sample.map
    start P,C,D,B(08F01000)  ← 実行コードの配置アドレス(exeGCC評価版と同じ)
    lib C:\shc\lib\sh4nbmzz  ← インストールした SH Cのディレクトリに書き換える
    exit
    --------------------
なお,拡張子が lnk になっているので,テキストエディタで開こうとすると「ショートカット SAMPLE.LNK が解決できません」と表示される場合がありますが,気にせず作業を進めてかまいません.

●sample.cのコンパイル
 スタートメニューから SH Cコンパイラ用のDOS窓を起動します.開いたDOS窓は,カレントディレクトリは C:\SHC のはずです.ここで MAKE.BAT を実行すると SH C でサンプルのプログラムがコンパイルされます.コンパイル&リンク後のメッセージのようすを以下に示します.

    ---------------------------------
      *****TOTAL ERRORS       0
      *****TOTAL WARNINGS     0

    C:\SHC\SAMPLE>lnk -SUBCOMMAND=sample.lnk
    H SERIES LINKAGE EDITOR Ver. 6.0C Evaluation Software
    Copyright (C) Hitachi, Ltd.1989,1996
    Copyright (C) Hitachi ULSI Systems Co., Ltd. 1990,1996
    Licensed Material of Hitachi, Ltd.

    : INPUT start.obj,sample.obj,sysc_l.obj
    : debug
    : output sample.abs
    : entry start
    : print sample.map
    : start P,C,D,B(10000000)
    : lib C:\shc\lib\sh4nbmzz
    : exit

    LINKAGE EDITOR COMPLETED

    C:\SHC\SAMPLE>
    ---------------------------------
 これで sample.abs というファイルが生成されているはず.これが SH C でコンパイルした実行ファイルとなります.

●PARTNERでのダウンロード&実行
 ではPARTNERを起動して,コンパイルした sample.abs をダウンロード&実行してみましょう.スタートメニューに登録された“SAMPLE KZ-SH4(SH C)”を起動します.
 PARTNERが起動したら,先ほどコンパイルした C:\SHC\sample.abs をロードし,実行します.

 サンプルプログラムを実行すると,PARTNERのコマンドウィンドウに以下のようなメッセージが表示されます.

    ---------------------------------
    PARTNER SAMPLE PROGRAM (c) 1999 Kyoto Micro Computer
    HIT ANY KEY !!
    10 iterations:
    Prime=1027
    ---------------------------------

●sample.c 以外のプログラムのコンパイル方法
 make.bat や sample.lnk は,sample.c をコンパイルするための記述になっています.よって以下のファイルの指示のある部分を,コンパイルしたいソースのファイル名に書き換えればOKです.

    ---- make.bat ---
    shc -op=0 -debug -cpu=sh4 sample.c ← sample.c を書き換える
    asmsh start.src /debug /cpu=sh4
    asmsh sysc_l.src /debug /cpu=sh4
    lnk -SUBCOMMAND=sample.lnk
    -------------------

    ---- sample.lnk ---
    INPUT start.obj,sample.obj,sysc_l.obj ← sample.obj を書き換える
    debug
    output sample.abs ← sample.abs を書き換える
    entry start
    print sample.map ← sample.map を書き換える
    start P,C,D,B(08F01000)
    lib C:\shc\lib\sh4nbmzz
    exit
    --------------------
基本的にはコンパイルするソースの拡張子を除いたファイル名部分と同じ名前にします.

 start.src は,C言語プログラムのスタートアップルーチン,sysc_l.src は,コンソール入出力のためのライブラリソースとなります.

●SH Cでのコンソール入出力について
 exeGCC評価版では,CqREEK/SH-4 CPUボードを使い,デバッガとしてPARTNERを使うことが前提となっているので,printf() などのコンソール入出力関数も,PARTNERのコマンドウィンドウをコンソールとして入出力するようになっています.
 しかしSH Cは,CPUボードの種類や仕様,またデバッガなどを特定していないため,コンソールがどこになるかは決まっていません.実質的にはコンソール入出力関数は実装されていないことになります.
 そこで本キットのSH C用サンプルプログラムでは,sysc_l.src を用意して,文字列の出力や入力を行えるようにしています.
 また,PARTNERのコマンドウィンドウを使わずに,CPUボード搭載のRS-232-Cを使ってターミナルをコンソールとして使う場合は,本キット付属CD-ROMの \TOOL\STDIO の中に収録されているシリアルコンソール入出力サンプルプログラムを参照して,これを流用すれば簡単です.

●SH Cの仕様,コンパイルオプションなどについて
 本キット付属CD-ROMに,SH Cの取扱説明書のPDFファイルが収録されているので,そちらを参照してください.

 本キット付属の SH C は評価版です.これについては日立製作所も弊社もいっさいサポートできません.ユーザー自身の責任においてご使用ください.


Copyright CQ Publishing Co.,Ltd. 1999
edasupport@cqpub.co.jp