連載
» 2009年10月23日 00時00分 公開

H8マイコンのソフトウェア開発環境を整備しようイチから作って丸ごと学ぶ! H8マイコン道(7)(2/3 ページ)

[横田一弘 埼玉県立新座総合技術高等学校 教諭,MONOist]

――健一君、晴子さんにタジタジですね……。けれども晴子さんのいうとおり、H8マイコンの開発環境の構築はこれからが本番です。ここではコンパイラのソースコードをダウンロードして、自分でコンパイル・インストールします。それでは、早速はじめましょう!

 先ほどインストールしたGCCは、Cygwin上のアプリケーションを作るためのもの、つまりWindows PCのCPUコードを生成するものです。ですから、H8マイコンのソフトウェアを開発するためには、H8マイコンのCPUコードを生成する別のCコンパイラを用意しなければなりません。

 マイコンのソフトウェア開発環境を、「クロス開発環境」とか、「クロス・コンパイラ」などと呼んでいるのは、“プログラムの開発はPCで行うが、プログラムの実行はマイコンで行う”のように、開発用コンピュータと実行コンピュータが異なっているからなのです。

 それではH8マイコン用・クロスGCCのインストールをはじめましょう。

ソースファイルのダウンロード

 最初にGCCをダウンロードします。GCCはRingサーバなどにあります。WebブラウザでRingサーバのトップページから「RingServer - ソフトウェアカタログ」をたどり、GNUのリンクから「binutils-2.17.tar.bz2」と「gcc-core-3.4.6.tar.bz2」をダウンロードしてください。

 binutilsはH8マイコン用のアセンブラ、リンカを構築するためのものです。このパッケージがないとGCCは動きません。gcc-coreはH8マイコン用のC言語を構築に使います。

 マイコンのC言語環境を構築するには、さらに標準ライブラリをダウンロードしなければなりません。Webブラウザから「NewLib」にアクセスしてください。「Download」メニューをクリックすると、NewLibのFTPサイトのリンクが見つかります。そこから「newlib-1.17.0.tar.gz」をダウンロードしてください。

 以上3つのパッケージをダウンロードしたら、任意の解凍ソフトで各パッケージを解凍します。そして、“c:\cygwin\usr\local”に「src」ディレクトリを作り、その中に解凍したパッケージを置いてください(図5)。

パッケージの解凍 図5 パッケージの解凍

binutilsのコンパイルとインストール

 クロス環境の構築は、binutilsからはじめます。Cygwinで次のコマンドを入力してください。

$ cd /usr/local/src/binutils-2.17/
$ mkdir build-h8300-elf
$ cd build-h8300-elf/ 

 ここでは、binutilsディレクトリに移動し、その中に作業用の「build-h8300-elf」ディレクトリを作っています。

 続いて次のコマンドを入力してください。

$ ../configure --target=h8300-elf --prefix=/usr/local 

 クロス開発環境の構築では、コンフィグレーションといって、最初に環境を決める設定行います。コンフィグレータはソフトの動作環境やオプション設定に合わせて、Makefikeを生成します。

 結果を「ls」コマンドで確認すると、次のようなファイルが作られているのが分かります。

$ ls
Makefileconfig.cacheconfig.logconfig.statusserdep.tmp 

 次に「make」コマンドでbinutilsパッケージをコンパイルします。コンパイルにはしばらく時間がかかります。

$ make 

 コンパイルが終了したら、次の「make」コマンドでパッケージをインストールします。インストールにもしばらく時間がかかります。

$ make install 

 インストールが終了したら、binutilsを確認しましょう。ここでアセンブラのバージョンを表示します。次のコマンドを入力してください。

$ h8300-elf-as --version
GNU assembler 2.17
Copyright 2005 Free Software Foundation, Inc.
This program is free software; you may redistribute it under the terms of
the GNU General Public License.This program has absolutely no warranty.
This assembler was configured for a target of `h8300-elf'.
$ 

 H8マイコン用binutilsは、コンフィグレーションの「prefix」オプションで指定した「/usr/local」にインストールされます。binutilsの各種コマンドは、図6のように「bin」ディレクトリに置かれます。

binutilsコマンド本体 図6 binutilsコマンド本体

gcc-coreのコンパイルとインストール

 binutilsに続き、gcc-coreをコンパイル・インストールします。手順はbinutilsと変わりません。

 以下のようにディレクトリを移動し、作業ディレクトリを作ります。

$ cd /usr/local/src/gcc-3.4.6/
$ mkdir build-h8300-elf
$ cd build-h8300-elf/ 

 さらに、コンフィグレーションします。

$ ../configure --target=h8300-elf --prefix=/usr/local/ --with-newlib \
> --with-headers=/usr/local/src/newlib-1.17.0/newlib/libc/include/ \
> --enable-languages=c 

 そして、「make」コマンドでコンパイルします。

$ make 

 コンパイルが完了したらインストールします。

$ make install 

 それでは確認してみましょう。以下のコマンドを入力してください。

$ h8300-elf-gcc --version
h8300-elf-gcc (GCC) 3.4.6
Copyright (C) 2006 Free Software Foundation, Inc.
This is free software; see the source for copying conditions.There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
$ 

 上記のようなメッセージが表示されれば問題ありません。

newlibのコンパイルとインストール

 最後にnewlibをコンパイル・インストールします。

 以下のコマンドでディレクトリを移動し、作業ディレクトリを作ります。

$ cd /usr/local/src/newlib-1.17.0/
$ mkdir build-h8300-elf
$ cd build-h8300-elf/ 

 さらに、以下のようにコンフィグレーションします。

$ ../configure --target=h8300-elf --prefix=/usr/local/ 

 続いて、「make」コマンドでコンパイルします。

$ make 

 コンパイルが完了したら最後に、インストールを行います。

$ make install 

 以上で標準Cライブラリがインストールされました。

クロスGCCの使い方をマスターしよう

photo

ふ〜(汗)。


開発環境のインストールって大変だなー。


photo

もう音を上げてるの? 健一君ったら!!


まぁ、今回はクロス・コンパイラを自分でビルドしたから、特に手間も時間もかかったわね。


photo

岡野さん、もっと楽な方法はないんですか?


photo

H8はよく使われているから、インターネットで検索すればきっとコンパイル済みのパッケージが見つかると思うわ。


でも、自分で開発環境をビルドできちゃうなんて考えたこともなかったでしょ!!


これもすべてワタシのおかげね!


photo

は、はい。


おかげでいい経験になりました(疲れた……)。



Copyright © ITmedia, Inc. All Rights Reserved.