H8用コンパイラ GCC(Cygwin)


AKI-H8/3052Fをマザーボードとセットで購入すると秋月のC言語コンパイラ・アセンブラ、GCCがついてきます。
しかし、どうせやるなら他のマイコンもサポートしている GCC を使いたいし、最新版を手に入れたいし…
と言うことで自分でコンパイル・インストールすることにしました。

環境はメインマシンが Windows なので、Unix系コマンドが手軽に使える Cygwin をインストールし、その上でメイクできる環境を構築しました。


  • Cygwin をインストールする
  • ソースコードを取得する
  • binutils をインストールする
  • gcc をインストールする
  • newlib をインストールする
  • Open SH/H8 writer をインストールする
  • C言語をコンパイルする
  • AKI-H8マザーボードを使用してプログラムを書き込む

  • Cygwin をインストールする

    http://www.cygwin.com/ より setup.exe を ダウンロード(右端の "install Cygwin now" をクリックする)。実行してインストールする。
     ※ デフォルトの設定でよかったはず。いろいろとインストールしたりしてたので忘れてしまいました (^^;

    ソースコードを取得する

    必要なソースは gcc, binutils, newlib です。
    以下の場所からそれぞれ取得します。保存場所は適当な所で良いです[例 C:\cygwin\usr\tmp]。
    gcc は最新の 4.0系ではなく、3.0系にしました。

    ftp://ftp.gnu.org/gnu/gcc/gcc-3.4.4/gcc-3.4.4.tar.bz2
    ftp://ftp.gnu.org/gnu/binutils/binutils-2.16.tar.gz
    ftp://sources.redhat.com/pub/newlib/newlib-1.14.0.tar.gz


    binutils をインストールする

    以下のコマンドを実行し、インストールする。

    $ tar zxvf ./binutils-2.16.tar.gz
    $ cd ./binutils-2.16
    $ mkdir BUILD
    $ cd ./BUILD
    $ ../configure --target=h8300-hms --prefix=/usr/local
    $ make
    $ make -n install > binutils_h8300_install.txt
    $ make install
    $ make clean


    gcc をインストールする

    以下のコマンドを実行し、インストールする。
    赤字は newlib を展開した所の絶対パスを指定する。

    $ tar xvjf ./gcc-3.4.4.tar.bz2
    $ tar zxvf ./newlib-1.14.0.tar.gz
    $ cd ./gcc-3.4.4
    $ mkdir BUILD
    $ cd ./BUILD
    $ ../configure --target=h8300-hms --enable-languages="c" --with-newlib --with-headers=/usr/tmp/newlib-1.14.0/newlib/libc/include --prefix=/usr/local
    $ make LANGUAGES="c"
    $ make -n install > gcc_h8300_install.txt
    $ make install
    $ make clean


    newlib をインストールする

    以下のコマンドを実行し、インストールする。

    $ cd ./newlib-1.14.0
    $ mkdir BUILD
    $ cd ./BUILD
    $ ../configure --target=h8300-hms --prefix=/usr/local
    $ make
    $ make -n install > newlib_h8300_install.txt
    $ make install
    $ make clean


    Open SH/H8 writer をインストールする

    みついわゆきおさんのHPから h8write.c を DLしてコンパイルし、パスの通った所に置いておきます。

    $ gcc h8write.c -o h8write.exe



    C言語をコンパイルする

    C言語をコンパイルするには、C言語を記述したファイルが必要である事は勿論ですが、 コンパイル(アセンブル・リンク)工程で必要なファイルとC言語使用に合わせる為に 必要なファイルを用意しなければなりません。

    ココではそれらの詳細は記しませんが、以下のファイルが必要です。


    ファイル 概要
    リンカスクリプト リンカの領域指定用ファイル ROM/RAMの位置関係等を記載している
    ココに説明ファイルがあります
    スタートアップルーチン C言語を実行する前の前準備用ファイル(アセンブラ)
    H8/3052用定義ファイル H8/3052用のリソースの定義が書かれたC言語ヘッダーファイル

    ルネサスHPより「サポート」→「ダウンロード」と進み、カテゴリー欄の「選択」をクリックし、「サンプルコード」を選択して検索ボタンを押す。 I/Oレジスタ定義(H8SX, H8S, H8ファミリ用I/Oレジスタ定義ファイル サンプルコード)をダウンロードするとその中に入ってます。
    C言語記述ファイル main関数を始めとするC言語のファイル
    メイクファイル 一連のコンパイル作業を実行するバッチファイル。中間ファイルを別フォルダに格納するようにしてみました…


    全部のファイルを同じフォルダに置いて以下のコマンドを実行すると コンパイル→アセンブル→リンクが一度に行われます。
    というか、そうなる様にメイクファイルを書いているのです。

    $ make



    AKI-H8マザーボードを使用してプログラムを書き込む

    AKI-H8マザーボードを 使用してH8/3052Fへプログラムを書き込む時の設定です。

    1. ブートモード7設定(S7:ON, CN5-MD2:ショート)で電源を入れる。
    2. Open SH/H8 writerを利用して書き込む。

    $ h8write.exe -3052 ./target.mot /dev/ttyS3


     ※ 私の環境では /dev/ttyS3 がUSB-シリアル変換機が割り当てられているポート番号です。


    <-Back
    管理者: 宝 寿々郎(TAKARA Jujurou)