インテル® System Studio 2014 – JTAG デバッガーがさらに多くのプロセッサー・ファミリーをサポート
インテル® 開発ツール・スイート Linux* 対応
この記事は、インテル® デベロッパー・ゾーンに掲載されている「Intel® System Studio 2014 – JTAG Debugger Supports More Processor Families」の日本語参考訳です。
はじめに
これまで、インテル® System Studio の JTAG デバッガーは、インテル® Atom™ プロセッサー・ファミリーのみサポートしていました。インテル® System Studio 2014 では、Silvermont✝ と Haswell✝ マイクロアーキテクチャー・ベースのプロセッサーを搭載したシステムでも JTAG デバッグを利用できます。ここでは、JTAG デバッグの基本的な要件とこれらのプロセッサーで利用可能ないくつかの機能について説明します。
はじめに
2014 年第 1 四半期にリリースされたインテル® System Studio 2014 では、JTAG デバッグのプロセッサー・サポートが拡大しました。それまで、インテル® Atom™ プロセッサー・ファミリー (N2xxx、D2xxx、Z5xx、E6xx、CE42xx、CE 53xx) のみサポートしていましたが、インテル® System Studio 2014 では、Silvermont✝ マイクロアーキテクチャー・ベースのプロセッサー (Avoton✝、Bay Trail✝、Rangeley✝ など) と第 4 世代インテル® Core™ プロセッサー・ファミリー (Haswell✝) もデバッグできるようになりました。新しくサポートされたプロセッサーに関する最新情報は、ark.intel.com (英語) を参照してください。
http://ark.intel.com/products/codename/54859/Avoton
http://ark.intel.com/products/codename/55844/Bay-Trail
http://ark.intel.com/products/codename/60191/Rangeley
http://ark.intel.com/products/codename/42174/Haswell
必要条件
JTAG デバッグには、ターゲット – ホスト環境が必要です。インテル® System Studio は、ホストシステムにインストールします。ホストと Silvermont✝/Haswell✝ ターゲットの接続には、インテル® ITP-XDP3 を使用する必要があります。その他のモデルは、現在これらのプラットフォームではサポートされていません (各プロセッサーでサポートされているプローブの種類については、リリースノートを参照してください)。以下の写真は、インテル® ITP-XDP3 を購入すると提供されるものです。米国式の 3 極コンセントを使用できない場合は、デスクトップ PC で使用されているような IEC-60320 C13 国際規格に準拠したコンセントを使用します。
各ターゲット・プラットフォームで JTAG デバッグを有効にする必要があります。以下の写真のように、PCB に XDP ポートがなければなりません。
XDP ポートの詳細と JTAG デバッグを有効にする方法については、システムベンダーのドキュメントを参照してください。
ホスト・コンピューターは、Linux* ベースと Windows* ベースのどちらもサポートしています。ホストとターゲット環境の詳細な最新のソフトウェア/ハードウェア要件については、インテル® System Studio 2014 リリースノート (「関連情報」セクションにリンクがあります) およびインテル® System Studio 2014 と一緒にインストールされる『Intel® JTAG Debugger User and Reference Guide』を参照してください。
機能
インテルのマイクロアーキテクチャーとチップセットをフルサポート
アーキテクチャー・レジスター (インテル® ストリーミング SIMD 拡張命令) を含むインテル® プロセッサー固有の機能やインテル® Atom™ プロセッサーのグラフィックス・チップセット・レジスターの詳細を確認できます。デバッガー GUI で周辺機器レジスター、ビット・フィールド、オンラインドキュメントを表示できるため、システム設定を検証/変更する際に非常に便利です。
実行トレースのサポート
実行履歴を表示し、システム全体の実行コードフローの詳細を理解できます。実行パスを解析してエラーを見つけたり、例外の原因を特定できます。
新しくなった [Source Files] ウィンドウ
[Source Files] ウィンドウは、ターゲットにロードされたすべてのソースファイルをツリー構造で表示します。ライブラリーごとにフォルダーとソースファイルが表示されます。検索フィールドを使用して表示されるファイルをフィルターすることができます。ツリーにあるソースファイルをダブルクリックすると、ソースファイルが開きます。Linux* OS 認識/カーネルモジュールのデバッグ
インテル® JTAG デバッガーを使用することで、Linux* システムを簡単にデバッグできます。現在アクティブなカーネルスレッド、現在ロードされているモジュールとそのステータス情報、初期化とクリーンアップ・メソッドのメモリー位置が表示されます。カーネルモジュールをデバッグするには、モジュールロード、初期化、クリーンアップ/終了にブレークポイントを設定します。ブレークポイントに到達すると、モジュールのソースコードが表示され、コードをシングルステップ実行できます。アンロードされたカーネルモジュール は、モジュール名を入力し、ブレークポイントを設定することで、OS にロードされているモジュールと同様にデバッグできます。
電力イベントの処理
ターゲットがリセットされたり、ターゲットの電源がオフになった場合、デバッガーは設定を保持し、電源が復帰するとリセットベクトルでターゲットの停止を試みます。
アドレスの変換
物理アドレス空間と仮想アドレス空間は簡単に変換できます。そのため、実行中のコードやコードが実際にアクセスしている物理メモリー位置を特定できます。
スクリプト言語
非インタラクティブ・モードのデバッグ用に強力なデバッグコマンドが多数用意されています。完了時に結果を記録して解析できます。この機能は、リグレッション・テストに役立ちます。以下は、単純なサンプルです。起動コードを実行し、デバッグする EFI ファームウェアからシンボルをロードするため、ターゲットをリセット後に使用します。
!creation date: Wed Nov 06 14:56:30 2013 STEP /ASSEMBLER 38 efi "loadthis 0x00000000FFFFB5D8" run until @line 1409
UEFI ファームウェアのデバッグ
インテル® JTAG デバッガーは、UEFI ファームウェア/BIOS のソースコードをデバッグできるだけでなく、モジュールの特定に役立ついくつかの機能を備えています。ここで問題となるのは、モジュールをロードして、正しいソースコードをアセンブリーコードに割り当てることです。コードにステップインしたら、デバッガーコンソールに次のコマンドを入力します。
efi "loadthis"これにより、デバッガーに現在の IP 以降にあるモジュールヘッダーを探すように指示します。ヘッダーが見つかると、デバッガーはそのモジュールのソースコードをロードし表示します。この機能は、BIOS が RAM に移動し、すべてのアドレスが変わった場合に便利です。
efi "loadthis"上記のコマンドで再度モジュールヘッダーを検索し、ソースコードを表示できます。ヘッダーが見つかると、次のような画面になります。コンソールウィンドウにコマンドが表示されています。また、デバッガーにより C ソースコードがロードされているのが分かります。
フラッシュ・プログラミング
一部のインテル® Atom™ プロセッサーでは、JTAG デバッガーのプローブによりフラッシュメモリーのプログラミングが可能です。サポートされるプロセッサーとフラッシュメモリーについては、リリースノートを参照してください。
将来の展望
将来、新しいマイクロアーキテクチャーとプロセッサーが市場に投入されたら、インテル® System Studio でそれらがサポートされるでしょう。インテル® System Studio は、引き続き、インテル® アーキテクチャー・ベースのプラットフォーム向け組込みアプリケーション/システムソフトウェア開発において、優れたソリューションを提供します。
参考文献
Web セミナー -「Intel® System Studio: Embedded application development and debugging tools」(英語)
http://software.intel.com/en-us/articles/webinar-intel-system-studio-embedded-application-development-and-debugging-tools
インテル® JTAG デバッガーとイベントトレースの併用によるシステム・ソフトウェア・デバッグ
https://www.izzz.us/products/iss/intel-system-studio-jtag-sven-sdk/
システムソフトウェアの問題を迅速に特定する – インテル® System Studio のインテル® JTAG デバッガー
http://software.intel.com/en-us/find-and-fix-system-software-issues-with-intel-JTAG-debugger
インテル® System Studio リリースノート
http://www.xlsoft.com/jp/products/intel/system/?tab=4
インテル® System Studio 製品ページ
https://www.izzz.us/article/intel-software-dev-products/intel-system-studio/
✝開発コード名
コンパイラーの最適化に関する詳細は、最適化に関する注意事項を参照してください。
関連記事
インテリジェント・システムと組込みデバイス向けソフトウェア開発ツールの使用法 この記事は、インテル® デベロッパー・ゾーンに掲載されている「How to use Software Development Tools Targeting Intelligent Systems and Embedded […]
インテル® System Studio を使用する理由 この記事は、インテル® デベロッパー・ゾーンに掲載されている「Should I use Intel® System Studio?」の日本語参考訳です。 はじめに インテル® System Studio は、インテル® […]
SVEN (System Visible Event Nexus) の概要 この記事は、インテル® デベロッパー・ゾーンに掲載されている「SVEN Overview」の日本語参考訳です。 SVEN とは? SVEN は、カーネル、ユーザーそしてファームウェアで実行中のユニットからのイベントをトレースして記録するための基盤と API です。SVEN は航空機のフライトを記録する “ブラックボックス” […]
インテル® System Studio 2014 – UEFI BIOS デバッグ この記事は、インテル® デベロッパー・ゾーンに掲載されている「Intel® System Studio 2014 - UEFI BIOS Debugging」の日本語参考訳です。 以前の記事 (http://software.intel.com/node/488501 (英語)) では、インテル® System Studio […]
最新の IoT と組込みテクノロジーを利用したスマートな開発 この記事は、インテルの The Parallel Universe Magazine 24 号に収録されている、最新の IoT […]
-
-
C++ 開発者が陥りやすい OpenMP* の 32 の罠 2011年12月22日
-
StdAfx.h に関する考察 2015年7月29日
-
セグメンテーション・フォルト SIGSEGV や SIGBUS エラーの原因を特定する 2012年2月24日
-
インテル® SSE およびインテル® AVX 世代 (SSE2、SSE3、SSSE3、ATOM_SSSE3、SSE4.1、SSE4.2、ATOM_SSE4.2、AVX、AVX2、AVX-512) 向けのインテル® コンパイラー・オプションとプロセッサー固有の最適化 2017年12月26日
-
コンパイラー最適化入門: 第1回 SIMD 命令とプロセッサーの関係 2011年5月5日
-
プログラミング、リファクタリング、そしてすべてにおける究極の疑問 2018年5月15日
-
ゲーム AI の設計 (その 1) – 設計と実装 2011年7月22日
-
インテル® コンパイラーによる AVX 最適化入門: 第1回 AVX とは 2011年8月19日
-
ウェイクロック: Android* アプリケーションでスリープしない問題の検出 2013年9月5日
-
64 コアを超える Windows 環境でマルチスレッド・プログラミングをしてみる 2011年11月23日
-