【無料セミナーのご案内】
3/29 (金) に、「Arm 向けソフトウェア開発の効率化 ~ Arm Development Studio のご紹介 ~」無料セミナーを開催します! Arm アーキテクチャ ベースの SoC に対応したソフトウェア開発ツールを探している方や、開発の効率化に関心のある方に特におすすめです。詳細はこちらから。
Arm プロセッサーには様々な種類があります。Cortex-A プロファイルはマルチコア構成が可能なプロセッサーで、最高級の性能を提供します。また、高機能 OS をサポートします。Cortex-R プロファイルは、 リアルタイム性への要求が厳しいアプリケーション向けです。そして、Cortex-M は低消費電力の IOT ソリューション向けです。
昨今、異なる技術の融合がますます進み、従来のシステムにより多くの機能が追加されるようになってきました。コーヒーメーカーを例にとっても、高度なユーザー インターフェイスが実装されているものや、インターネットに接続されているものすらあります。そういったシステムのニーズを満たすために、これまでは別々のコンポーネントにより実装されていたデバイスを、シリコン ベンダーが統合して提供する傾向が見られます。
通常、これらのヘテロジニアスなデバイスには、複数の Cortex-A プロセッサーに、単一または複数の Cortex-M プロセッサーを組み合わせて使われています (それ以外のプロセッサーの組み合わせの場合もあります)。これらのデバイスが提供する利点は、企業収益だけにとどまらず、データの安全性の強化、システム リソースを共有できる利便性、デバッグ インフラストラクチャーの統一化などが挙げられます。
ヘテロジニアスなデバイスに対応した開発ツール
Development Studio に含まれている Arm デバッガーは、最新の Arm コア向けの開発に使いやすいように設計されています。多数のヘテロジニアスな SoC を含む 6,000 弱のデバイスに対応した設定が用意されており、すぐに利用することができます。また、強力な構成ユーティリティーも用意されており、必要に応じて、独自にデバッグ構成を定義することも可能です。
デバッガーは低レベルの機能 (レジスターやメモリー、キャッシュ データの表示など) に加え、OS 認識やスタック ビュー、コード挿入 (コード インストルメンテーション) などの高レベルの機能を提供します。これらの機能は、システム内の各 CPU のそれぞれ別の接続を対象に実行することができます。そのため、完全に異なるソフトウェア スタックを走らせている場合でも、それぞれのデータが適切にフォーマットされて表示されます。 以下の図は、Cortex-A 上の Linux と Cortex-M 上の RTOS を並行して実行した例です。デバッガーが同時に両方のプロセッサーに接続されていることをご覧いただけます。
また、多くのシステムからトレースを生成して、プロセッサーの実行ヒストリーを出力することができます。ヘテロジニアスなシステムでは、プロセッサーはそれぞれ別々のクロック スピードで非同期に動作します。トレースは同時に各ソースから収集することができ、ある時点で各プロセッサーが何を行っていたかを解析できるように、タイムスタンプを介して同期されます。
どのコンパイラーを利用すべきか
Development Studio には最新の Arm コンパイラーが含まれています。Arm コンパイラーは組み込みアプリケーション向けに最適化されており、最小のフットプリントで最高のパフォーマンスを引き出すことができます。最新版の Arm コンパイラー 6.11 に関しては、こちらの記事をご覧ください (英語のページです、近日中に翻訳版を本ブログにて公開予定)。 また、Linux (または Android) をアプリケーション プロセッサー上で実行するユーザーも多いかと思います。そういったケースでは、オープンソースの GCC コンパイラーをビルド ツールとして利用することが推奨されています。Developer Studio Blonze Edition をご利用いただければ、 Arm コンパイラーを使用して、Cortex-M 上で動作するようにベアメタルまたは RTOS ベースのコードをビルドすることができるほか、Linux カーネルとアプリケーション スペースを含む、システム全体をカバーする包括的なデバッグ環境が提供されます。アプリケーションやカーネル モジュール、デバイス ドライバーの開発者の皆様にとっても、Arm デバッガーの強力な機能をぜひお使いいただればと思います。
Arm Development Studio を 30日間評価できる無料試用版はこちらから。製品の詳細に関してはこちらをご覧ください。
この記事は、Arm 社の Software Tools Blog に公開されている「Developing for multi-core and heterogeneous devices made easy」の日本語参考訳です。