マイコン&FPGA開発の流れと開発ツール ―― 組み込みシステム開発の基礎知識(前編)
tag: 組み込み 半導体 ディジタル・デザイン
技術解説 2010年4月19日
2.マイコン開発の特徴
●組み込みソフトはパソコン上で開発する
マイコンのソフトウェアが動作する組み込みシステムでは,ほとんどの場合,パソコンのようにソフトウェア開発に適したユーザ・インターフェースなどがありません.そこでマイコンで動作させるソフトウェアの開発(以降,「マイコン開発」と呼ぶ)では,ソフトウェアが動作する環境とは異なる環境で開発しなければなりません.このような開発を「クロス開発」と呼びます(図7).
図7 クロス開発環境
開発に使われるプロセッサと,開発されたソフトウェアが実行されるプロセッサが異なる.組み込み機器の開発は,多くの場合がこの方式になる.
クロス開発では,ソフトウェアを開発する環境を「ホスト・コンピュータ」や「開発コンピュータ」,ソフトウェアを実行する環境を「ターゲット・ボード」や「ターゲット・システム」と呼ぶことがあります.ホスト・コンピュータとしてはパソコンを使うことがほとんどです.
また,クロス開発ではターゲット・ボードを極力使用せず,ホスト・コンピュータ上で開発やデバッグができる環境(ツール)が用意されていることが重要です.開発効率や品質に大きく影響するからです.
●マイコン開発で使う開発ツール
マイコン開発の工程と,使用する開発ツールの関係を図8に示します.
図8 マイコン開発の工程と開発ツールの関係
マイコン開発では,対象のマイコンに対応したツールが必要になる.
設計からテスト/デバッグまでの工程は,マイコンに限らず,すべてのソフトウェア開発で共通の工程です.ただし,細かな作業レベルではマイコン開発独自の作業が必要となります.
設計とコーディングの工程では,汎用のツールを使用できます.しかし,コンパイル/アセンブル以降の工程では,開発対象のマイコンに対応するツールが必要になります.
コンパイラは,C言語などの高級言語で記述されたソース・コードをマイコンが実行可能な機械語のコードに変換するツールです.アセンブラは,アセンブリ言語を機械語に変換するツールです.リンカは,コンパイラやアセンブラが変換した機械語のコードに対して,そのコード自体を配置する場所(メモリのアドレス)や分岐命令の分岐先アドレスなどの情報を付加して,マイコンで実行できるコードに変換するためのツールです.コンパイラやアセンブラが出力するファイルをオブジェクト・ファイル,リンカが出力するファイルを実行形式ファイルと呼ぶことがあります.
コンパイラやアセンブラ,リンカ,デバッガなどは,マイコン以外のソフトウェア開発でも使用します.基本的な役割,機能に違いはありません.しかしマイコン開発では,対象のマイコンに対応したものが必要となります.
これらのツールは,マイコンを提供しているメーカや開発ツール・ベンダなどから提供されています.また,ツール一式を統合した統合開発環境が用意されていることがほとんどです.統合開発環境としては,ルネサス エレクトロニクス(旧NEC エレクトロニクス)の「CubeSuite」や「PM+」,東芝の「TIDE」などがあります(図9).
(a)PM+
(b)TIDE
図9 統合開発環境の例
PM+とTIDEの画面を示す.
統合開発環境のユーザ・インターフェースは,人間が直感的に操作しやすいGUIベースが一般的です.また,単に複数のツールをまとめただけでなく,開発で必要となるさまざまなファイルやツールの設定などを一括管理(プロジェクト管理)できます.独立したツールを使用するよりも,効率良く高品質のソフトウェアを開発できます.統合開発環境により開発効率の向上が図れます.使用可能なツールを追加できる機能がある統合開発環境や,複数のマイコンに対応している統合開発環境もあります.
マイコン開発で特徴的なツールは,シミュレータやエミュレータ,ROMライタ(プログラマ),評価ボードです.これらは,クロス開発において,ホスト・コンピュータ上でデバッグ/テストをするために必要です.詳しくは後述します.