4 開発環境の構成内容

続き(5 コンパイルと書き込み)を見る

ツールチェイン
パソコンを使ってマイコン開発をするときに、2つ問題が生じます。マイコンのプログラムをどうやってPCで作るのかということと、作ったプログラムをどうやってマイコンに書き込むのかということです。
パソコンで、プログラミングを作る作業というのは、いわゆるソースコードを書いていく作業です。そしてこのソースコードは人間には読めても、CPUには読めないわけですね。そこでコンパイルという作業を行って、CPU用の言語に変換をします。翻訳みたいなもので、人間語から、CPU語に変換するわけですね。じゃあ、Visual Basicとかを使ってプログラミングをすればいいのかというとそうはいきません。というのも、CPU語はCPUの種類によってばらばらだからなんです。パソコンには、普通はインテルのCPUか、インテルの互換CPUが使われていると思います。インテルCPUはx86っていうアーキテクチャなんですが、x86専用の言語のプログラムのみを理解することができます。一方、今回皆さんの手元にあるマイコンはARM社のCortex-M3というコアを内蔵しているんですが、Cortex-M3はThumb2という言語だけを理解することができます。
つまりパソコンで普通プログラミングに使用するツールを使っても、x86用のプログラムができるだけなので、マイコンには理解ができないプログラムになってしまうわけです。
そこでどうするかというと、マイコン専用のコンパイラを使います。x86にはx86用の翻訳機を使う、マイコンにはマイコン用の翻訳機を使うということです。今回はThumb2用の翻訳機を使います。今回使用するのは、オープンソース形式で開発されていて、無料で使うことのできるgccというコンパイラです。gccはx86用のコンパイラも内蔵していてPC用のプログラムを作ることもできるんですが、マイコン用、今回のCortex-M3用のコンパイラも内蔵しているので、Cortex-M3用のプログラムを作ることができます。
ちなみにgccはそれ自体はソースコードで配布されているだけなので、そのままでは使いにくいので、コピーしてもらったフォルダには、コンパイル済みですぐに実行できるものを収録しています。開発用のツールをひとまとめにしているものをツールチェインと呼んでいますが、今回はYAGARTOというツールチェインを利用します。
YAGERTOに入っているgccを使えば、マイコン用のプログラムをパソコンで作ることができるようになるわけです。
ツールチェインのインストールパス
画面の
C:\miqnnet\toolchain\yagarto\bin
このフォルダを見てもらうと、いろいろなコマンドラインツールが入っているのが確認できます。
arm-none-eabi-gcc.exe
たとえばこのファイルがいわゆるgccでコンパイラです。gccのファイル名にarm-none-eabiとついているのは、パソコン上で実行するプログラムを作るための普通のgccと混同しないようにするためです。
書き込みツール
さてこのGCCを使えばコンパイルができて、マイコン用のバイナリコードが作れるということになります。
ただこれだけだと、このマイコン用のプログラムは、パソコンのハードディスクに記録されているだけで、マイコンに記録されたわけではないですね。そこでこのプログラムをマイコンに転送して、記録させる必要があります。転送・記録にはいろんな方法があるんですが、今回は、STM32 Value line discoveryに内蔵されている書き込み機能と、ST社が提供している書き込みプログラムを使用します。もう一度Value line discoveryを見てください。USBコネクタの近くにさっきのよりも少し大きめの黒いチップがのっています。実はこれもSTM32なんです。この中には、ST-LINKというプログラムが書き込まれています。ST-LINKは、パソコンからマイコン用のプログラムをUSB経由で受け取ります。そしてこれをSTM32に書き込みます。マイコンにプログラムを書き込むときには、書き込み専用の機械を用意しないといけないというパターンが多いんですが、Value line discoveryにはST-LINK、つまり書き込み用の部品がもともと搭載されているので、別に買わなくても、別に接続しなくても、マイコンに書き込みをすることができます。
書き込みツールのインストールパス
C:\miqnnet\stvp
このフォルダの中にある
APISample.exe
がパソコン側で使う書き込み用プログラムです。
統合開発環境
さて、プログラムをコンパイルするツールとコンパイルしたプログラムをマイコンに書き込むためのツールを紹介させて頂きました。ですので、この環境だけでプログラミングを始めることはできます。ソースコードを、いわゆるメモ帳だとか自分が気に入っているテキストエディタで編集・保存して、コマンドプロンプトから、コンパイラと書き込みプログラムを実行するというスタイルです。このスタイルで開発を行っている方はたくさんいらっしゃいますし、特に組み込み業界では、そうやって開発をしている方は多いと聞いています。
ただ私としては、これから組み込み開発を始めるのであれば、統合開発環境を使用することをお勧めしたいと思います。Visual Studioやeclipseを使ったことがある方ならすぐイメージがつかめると思いますが、要は、ソースコードを入力しやすいエディタに、コンパイル、実行ファイル作成の機能がセットになったものだと考えて下さい。プログラムのソースコードは人間の能力だけで正確に打ち込むのは相当な職人芸が必要で、シンタックスエラーで悩んだりすることも多いと思います。統合開発環境のエディタは、入力しながらコーディングミスを指摘してくれたりしますし、長い関数名の入力をサポートしてくれたりします。コンパイルや書き込みの度にコマンドプロンプトからコマンドを打ち込むのは結構面倒ですが、統合開発環境を使うと、ダブルクリックだけで、コンパイル、書き込みができ、能率が上がりますし、開発テンポが良くなります。
Eclipse
そこで今回は、皆さんにも統合開発環境を使ってプログラミングに挑戦してもらおうと思います。使ってもらうのはeclipseというオープンソースの統合開発環境です。オープンソースなので無償で利用できます。eclipseはJava言語での開発に使用されることが多いんですが、今回は、C言語での開発に使用します。実際、Cortex-M3をサポートする商用の統合開発環境でも、Eclipseをベースにしたものが結構出ています。CodeSourceryやAtollic、CodeREDという統合開発環境もeclipseをカスタマイズしたものです。そういう意味では実績もありますから、安心して使ってもらえればと思います。
で、eclipseをインストールするということになるんですが、実は先ほどmiqnnetのフォルダをコピーしてもらった段階で、eclipseのインストールも完了しています。
Eclipseのインストールパス
C:\miqnnet\eclipse
このフォルダにeclipseと関連ファイルがコピーされているはずです。
eclipseを組み込みC言語開発のための使用しようとするとかなりいろいろな部分の設定を行わないといけないんですが、コピーしてもらったものは、私が予め各種の設定を行っています。
Java
ただeclipseはJavaで動いていますので、Java環境がインストールされていない方については、Java環境をインストールしてもらう必要があります。
このアドレス(http://www.java.com/ja/download/)から最新版のJavaをダウンロードしてインストールしてください。JREというランタイムエディション版で構いません。インストールの際には、インストールパスが変更できますが、変更しないようにしておいてください。
Eclipseの実行
ここで設定を行ってコンパイラがちゃんと動作するか確認しておきましょう。
c://miqnnet/eclipse/eclipse.exe
このパスのeclipse.exeをダブルクリックして実行して下さい。マイコンピュータからでもエクスプローラからでも構いません。Eclipseが起動して、初期画面になります。