SHOEISHA iD

※旧SEメンバーシップ会員の方は、同じ登録情報(メールアドレス&パスワード)でログインいただけます

DeveloperZine(デベロッパージン)- エンジニアの意思決定を支える技術情報メディア ProductZine

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

コドモに伝える組込みソフトウェア開発

ハードウェアの話とコードの生成

LEDを点灯させる


PM plusでコンパイルしよう

 ようやくできあがったソースプログラムを、今度はPM plusを使ってコンパイルします。コンパイルというのは、人間のわかるソースプログラムをマイコンのわかるコードに翻訳する作業です。この翻訳をする機能(ツール)を、コンパイラといいます。PM plusは、このコンパイラの機能を内蔵した開発環境ツールです。[スタート]メニューから、PM plusを起動します。

図23:PM plusの起動
図23:PM plusの起動

ワークスペースを開く

 起動したら、図24のように[ファイル]メニューから[ワークスペースを開く]を選択します。

図24:PM plusの[ファイル]メニュー
図24:PM plusの[ファイル]メニュー

 図25のようなファイル選択のダイアログが開きます。先ほどAppliletでコードを生成したフォルダを選ぶ(たとえばここではD:\mspoon\test1)と、mdt.prwというファイルが見つかります。Appliletの説明で図4の新規作成画面でプロジェクト名を変更た場合は、ファイル名が変わります。「指定プロジェクト名.prw」というファイルが見つかるはずです。[開く」をクリックしてください。PM plusは図26のような表示になります。

図25:ワークスペース・ファイルの選択
図25:ワークスペース・ファイルの選択
図26:ワークスペースを開いた直後のPM plus
図26:ワークスペースを開いた直後のPM plus

 左側のプロジェクトウィンドウには、今回のプログラムに関係するファイルがまとめられています。ためしに[+]ソース・ファイルという部分の[+]をクリックしてみてください。図27のようにプログラムファイルの一覧が表示されます。

図27:ソースファイルの一覧が表示される
図27:ソースファイルの一覧が表示される
もし興味があれば:ソースファイルの参照

 「ソース・ファイル」の下に表示されているファイル名をダブルクリックすると、そのソースファイルの内容を参照できます。また、各ソースファイルに付いている[+]印をクリックすると、そのソースに含まれている関数名が表示されます。

実行ファイルをつくる

 ではこれらのソースファイルから、実際にマイコンが実行することのできる実行ファイルを作ってみましょう。これをビルドといいます。図28のように、[ビルド(B)]メニューから、[ビルド(B)]を選びます。

図28:ビルドをする。
図28:ビルドをする。
ビルド

 ビルドとは、各ファイルをコンパイルしてそれらをつなぎ合わせ(リンク)、実行可能なファイルを作るまでの一連の作業のこと

 正常にビルドができると、図29のようにメッセージが表示されます。[OK]をクリックしてください。

図29:正常にビルドが終了した
図29:正常にビルドが終了した

エラーがでてしまったら

 上記のように正常にビルドができず、不幸にしてソースファイルに間違いがあった場合は、図30のようにエラーが表示されます。

図30:ビルドエラー
図30:ビルドエラー

 こんなときは、ますは[OK]をクリックしてエラーメッセージを消して、PM plusの「OutPut」というウィンドウを見ます。図31はその例です。

図31:エラー発生時にはOutPutウィンドウを見る
図31:エラー発生時にはOutPutウィンドウを見る

 ここには以下のように、なにやら難しいメッセージが表示されています。

main.c(58) : F301 Syntax error
main.c(58) : F501 Expression syntax
main.c(61) : F301 Syntax error
main.c(61) : F701 External definition syntax

 最初のmain.cがエラーが見つかったファイル名、そのあとのカッコの中が、エラーがありそうな行番号です。どうやらmain.cにエラーがありそうなので、早速main.cをエディタで開いて見直してみましょう。

 図32が、エラーのあるmain.cを開いた様子です。わかりやすくするために行番号を表示させています。

図32:エラーのあるmain.c
図32:エラーのあるmain.c

 さて、PM plusでは58行目にエラーがあると言われました。でもここはAppliletが生成したプログラムから手を加えていないはずです。さらに61行目もエラーと言われますが、見るとそこには閉じカッコしかありません。C言語に慣れないうちは、こういう状況で混乱してしまいがちです。指摘された行番号に心当たりが見つからないときは、落ち着いてその少し前の行をチェックしてみましょう。

 56行目をよ~く見てください。行末のセミコロン「;」がありませんね。ここがエラーの原因だったのです。ではなぜPM plusは56行目にエラーと言わなかったのでしょう。C言語をマイコンの言葉に翻訳するCコンパイラは、セミコロンでその行の終わりと判断します。上の例の56行目のようにセミコロンがないと、セミコロンが見つかるまでひとつの実行文として処理を続けるのです。すると58行目で、代入文(○○=△△;という文)にはないはずの文字列(ここではwhile(...)が登場するので、ようやくここで「おかしい!」ことに気づきます。それで58行目にSyntax Error(文法的エラー)があるというメッセージを出すというわけです。

 続いて、これによって58行目のwhileの文が無効になってしまいますので{ }の対応が崩れてしまって、Cコンパイラは最後の61行目で再び「おかしい」と気づいて、またエラーを出していたのです。

 この先の例題を試すときでも、同様のエラーはよくあると思います。エラーメッセージの行番号は、「そこにミスがある」ではなく、「そのあたりにミスがある」くらいに思って、おちついて見直すようにしてください。でもほとんどの場合は表示された行番号の文にミスがあり、そうでない場合は少なくとも表示された行番号より以前の場所に原因があるはずです。

 ミスの箇所を見つけたら、修正して保存し(以外と保存を忘れがちです。これを忘れるとせっかく修正したのに同じエラーが出て混乱してしまいます)、ふたたびビルドして、正常に終了するのを確認してください。

 少し長くなってしまいましたので、今回はここまでにします。[ファイル]メニューから[PM plusの終了]を選んで、PM plusを終了させてください。

次回は

 次回は、シミュレータSM plusを使って、今回作ったプログラムを動作させてみます。さらにマジカルボックスにプログラムを転送して、実物での動作も確かめます。それではまた。

関連情報

 マジカルスプーン シミュレータキットは、SEshop.com(翔泳社の販売サイト)で購入できます。

この記事は参考になりましたか?

連載通知を行うには会員登録(無料)が必要です。
既に会員の方はを行ってください。
コドモに伝える組込みソフトウェア開発連載記事一覧

もっと読む

この記事の著者

舘 伸幸(タチ ノブユキ)

NECマイクロシステム株式会社 勤務NPO法人SESSAME 所属開発ツールのソフトウェア開発を経て組込みソフトウェア開発に従事。プライベートにも半田ごては手放さない。2006年からSESSAME に参加。若い世代に物を作る楽しさを伝えていきたい。

※プロフィールは、執筆時点、または直近の記事の寄稿時点での内容です

この記事は参考になりましたか?

この記事をシェア

CodeZine(コードジン)
https://codezine.jp/article/detail/3799 2009/04/03 11:17

イベント

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

新規会員登録無料のご案内

  • ・全ての過去記事が閲覧できます
  • ・会員限定メルマガを受信できます

メールバックナンバー