メディア

第4回 マイコンのプログラムはどうやって作るの? 誰が作るの? 買ってくるの?宮崎 仁のQ&Aでよく分かるマイコン基礎の基礎

» 2014年12月25日 00時00分 公開
[PR/EDN Japan]
PR

マイコンのプログラムはどうやって作る?

Q:マイコンのプログラムはどうやって作ったらいいのか教えてください。

A:まず、開発の対象となるマイコンの機種を決めて、マイコンボードを準備しましょう。プログラムを作っても、マイコンがなければ動かすことができません。たとえば、テキサス・インスツルメンツ(TI)のMSP430 LaunchPadバリュー・ライン開発キットは、安価(TIの直販なら9.99ドル)で使いやすいマイコンボードとして知られています。

photo 図1 MSP430 LaunchPadバリュー・ライン開発キット

 プログラムを作るためには、ターゲットのマイコンに対応した開発用ソフトウェアをパソコン上で動作させます。必要なツールをひとまとめにした統合開発環境(Integrated Development Environment)が用意されています。

 MSP430用の統合開発環境なら、TIが提供するCCS(Code Composer Studio)や、IARシステムズが提供するEmbedded Workbenchが有名です。どちらも、ダウンロードして手軽に使える無償版があります。

 最近のマイコンのほとんどは、C言語でプログラムを書いて動かすことができます。これらの統合開発環境には、C言語でプログラムを書くためのエディタ(Editor)、C言語で書いたプログラム(ソースプログラムと呼ぶ)を機械語モジュールに翻訳するためのコンパイラ(Compiler)、複数の機械語モジュールを結合して1つのプログラムにまとめるためのリンカ(Linker)、できあがったプログラムをテスト実行してバグを発見、修正するためのデバッガ(Debugger)などが含まれています。

photo 図2 プログラム開発の流れ

 ソースプログラムを書き終えたら、「ビルド(build)」のボタンをクリックすれば、コンパイル(翻訳)からリンク(結合)まで自動的にやってくれます。ビルドではなく、「メイク(make)」と呼ぶこともあります。C言語でプログラムを書いたら、後は自動的にマイコンが実行できるプログラムにしてくれる、と考えてもいいでしょう。

 ただし、文法的に誤ったところがあればエラーが出て止まりますから、エディタに戻って修正することが必要です。プログラムを作るのはあくまでも自分自身です。

photo 図3 MSP430対応の統合開発環境 CCSの画面例

Q:C言語だったら、ちょっとやったことがあります。printf()という関数を使って、パソコンの画面に"Hello World!"っていうメッセージを出しました。

A:それは、C言語で最も有名なプログラムですね。C言語では、printf()のような基本的な入出力関数や、数値演算、文字列処理などいろいろな関数が標準ライブラリとして用意されています。それらの関数の中身は自分で作る必要がないので、たとえば、

photo


と書くだけで、簡単に画面にメッセージを表示できます。

 ただし、パソコンでできることが、すべてマイコンで同じようにできるわけではありません。たとえば、"Hello World!"のプログラムをマイコンボードで動かそうとしても、たいていのマイコンボードはメッセージを表示できる画面がありません。マイコン用の統合開発環境でも標準ライブラリ関数を備えたものは多いのですが、printf()のような入出力関数は、特定の装置を接続したときだけ使えるようになっています。

 逆に、マイコンではできるけれどパソコンではできないこともあります。たとえば、LEDの点灯と消灯を繰り返してチカチカ点滅させる" Lチカ"というプログラムは、マイコンの世界では"Hello World!"と同じぐらい有名なのですが、パソコンでは動きません.パソコンには、ユーザが自由に点滅させられるようなLEDは付いていませんし、内部の基板を改造して簡単にLEDを付けることもできません。

Q:では、パソコンでC言語を勉強してもあまり役に立たないのですか?

A:そんなことはありません。C言語の文法自体はパソコンでもマイコンでも共通です。図2に示したエディタ⇒コンパイラ⇒リンカという開発の流れもほぼ共通ですし、統合開発環境の操作方法も大きな違いはありません。

 パソコンのプログラムを作りたい人にも、マイコンのプログラムを作りたい人にも、基本的なC言語の練習は有効です。ただし、ハードウェアやシステムがもっている機能の違いには常に注意してください。

マイコンのプログラムは誰が作る?

Q:マイコンのプログラムは全部自分で作るのですか?

A:全部自分で作ることもできますが、それでは大変なので、既存のプログラムをなるべく利用します。

 C言語では、関数と呼ばれる独立したプログラムのかたまり(サブルーチン)を自由に作ることができます。そして、自分自身で作った関数や、他の人が作った関数(この場合は著作権者の許諾が必要)を、他のプログラムで簡単に再利用できます。CCSやEmbedded Workbenchのような統合開発環境には、C言語の標準ライブラリ関数が付属していて、自由に利用できるものが多くなっています。その他に、マイコンのもつ特別な機能を活用するためのライブラリを提供している場合もあります。関数の再利用には、コンパイル済みの関数を機械語モジュールとしてリンカで結合できます。

 また、別の方法として、既存のソースプログラムをひな形として活用したり、使用可能な部分を探して利用することもあります。たとえば、TIではMSP430のさまざまなサンプル・コードを無償で提供しており、便利に活用することができます。

Q:マイコンで利用するプログラムは無償なのですか?有償で購入するのですか?

A:どちらもあります。ただし、購入するといっても、パソコンのようにOSやアプリケーションなどの完成品のプログラムをそのまま利用するわけではありません。マイコンの場合は、ターゲットとなるマイコンの品種がたくさんあるだけでなく、カウンタ/タイマなどの内蔵機能のどれを使うか、I/Oにどんな外付け回路を接続して使うかなど、回路も使い方も千差万別です。製品として販売されているプログラムを、自分が作るプログラムの中に組込んで利用するという使い方になります。その点では、無償のライブラリやサンプル・コードと同じようなものです。


※MSP430はTexas Instruments Incorporatedの商標です。その他すべての商標および登録商標はそれぞれの所有者に帰属します。


Copyright © ITmedia, Inc. All Rights Reserved.


提供:日本テキサス・インスツルメンツ株式会社
アイティメディア営業企画/制作:EDN Japan 編集部/掲載内容有効期限:2015年3月31日

設計に役立つヒント集

宮崎 仁のQ&Aでよく分かるマイコン基礎の基礎:
第24回 割り込みっていろいろあるのですか?どんな種類があるか教えてください。

今回は、外部割り込み、内部割り込み、ソフトウェア割り込みについて詳しく解説しています
全文を読む


電源IC選択のヒント集
電源IC 使用時の注意点をわかりやすく説明しているほか、使用時に発生する可能性のあるさまざまなトラブルとその対処法についても紹介しています。ぜひご利用ください。ダウンロードには myTI アカウントが必要です。
Part 1をダウンロード
Part 2をダウンロード


アナログ回路設計式一覧ポケット・ガイド
日本語版 PDF

英語版で高い評価を受けてきたポケット・ガイドの日本語版が完成しました。基板レベルやシステム・レベルの回路設計でよく使われるアナログ設計式を紹介しています。ダウンロードには myTI アカウントが必要です。
ダウンロード



facebook & twitter

製品情報、セミナーや展示会などのイベント情報をお知らせしています。

RSSフィード

公式SNS

EDN 海外ネットワーク

All material on this site Copyright © ITmedia, Inc. All Rights Reserved.
This site contains articles under license from AspenCore LLC.