メディア

第5回 マイコンを開発するには何が必要? 統合開発環境(IDE)って何?宮崎 仁のQ&Aでよく分かるマイコン基礎の基礎

» 2015年01月29日 00時00分 公開
[PR/EDN Japan]
PR

マイコンを開発するには何が必要?

Q:マイコンのプログラムを開発するには、マイコンボード、統合開発環境、パソコンの3つを用意すればいいのですか。他に必要なものはありますか。

A:基本的にはこの3つですが、どんなマイコンボードを使うかによって、もう少し別のものが必要になる場合があります。

 前回、安価で使いやすいマイコンボードの例として、テキサス・インスツルメンツ(TI)のMSP430 LaunchPadバリュー・ライン開発キットを紹介しました。実は、このマイコンボードには、マイコン開発に必要な3つのハードウェアである「ターゲット回路」、「プログラマ」、「エミュレータ」が集約されています。このボードを使えば、他にはソフトウェアである統合開発環境と、パソコンがあれば開発を進めることができます。

 一方、マイコンボードにはターゲット回路の機能しかもたないものもあります。その場合は、プログラマやエミュレータを別に用意する必要があります。

photo 図1 マイコン開発に必要なハードウェア
プログラムを実行するターゲット回路、ターゲット回路にプログラムを書き込むプログラマ、デバッグ作業を支援するエミュレータの3つのハードウェアが必要。

マイコン開発に必要なターゲット回路、プログラマ、エミュレータ

Q:ターゲット回路、プログラマ、エミュレータとは、それぞれ何をするものですか。もう少し詳しく教えてください。

A:1つずつ説明していきましょう。

 まず、ターゲット回路は、開発したプログラムを実際に動作させるハードウェアです。マイコン開発では、パソコンのような汎用のハードウェアで動くプログラムを作るわけではありません。マイコンと周辺機能を組み合わせて作った特定のハードウェアでプログラムを動かします。

 ターゲット回路としては、目的に合わせて設計・製造したオリジナルのボードを用いる場合や、マイコンメーカーなどが供給する既存の評価用ボードを用いる場合があります。最終的にオリジナルのボードを使うとしても、マイコンの試用・選定、ボードの設計・検証などの過程で実際にプログラムを作ってテストすることが必要です。そのときに評価用ボードをターゲットとして活用します。

photo 図2 MSP430 LaunchPadバリュー・ライン開発キット
開発対象のマイコンと簡単な周辺機能(スイッチ、LED)を組み合わせて構成したターゲット回路。同じボードにプログラマとエミュレータも搭載されている。このプログラマとエミュレータを利用して、別のターゲット回路の開発もできる。

Q:プログラマは何をするものですか。

A:パソコン上で開発したプログラムをターゲット回路で実行するためには、プログラムをターゲット回路に転送して、マイコン内蔵のフラッシュ・メモリに書き込むことが必要です。これを行うのがプログラマの働きです。フラッシュ・プログラマ、フラッシュ・ライタとも呼ばれます(注1)。

(注1)昔はフラッシュ・メモリのようにオンボードで自由に書き換えられるメモリがなかったので、外付けのEP-ROMをボードから外して書き込みを行っていました。この頃は、ROMプログラマ、ROMライタと呼ばれる装置が使われていました。また、EP-ROMはチップ上のガラス窓から紫外線を照射してデータを消去するしくみだったので、紫外線ランプを備えたROMイレーサと呼ばれる装置も必要でした。

 プログラム開発の過程では、作ったプログラムが正しく動くかのテストと修正を行うデバッグ作業が必要です。デバッグ作業では、プログラマを介してターゲット回路をパソコンに接続し、プログラムの書き込み⇒テスト実行⇒不具合の修正を繰り返します。最近のマイコンでは、プログラマとエミュレータを兼ね備える装置も使われています。

 さらに、最終的な組込み製品を製造する場合には、完成したボードの1つ1つにプログラムを書き込むことが必要です。この場合、書き込みの効率を上げるために、複数のマイコンに一度に書き込めるギャング・プログラマという装置も使われています(注2)。

(注2)ギャング(gang)という英語は、元々は群れとか集団という意味ですが、人間に対して使う場合はどちらかというと悪人の集団を指すことが多く、日本語でもギャング=盗賊団という意味が定着しています。ただし、物に対して使う場合は特に悪い意味はなく、同時に連携して動く複数の物をまとめてギャングと呼びます。そこから、ギャング・プログラマという名称が付けられました。

photo 図3 プログラマの例 (a)TIが販売しているMSP430フラッシュ・エミュレーション・ツール「MSP-FET」
プログラマの機能とエミュレータの機能を兼ね備える。これ1台ですべてのMSP430マイコンの開発に対応できる。
photo (b)TIが販売しているMSP430量産プログラマ「MSP-GANG」
8台のターゲットに同時にプログラムを書き込める。

Q:では、エミュレータは何をするものですか。

A:エミュレータは、デバッグ作業を支援するための特別なハードウェアです。プログラムのデバッグでは、プログラムをただ動かしてみるだけではなく、正しく動いていない箇所を検出して実行の状態を詳しく調べます。そのために、命令を1個ずつ確認しながら実行していくステップ実行機能、あらかじめ指定した場所で実行を一時停止するブレークポイント機能、停止したときのメモリの状態やレジスタの状態を調べるウォッチ機能、命令を連続して実行しながらそれらの状態を記録していくトレース機能などさまざまな機能が用意されています。

 単にターゲット回路にプログラムを書き込んでスタートすると、プログラムは一気に実行されてしまうので、デバッグができません。エミュレータを介してターゲット回路とパソコンを接続し、パソコンからコントロールしながら少しずつプログラムを実行したり、実行状態をパソコンに表示したりします。

 エミュレータにはいろいろな方式のものがあります。最近では、マイコン自体にデバッグを支援するオンチップデバッグ機能を搭載し、デバッグポート(JTAGポートなど)に接続したエミュレータと連携してデバッグ作業を行う方式が広く用いられています。特に、JTAGポートを利用してデバッグを行うエミュレータをJTAGエミュレータと呼んでいます(注3)。

(注3)JTAGは、元々はボードの実装検査やLSIの製造検査のために規格化された特別な端子で、最近はフラッシュ・メモリの書き込みやデバッグなどの用途に広く使われています。JTAG規格はTDI、TDO、TCKの3本の信号線を使った3線インターフェイスですが、2線式にしたもの(Spy-By-Wire)や、逆に信号線を増やしたものなども使われています。

 JTAGポートはフラッシュ・メモリへの書き込みにも用いられるので、JTAGエミュレータは一般にプログラマの機能も兼ね備えています。

 エミュレータとパソコンの接続は、昔はシリアルポートが用いられていましたが、最近ではUSBが主流になっています。

photo 図4 JTAGプログラマの例
JTAGポートを用いてターゲットマイコンと通信することによって、ステップ実行やブレークポイントなどの制御を行い、また実行状態をモニタする。

統合開発環境の役割

Q:統合開発環境についても教えてください。

A:前回にも少しお話しましたが、コンピュータ上でプログラムを開発するのに必要なソフトウェア・ツールを1つにまとめたものを、統合開発環境(Integrated Development Environment)と呼んでいます。長いので、略してIDEと呼ぶことも多いですね。

 プログラムを作るには、

  1. エディタを使って、Cなどの高級言語やアセンブリ言語でソースプログラムを記述
  2. コンパイラまたはアセンブラを使って、機械語に翻訳して機械語モジュールを生成
  3. リンカを使って、機械語モジュールを結合して1つの実行プログラムを生成
  4. デバッガを使って、実行プログラムをテスト実行して問題点を検出

というように何段階かの手順があり、それぞれにツールが使われています。

 昔のパソコンは性能が低く、OSもシングルタスク(一度に1つのプログラムしか実行できない)だったため、開発の各段階でこれらのツールを個別に起動して作業を行っていました。その後、パソコンの性能向上やOSのマルチタスク化によって、複数のプログラムを同時に起動してシームレス(継ぎ目なし)に作業できるようになったことから、複数のツールを統合した統合開発環境が使われるようになりました。

Q:統合開発環境というのは、ソフトウェアだけのツールなのですね。

A:プログラム開発ツールというのは、マイコンに限らず、メインフレーム、ワークステーション、パソコンなどあらゆるコンピュータで必要なものです。メインフレーム、ワークステーション、パソコンなどのプログラム開発では、開発用マシンと実行用マシンは基本的に同じもの(同じアーキテクチャのコンピュータ)なので、生成された実行プログラムはその場ですぐに実行できます。デバッグにもプログラマやエミュレータなどの特別なハードウェアは必要なく、開発ツールはソフトウェアだけでできます。

photo 図5 パソコンのプログラムを開発する統合開発環境
パソコン上でプログラムを開発し、そのプログラムは同じパソコン上で実行できる。開発用マシンと実行用マシンが同じなので、特別なハードウェア・ツールは必要ない。

Q:マイコンのプログラム開発の場合は、どこが違うのですか。

A:マイコンのプログラム開発では、開発用マシン(パソコン)と実行用マシン(ターゲット・マイコン)は違うアーキテクチャのコンピュータです。そのため、コンパイラやアセンブラが翻訳して生成する機械語も、パソコンの機械語とは違うものになります。しかし、ソースプログラムの記述から実行プログラムの生成までは、すべてパソコン上で行うことができますから、全体的には大きな違いはありません。

 大きく違うのはデバッグ作業の部分です。マイコンのプログラム開発では、生成された実行プログラムはパソコンでは実行できないので、ハードウェア・ツールとしてターゲット回路、プログラマ、エミュレータを用意する必要があります。また、パソコン上で動作するプログラム転送ツールやデバッガを用いて、これらのハードウェア・ツールを制御できるように作られています。

photo 図6 マイコンのプログラムを開発する統合開発環境
パソコン上でプログラムを開発し、そのプログラムはターゲット回路上で実行する。開発用マシンと実行用マシンが異なり、ハードウェア・ツールを必要とする。ただし、統合開発環境(ソフトウェアツール)の部分は大きな違いはない。

※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.