組み込み開発におけるARM入門

組み込み開発におけるARM入門

ARMの開発環境

ARM アーキテクチャを使用したCPU上でのソフトウェア開発は、基本的には有償の開発環境が前提となります。無償環境も存在しますが、迅速にソフトウェア開発に着手できるという点では圧倒的に有償環境が優れています。ここでは有償環境・無償環境の代表的なものをそれぞれ見ていきましょう。

  • Date: 2014年3月31日
  • Author: EIPC

有償のARM開発環境

有償の開発環境は、業務用途前提なので比較的高価なものが多く、多くのツールではコードサイズ制限がついた簡易版を無償または安価で販売しています。しかし、制限が厳しいので本格的な開発には向きません。無償のツールを使用する場合は、30日制限の体験版を用意しているところがほとんどですので、使い勝手や性能を事前に確認してみてください。

「ツールチェイン」はARMをビルドするコンパイラ環境を取りまとめたものです。GUIな統合環境と一体化したものもあれば、CUI環境として独立している場合もあります。GUIとは、グラフィカルユーザインターフェースのことで、ユーザーへの情報表示にグラフィックを多く用い、基本的な動作のほとんどがポインティングデバイスで行えるユーザインターフェースです。一方でCUIとは、キャラクタユーザインターフェースのこと。情報表示を文字で行い、キーボードによってすべての動作が行えるユーザインターフェースです。

CUI環境として独立している場合は、GUIの開発環境に加えて、別途構築する必要があります。同じツールチェインを使っていれば、開発環境の移行は容易です。

有償の開発環境として、有名なものを以下にご紹介します。

MDK-ARM(Keil)

Keil 社が提供するARM純正の開発環境で、ARMプロセッサベースのプラットフォーム向けツールを提供しています。マイクロコントローラ アプリケーション用に特化されているため、比較的習得が簡単で、かつ要求の厳しい組み込みアプリケーションにも十分な性能を持っています。対応シリーズは、Cortex-M、Cortex-R4、ARM7、ARM9。Cortex-Aシリーズは非対応となります。各種ミドルウェアが付属するMDK-Professionalからコードサイズ制限があるMDK-Basicまで各ライセンスがあります。ARM C/C++コンパイラツールチェインを使用します。

DS-5

ARM純正の開発環境で、ARMアプリケーションプロセッサ、SoC(システムオンチップ)デバイス用のEclipseベースのIDEに統合されています。既存のEclipse環境にもプラグインとして使用できます。マルチコアデバッグをサポートし、パフォーマンスアナライザを合理化してくれます。また、Linuxアプリケーションのプロファイリングが可能です。
純正だけあって、全てのARMコアに対応し、ARM製含む各種開発キットのサンプルも入っています。ツールチェインは独自のARM DS-5ツールチェインです。

Embedded Workbench (IARシステムズ)

ARMコア全般をサポートし、UI・マニュアル・ヘルプの完全日本語対応、IRA日本法人が直接サポートするなど、国内でのサポートが最も厚く、国内シェアも高い。IRAシステムズが作った開発環境であるEWARMツールチェインなので、GNU C/C++系ツールチェインとはソースの互換性が無い部分がある。ちなみにIRAシステムズでは、IRAシステムズの製品や技術に関する無償セミナーやトレーニングを行っているのも特徴です。

True Studio (Atollic)

国内はポジティブワン社、エーアイコーポレーションが代理店となっている。Eclipse等のOpenSourceをベースとした開発環境で、ツールチェインはGNU C/C++コンパイラを最適化したものを使用。

Ride7 (Raisonance)

国内総代理店はポジティブワン社。GNU C/C++コンパイラを使用しているようです。

無償のARM開発環境

OpenSource(オープンソース)な無償な開発環境も存在しますが、環境構築はそれなりの知識を要する上、ツール群の変動も多く、自分で情報を収集しつつ構築していかなればなりません。開発可能になるまで余分な手間と知識が必要になるデメリットがあります。
無償の開発環境として有名所を以下にご紹介します。

Eclipse

元々はJava用のOpenSourceの統合環境ですが、使用するコンパイラや設定を変えることでC/C++の統合環境にもなり、これを利用してARM用の開発を行えるようにするものです。ARM用C/C++コンパイラやJTAGデバッガのセッティング等を行う必要があり、各種設定にはそれなりの手間と知識が必要になります。ツールチェインは各種GNU C/C++です。

LaunchPad

GNU C/C++を使ったツールチェインで、CUIでMakeする形の開発なら、これだけあれば開発できます。無償でも制限がないので、ホビーユースでのARM開発ではよく使用されています。

ARM開発の効率化

ARMアーキテクチャを使用しての開発を効率的にするなら、ARMコア搭載マイコン用のスタータキットや組み込みプラットフォームなどもチェックしておきましょう。
スタータキットは、CPUボード、統合開発環境、サンプルソフトウェアなどがひとまとめになったキットです。スピーディーな開発はもちろん、スタータキットをマイコンシステムの入門編として使うことも可能です。
また、組み込みプラットフォームにも色々あります。ARMコア搭載の「Armadillo」は、標準OSにLinuxをプリインストールしたCPUボード。Xilinx FPGA搭載の「SUZAKU」は、Linuxに対応した組み込みモジュールです。CPUボードと違って、FPGA上でユーザー独自による機能の実現が可能です。

短期間での開発には、評価ボードを利用するのもひとつの手です。ARMを載せた評価ボードを使えば、時間短縮はもちろん、ハードウェアの評価と平行してソフトウェア開発も進めることができます。

ARMアーキテクチャを使用してマイコンボード(マイクロコンピュータシステム)を開発する際には、デバッガの使用も効率的です。デバッガとは、デバッグするためのソフトウェアのことで、マイコンへのプログラム転送に使用することも可能です。インテル社のデバッガ「ice」は、ソフトウェアのデバッグとハードウェアの動作確認が可能なデバッグです。ARMにはオープンソースのデバッガや無償のツールを組み合わせて行えるデバッグ、安価なJTAGインターフェースも用意されているので、確認してみてください。

見極めが重要です

有償の開発環境は当然ながらサポートがありますので、初心者でも十分なサポートを得ることができますので、開発費に余裕があるのであれば、当然こちらがお勧めです。しかし、無償の開発環境で開発ができてしまうというのも1つの大きな特徴ではありますので、時間がある方は一度試していただければと思います。ツール同士の整合性が一番のキーとなりますが、無償といっても最近の開発環境は非常によくできているという事が理解いただけるかと思います。