ビルド、デバッグ、分析、グラフィックス開発、プロトタイプ作成を支援する複数のコンポーネントを備えています。
Arm® デバッガーは、開発プロセス全体を通して、ソフトウェアにおけるバグの根本的な原因を特定するのに役立ちます。デバイスの起動からアプリケーションのデバッグまで、仮想プラットフォームやハードウェア上におけるコード開発を支援し、ソフトウェア製品をいち早く市場へ投入できます。
Arm® デバッガーは、複雑な SoC 開発を念頭に設計されているため、マルチコアのデバッグは、単一コア上における迅速なテスト実行と同様に、直感的に実行することができます。対照型 (SMP) および非対照型 (AMP) マルチプロセス処理の両方に加え、ヘテロジニアス (big.LITTLE 技術) システムを含む複雑なオペレーティング モードをサポートします。
Arm® デバッガーは、Eclipse ベースの Arm Development Studio IDE 上で利用可能です。上級ユーザー向けには Python スクリプト インターフェイスを提供しており、SoC 上でそれぞれの Arm® CoreSight™ コンポーネントを必要に応じて構成することができます。
Command ビューを使用すると、コマンド ラインからデバッグすることができます。Arm® デバッガーをコマンド ラインのみで使用する必要があるプロジェクトでは、Eclipse 環境以外でも作業ができます。コマンド ラインからのデバッグは一般的であるため、Arm Development Studio では、素早いアクセスを実現するために、コマンドプロンプトを提供します。
Jython スクリプトは、低レベルの実装における課題を取り除きながら、複雑なデバッグ制御のフローを作成するための手段を提供します。
コードの回帰テストや検証を行う場合、コマンド ラインから Arm® デバッガーを使用し、テストを自動化できます。
コマンド ラインの自動補完により、デバッグを簡易化します。Ctrl + スペースを押すだけで、GDB コマンド アシストを起動できます。
Arm® デバッガーは、チーム全体で標準化を図るのに理想的なツールです。コラボレーションの強化により、シリコンの立ち上げからアプリケーション開発まで、統一化されたユーザー エクスペリエンスを提供します。
Arm Development Studio の IDE は、プラットフォームの自動検出向けに JTAG を使用するプラットフォーム構成エディター (PCE) などのユーティリティを提供します。最近の SoC では、通常、追加の手動設定が必要となりますが、多くの場合、初期スキャンを実行すると、いくつかのデバッグ、トレース要素を検出できます。
クロストリガー、トレース ジェネレーター、シンク、ファブリック、および独自のカスタム IP 向けには、これらの要素を簡単な Jython スクリプトで記述できる、デバッグおよびトレース サービス レイヤー (DTSL) と呼ばれる抽象化レイヤーを提供します。
市販のパーツを使用している場合、事前に構築されたデバッグ構成が Arm Development Studio に既に存在する可能性があります。この場合、ターゲット ボードへの接続がデバッグの多くを占めることになります。
![]() |
![]() |
![]() |
![]() |
|
開発ステージ | プリシリコン、OS 移植、アプリケーション開発 | ボード立ち上げ、OS 移植、アプリケーション開発 | シリコン評価、ファームウェア開発 | Linux および Android のネイティブ ライブラリとアプリケーション |
---|---|---|---|---|
デバッグ接続 | CADI | Arm DSTREAM、Arm Keil ULINKpro ファミリー | USB を介した CMSIS-DAP、Arm DSTREAM、ArmKeil ULINKpro ファミリー | ADB またはイーサネットを介した GDB リモート プロトコル |
多くの主要なデバイス向けには、事前にロード済みのデバッグ構成とサンプルを提供します。独自の SoC を設計されている場合や、一般に使用されることの少ない ASIC 向けのソフトウェアを開発されている場合、Arm® デバッガーと DSTREAM デバッグ プローブを使用して、プロセッサー コアだけでなく、クロストリガー、トレース マクロセル、トレース ファネルなどのその他のデバッグ ブロックを記述した、新しいデバイス構成を作成することができます。
Arm Development Studio は、以下に対するサポートを提供します。
Arm® デバッガーは、Linux* や Android、さらに一般的なリアルタイム OS (RTOS) に対して、可視化をもたらします。互換性のあるターゲットでは、コードのステップ実行とともに、すべてのタスク/スレッドや呼び出しフレームを簡単に可視化し、タスクやスレッド特有のブレークポイントを設定した後、メールボックスやセマフォなどのカーネル リソースを表示できます。Linux カーネルをデバッグする際、動的にロードされたモジュールのシンボルの表示および読み込みや、保留中のブレークポイントを設定することも可能です。
サポートされるオペレーティング システムは、以下の通りです。
Arm Development Studio には、CMSIS-Pack 標準に基づくソフトウェア パックのサポートが含まれています。5000 以上の一般入手可能なソフトウェア パックから、必要なパックを見つけやすくするためのパック インストーラーが含まれています。ソフトウェア パック情報を使用して、プロジェクトやフラッシュデバイス、使用開始するためのコード テンプレートの作成、およびデバイスのデバッグを行うことができます。
サポートされているデバイスの一覧は、こちらのデバイス リストをご覧ください。
Arm® デバッガーは、Arm® アーキテクチャ参照ガイドを複製する方法で、バンク化されたレジスター、システム コントロール コプロセッサー (CP15) レジスター、およびペリフェラル レジスターへのアクセスを提供します。R13_fiq など、名前でレジスターを特定でき、あらゆるメモリ クラスへ直感的にアクセスできます。
アドレス修飾子を使用して、特定の種類のメモリにアクセスできます。例えば、S:0x0 と入力した場合、デバッガーは、Arm® TrustZone® セキュア モードにおける 0x0 のメモリを読み取ります。
これらのプレフィックスは、シンボルの読み込み、ブレークポイントの設定、メモリ コンテンツの表示や変更、および現在の停止状態の報告に使用できます。
Arm7 および AArch32 向けのアドレス修飾子 | |
---|---|
P: | 物理メモリ (MMU無効) |
S: | Arm® TrustZone® セキュア モード |
N: | Arm® TrustZone® 非セキュア モード |
H: | ハイパーバイザー モード |
メモリに対するデバッグ アクセス ポート インターフェイス | |
APB: | アドバンスト ペリフェラル バス |
AHB: | AMBA ハイパフォーマンス バス |
AXI: | アドバンスト エクステンシブル インターフェイス |
AArch64 アドレス修飾子 | |
EL1N: | 例外レベル 0/1 非セキュア モード |
EL1S: | 例外レベル 0/1 セキュア モード |
EL2: | 例外レベル 2 ハイパーバイザー |
EL3: | 例外レベル 3 Arm® TrustZone® モニター |
MMU ビューを活用して、ページ テーブル ウォークの自動補完、仮想メモリ アドレスから物理メモリ アドレスへの変換、およびメモリ マップの概要の表示を実現できます。
Target Configuration Editor (ターゲット構成向けエディター) により、ビューにカスタム ペリフェラル レジスターを追加できます。これにより、ターゲット特有の周辺機器とレジスターに合わせてカスタマイズできます。
CMSIS-SVD 互換フォーマットで構成済みのターゲット設定をエクスポートすることで、引き続き、Keil® MDK で作業を進めることができます。
Arm® デバッガーは、ハードウェア、ソフトウェア、条件付きブレークポイントの最大制御により、複雑なバグの排除を支援します。
条件付きブレークポイントは、C 言語形式の式が true と評価された場合に実行を停止し、ブレークポイントのトリガー前に複数のヒットを許可するか、デバッガー スクリプトを実行します。スレッドや仮想マシン特有のブレークポイントは、特定のスレッドからヒットした場合、プロセッサーを停止することができます。
設定可能なプレークポイントの種類や数は、メモリ領域、プロセッサーにおけるハードウェア サポート、デバッグ インターフェイス、および実行状態に左右されます。
同様に、特定のアドレスから実行される命令ではなく、アクセスされたデータのアドレスや値を監視するウォッチポイントを設定できます。
Arm Development Studio の非常に便利なトレース機能は、コアを継続的に停止および開始するのが現実的ではない場合、見つけにくいバグを整理するため、非侵入型の方法を提供します。
最近のシステムにおける複雑なトレース トポロジー向けに、トレース スタートの設定および構成、ポイントの停止およびトリガーを提供します。
Arm® デバッガーでは、Arm® アセンブリ エディター、C/C++ エディター、逆アセンブリ ビュー、関数ビュー、メモリ ビュー、またはトレース ビューからトレースポイントを設定できます。
ブレークポイント、トレースポイント、およびウォッチポイントは、異なる Arm Development Studio のワークスペースで使用するためにエクスポートでき、チーム単位でのデバッグ作業の役に立ちます。
トレースに関する詳細は、こちらからご確認ください。
Keil® MDK ソフトウェア ツール スイート向けのデバッグ機能を提供する µVision® デバッガーは、アプリケーション コードのテスト、検証、および最適化のための単一環境です。
レスポンシブな実行制御デバッグに加え、デバッグとシステム最適化を提供するデータ トレースおよび非侵入型命令トレースの使用を可能にします。多くのサードパーティ製デバッグ アダプターをサポートするだけでなく、ULINK プローブと組み合わせて使用すると、ストリーミング命令トレース、電力測定機能、およびデータ トレースを提供します。
Component Viewer と Event Recorder は、メモリの読み取りと書き込みのみを使用して、変数、構造体、またはその他のオブジェクトに含まれるソフトウェア コンポーネントに関する情報を提供します。また、ソフトウェア コンポーネントの実行状態やイベント情報も表示します。Keil® MDK ミドルウェアおよびいくつかのリアルタイム オペレーティング システムには、イベント アノテーションが含まれており、Event Recorder を使用して、これらのソフトウェア ブロックの動作を迅速に分析および理解することができます。
コード実行の統計データを表示します。任意のデバッグ アダプターと組み合わせて使用することで、注釈付きのコード セクション向けに実行のタイミングと呼び出しの数が記録されます。ULINKplus デバッグ アダプターと組み合わせると、注釈付きのコード全体でエネルギーの使用量をプロファイルできます。これは、バッテリーで稼働するデバイスの電力プロファイルを改善する際に特に便利です。
すべての Cortex®-M3、Cortex®-M4、Cortex®-M7、Cortex®-M23、Cortex®-M33 ベースのデバイスのデータとイベントのトレース情報を分析します。システムの実行中に、割り込みと例外をトラックできます。また、計装トレース マクロセル (ITM) 経由での printf 形式でのデバッグメッセージの送信を有効にします。
Keil® µVision® デバッガーを ULINKpro デバッグ プローブと一緒に使用することで、命令トレースを PC に直接ストリームでき、過去のシーケンスのデバッグ、実行プロファイリング、パフォーマンスの最適化、および安全性が重要なアプリケーションに必要なコード カバレッジ解析が可能です。これらは、Cortex®-M3、Cortex®-M4、Cortex®-M7、Cortex®-M33 ベースの多くのデバイスに組み込まれた Embedded Trace Macrocell (ETM) によって実現されます。
優れた性能を引き継いだ Arm® コンパイラーは、Armv6-M から Armv8-A 64-bit まで、Arm® Cortex® プロセッサーとアーキテクチャのすべての機能を活用した非常に効率の良い製品の開発を実現します。この汎用的なコンパイラーは、ベアメタルおよび組み込み (RT) OS アプリケーション向けに、コードを最適化します。
Arm® コンパイラーは、Arm Development Studio に同梱されています。また、Arm Development Studio には、マイクロコントローラー専用ツールキットである Keil® MDK Professional Edition が含まれています。Cortex®-M デバイス向けの安全認定されたコンパイラーは、Arm Development Studio Gold および Silver Edition の一部として利用可能な Keil® MDK に含まれています。また、前世代との最適な互換性を提供するため、Arm Development Studio のライセンスをお持ちの場合、Arm® コンパイラー 5 や RVCT など、Arm のコンパイル ツールの以前のバージョンをご利用いただけます。
注意: Arm Development Studio の IDE のインストールが完了したら、Arm® コンパイラーをコマンドラインから評価または使用できます。
Arm® コンパイラーは、単一のベンチマークをはじめ、幅広い組み込みワークロード向けに最適化されています。Arm 社では、継続的にコンパイラーの改善を図っています。
Arm® コンパイラーは、小さな Arm C Microlib、armlink リンカー、および最高級のコード密度を密接に連携させることで、より多くのコードを小さなフットプリントに収め、コード サイズを小さい状態に保ちます。
Arm® コンパイラーに安全パッケージを追加することで、セーフティ クリティカルなアプリケーション向けに、TÜV SÜD 認定プロセスを簡素化できます。
エコシステム パートナーのホストとの互換性により、GCC から、または GCC へのコード移行など、柔軟性のある選択肢を提供します。
Arm® コンパイラー 6 は、Arm マイクロアーキテクチャ特有の命令スケジューリング、プログラム全体の最適化戦略、および詳細まで調整されたライブラリを組み合わせることで、幅広いワークロードにわって、実行時間を大幅に短縮します。これは、Arm 社が現代の複雑な組み込みコードを対象としたパフォーマンスの最適化に絶え間なく投資してきた結果です。
組み込み開発者は、常にパフォーマンスとコード サイズの最適なバランスを模索しています。Arm® コンパイラーは、あらゆる強力な最適化テクニックを通して、特に Cortex®-M デバイス向けに、小さく、効率的なコードを提供します。
自動車、医療、産業、鉄道などの業界のお客様は、TÜVSÜD 認定のコンパイラーを使用して、セーフティ クリティカルなアプリケーションをビルドすることができます。 Arm® コンパイラーの安全パッケージを使用することで、独自に適切なツールチェーンを探さずとも、機能安全認定を達成するプロセスを簡素化および加速します。
システムにおけるすべてのハードウェア カウンターを調査し、時間が費やされた場所を視覚的に分かりやすく提示します。ハードウェア カウンターに加え、OpenCL アプリケーションや、Arm Energy Probe または National Instruments DAC による電力使用量など、その他の主要なパフォーマンス指標を分析します。
プログラム カウンターをサンプリングし、システム上で CPU が時間を費やしている場所を、システム レベルから、アプリケーションのソースコードの行単位まで表示します。
分析に関係のない情報を除外し、特定のボトルネックにフォーカス、または特定のアプリケーションやスレッドのパフォーマンスを調査できるように支援します。
コマンドラインからデータを取得した後、既存のビルド システムに統合し、開発段階における迅速な問題解決を実現します。
Streamline パフォーマンス アナライザーを OpenCL Timeline Mode で 使用して、OpenCL アプリケーションを調査します。GPU 上でどのカーネルが実行されているか、実行時間、またカーネルが停止する原因となる依存関係を可視化します。
コレクション エージェントにソースコードを提供して、独自のシステム IP 向けのハードウェア パフォーマンス カウンターを追加したり、Arm 以外のシステムを可視化します。
他のハードウェア カウンターおよび PC サンプリング データに対して、Arm Energy Probe または National Instruments DAC からの電力情報をプロットし、電力サージの原因を特定します。
Streamline パフォーマンス アナライザーで、ソースコードに対してコンテキスト アノテーションを使用することにより、因果関係に対する理解を深め、コードの特定の部分をグラフィカル分析の要点と関連付けることができます。
Streamline パフォーマンス アナライザーは、ベアメタル システムをサポートし、最小の Cortex®-M から最大の Cortex®-A ベースのシステムまで、さまざまな RTOS でパフォーマンス分析に使用できます。ベアメタルでは、Streamline はシステム固有のエージェント コードをコンパイルすることにより動作します。このコードは、システムから関連するパフォーマンス データを収集し、Streamline パフォーマンス アナライザーに転送してインポートします。完了後、Linux と同じ方法で分析と視覚化を行えます。
Streamline パフォーマンス アナライザーは、ハードウェア カウンターやその他のさまざまなパフォーマンス メトリクスを使用し、ボトルネックの識別のためにシステム全体の分析を実現します。ベアメタルシステム向けの Streamline パフォーマンス アナライザーは、同レベルのパフォーマンス分析を提供しますが、特に、Linux ベースのオペレーティング システムが存在しない Cortex®-R および Cortex®-M ベースのデバイスに対して有効です。
ベアメタル システム向けの Streamline パフォーマンス アナライザーは、命令トレースをシステムから直接インポートし、アプリケーションの正確な状態や、すべての標準となる Streamline のビューを表示します。これにより、正確な呼び出しパスと、CPU の時間が費やされた正確な場所を把握できます。また、システム固有のエージェント コードをコンパイルすることにより機能します。このコードは、システムから Streamline パフォーマンス アナライザーに転送するためのパフォーマンス データを収集します。
現代は、さまざまなシステムがあり、それぞれがさまざまなトレース機能を備えています。ベアメタルシステム向けの Streamline パフォーマンス アナライザーは、STM ITM や ETM を介して、本番装置からデータを抽出できます。トレース メカニズムが存在しない場合、ツールによってデータがメモリに配置されるため、ユーザーは、PC にデータを転送するための最善の方法を決定できます。
グラフィックス アナライザー (旧 Mali™ グラフィックス デバッガー) を使用すると、アプリケーション内で OpenGL ES、Vulkan、および OpenCL API の呼び出しをトレースし、フレームごとのアプリケーションへの影響を理解して、可能性のある問題を特定できます。Android と Linux の Arm® ベースのターゲット プラットフォームをサポートしています。本ツールは、Arm Developer Studio および Moibile Studio に同梱されています。シリコン、OS、および組み込みグラフィックス アプリケーションの包括的なデバッグと分析を行えます。
Linux または Android のいずれかの Arm® ベースプラットフォームをサポートし、モバイル グラフィックスのコンテンツ全体にわたる最適化やデバッグを行うための単一のツールを提供します。
ターゲット上で自動的にデータを直接キャプチャして、既存のビルド システムに統合できます。パフォーマンスの低下やグラフィックスの異常発生を特定し、導入後すぐにこれらの問題を修正することができます。
グラフィックス アナライザーによって収集されたすべての情報に直接アクセス可能な Python ベースのインタプリタが含まれています。これにより、ツール内で分析をカスタマイズし、Python の全機能を使用して、結果を自動化できます。
変更を加えずに、1 つのデバイスから別のデバイスで直接コンテンツを再生できます。これにより、コンテンツを回帰システムに簡単に追加し、ハードウェアの新しいバージョンにおいて、同様の方法でコンテンツがレンダリングされるかどうか確認できます。また、コンテンツをさまざまなデバイスで同時かつ簡単にテストすることもできます。
グラフィックスを評価する際、問題を引き起こしているフレームを迅速に識別する必要があります。最新のドライバーを使用して Mali™ ベースのデバイスを実行している場合、グラフィックス アナライザーは、ハードウェア カウンターをフレームごとに表示します。これにより、各フレームを作成するために必要なリソースや、最も負荷のかかるフレームを正確に表示します。
仮想プラットフォームは、ハードウェア設計や製造の前、その間、およびその後における、システムレベルのパフォーマンスの最適化とソフトウェア開発に最適です。モデルは、ハードウェア ターゲットよりも再構成、配布、デバッグが容易であるため、開発サイクルの短縮と市場投入期間の短縮につながります。
Arm Development Studio は、Cycle Model を使用してシステムレベルのパフォーマンス解析を行う場合でも、Fast Model を使用してソフトウェア開発を行う場合であっても、物理ターゲットを必要とせず、仮想プロトタイプ上で実行されるソフトウェアのデバッグ制御と可視性を提供します。 また、迅速に作業を開始できるように、事前に構築されたサンプルとともに、Fixed Virtual Platform (固定仮想プラットフォーム - FVP) の参照用ライブラリが含まれています。
高速かつ正確な機能性を持つ Arm® IP のビュー モデル
サイクル精度 100% を誇る Arm® IP モデル
正確ですぐに使えるモデル