クロス開発とは何か?セルフ開発との違いを解説

クロス開発とセルフ開発

クロス開発とは、プログラムの実行環境とは異なる環境で開発を行うことです。実行環境と同じ環境で開発を行うのはセルフ開発といいます。

たとえば、Windowsパソコンを使ってWindows用のでデスクトップアプリケーションを開発する形態がセルフ開発です。対して、クロス開発ではパソコン上でプログラムファイルを作成し、それを家電製品などCPUやOSの異なるアーキテクチャ上で動かす形態を指します。

組み込みシステムとは

クロス開発は、主に組み込みシステムの開発で利用されます。
組み込みシステムとは、家電製品や機械装置などに入っているマイコンをイメージしてもらえばいいでしょう。

パソコンはさまざまなアプリケーションをインストールすることによって、汎用的な目的に使用することができます。しかし、組み込みシステムは特定の処理を行う目的のために使用されます。

たとえば、エアコンは冷房や暖房といったボタンを押すことでそれぞれの動作が行われ、温度や風向きの変更ができます。エアコンに組み込まれたシステムは、それ以外の目的には使用されません。

組み込みシステムのOSにはLinuxが使われることが多いです。組み込みLinuxのメリットとして以下があげられます。

  • オープンソースソフトウェアであり無償で利用できること
  • 組み込み開発に必要な環境が充実していること
  • Webや書籍など情報が豊富であること

なぜクロス開発が必要なのか

なぜ組み込みシステムの開発はクロス開発で行われるのでしょうか。
それは組み込み機器自体に開発できるだけの機能や性能が不足しているためです。

組み込み機器には開発に十分なCPUパワーやメモリ搭載量がありません。ディスプレイやキーボードを接続したり、大容量のハードディスクドライブを搭載したりすることもできません。
そのため、パソコン上で開発を行い、コンパイルしたものを組み込み機器に載せる方が効率的に開発が行えるのです。

どのようにクロス開発を行うのか

組み込みシステムでは、ハードウェアとソフトウェアを分けて開発します。

クロス開発向けのプログラミング言語には、アセンブリ言語やC言語が主に使われます。ホストコンピュータ(パソコン)で開発したプログラムをコンパイルして、ターゲットの組み込み機器に転送します。

クロス開発に対応したコンパイラのことをクロスコンパイラと呼びます。

クロス開発の手順は次のとおりです。

  1. ホストコンピュータ上でソースコードを作成します。
  2. 作成したソースコードをクロスコンパイラによって実行可能な形式のプログラムへ変換します。
  3. 専用のツールを使用してターゲット機器へダウンロードします。
  4. ターゲット機器に送られたプログラムをホストコンピュータ上で監視しながら実行、デバッグを行います。
  5. エラーが発見されれば再度ソースコードを修正し、コンパイル、ダウンロード、デバッグを行います。これらを繰り返しながらプログラムを完成に近づけていきます。

クロス開発用統合開発環境(IDE)

統合開発環境とはソフトウェア開発に使用されるアプリケーションのパッケージです。エディタ、コンパイラ、デバッガといった開発に便利な機能が備わっています。

クロス開発で使用される統合開発環境には以下のものがあります。

Eclipse

Eclipseは非常に高機能で、クロス開発以外にもさまざまな開発で利用されます。オープンソースソフトウェアであり無償で提供されています。プラグインを組み込むことで多様な機能拡張が行えるのも特徴のひとつです。

C/C++ Development Toolsプラグインを導入することで、C/C++でのクロス開発が行えます。

WideStudio

WideStudioは国産の統合開発環境です。Eclipseと同じくオープンソースソフトウェアのため無償で利用できます。複数の異なるプラットフォームで動作するライブラリを使用しており、開発者は標準ライブラリを使用するだけでマルチプラットフォームに対応したアプリケーションを開発できます。

参考