H8マイコンのソフトウェア開発環境を整備しよう:イチから作って丸ごと学ぶ! H8マイコン道(7)(2/3 ページ)
今回から「C言語による制御プログラミング」をテーマにした新章に突入! まずはH8マイコンのプログラミング環境の構築から。
――健一君、晴子さんにタジタジですね……。けれども晴子さんのいうとおり、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)。
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」ディレクトリに置かれます。
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の使い方をマスターしよう
ふ〜(汗)。
開発環境のインストールって大変だなー。
もう音を上げてるの? 健一君ったら!!
まぁ、今回はクロス・コンパイラを自分でビルドしたから、特に手間も時間もかかったわね。
岡野さん、もっと楽な方法はないんですか?
H8はよく使われているから、インターネットで検索すればきっとコンパイル済みのパッケージが見つかると思うわ。
でも、自分で開発環境をビルドできちゃうなんて考えたこともなかったでしょ!!
これもすべてワタシのおかげね!
は、はい。
おかげでいい経験になりました(疲れた……)。
Copyright © ITmedia, Inc. All Rights Reserved.