Standard Training Courses
QNX Momentics IDE トレーニング コース
目標
QNX Momentics IDE の使用方法を学習します。
- アプリケーションの開発方法
- 複雑な問題をデバッグする方法
- 複雑なシステムでのパフォーマンスを分析する方法
本コースでは、IDE を使用してセルフホストまたはクロス開発のサンプル プログラムやシステムを扱い、学習したスキルを実際のアプリケーションに応用する方法を学習します。
トピック
本コースは、以下のセクションから構成されます。
概要
全セクションの概要をカバーします。
IDE の基礎
Momentics 開発スイートで作業をするために必須な基礎知識について解説します。IDE の中心的なコンセプトを習得し、IDE 内のナビゲーションと個人的なニーズに合わせた設定ができるようになります。その後、ターゲットとのさまざまなインターフェイスを紹介し、プロジェクト、ワークスペース、ホスト−ターゲット モデルなどについても解説します。最後に、開発効率を高めるヒントや、さまざまなドキュメンテーション ソースを紹介します。
QNX Neutrino RTOS アーキテクチャ
マイクロカーネルやプロセス マネージャの仕事など、QNX Neutrino RTOS のアーキテクチャの概要について解説します。スタンダード、保護アドレス スペース、プロセスとスレッドのモデルなどについても学習します。また、さまざまな IPC タイプ、同期、リソース マネージャ、共有オブジェクト、QNX Photon microGUI ウィンドウ システムなどのキーポイントについても解説します。
C/C++プロジェクトの管理
IDE における、コードの基本的な「入れ物」はプロジェクトです。このセクションでは、C/C++ コードのための 3 つのプロジェクト タイプをカバーします。コンテンツ全体とビルド構造の全体をプログラマが決定するプロジェクト、複数プラットフォームをサポートする定義済みの構造を使用するプロジェクト、およびライブラリ プロジェクトの3つです。ヘッダー ファイルとプロジェクトの依存性についても解説し、外部からのコードをプロジェクトにインポートする方法についても学習します。
コンパイルと実行
自動とマニュアルの両方でコードを記述するさまざまな方法について解説します。make ターゲットの使用法、エラー メッセージを選択すると、原因となったソース ラインにジャンプできるエラー修正サイクルについても解説します。最後に、完成した実行ファイルをターゲットで実行するさまざまな方法について学習します。
デバッグの基礎
IDE でデバッグ パースペクティブを使用する際の基礎を紹介し、ターゲットとの接続方法、デバッグ セッションの起動方法、コードのステップ スルー、ブレークポイントの設定、データの検証、データの変更といった基本的なテクニックについて学習します。
デバッグについてのその他のトピック
このセクションでは、従来的なツールの範囲を超えた機能を紹介、デバッグの定義をさらに広げます。まず、IDE を使用してマルチスレッドのプロセスやマルチ プロセスをデバッグする方法について解説し、その後、IPC やコールバックのデバッグ、ポストモーテム デバッグ、実行中プロセスへのアタッチ、メモリ破損のデバッグ、メモリ リークの検出などについて学習します。
QNX 組み込みシステムの概要
実際の組み込み作業を行う前に、組み込むコンポーネントと、コンポーネント同士の関係について理解する必要があります。これは、組み込みシステムを設計する上で熟知しておくべきポイントです。この点を説明するために、さまざまなブート方法、関連するコンポーネント、コンポーネント群のまとめ方などをカバーします。IPL から使用可能なファイルシステムの種類まで、広い内容について学習します。
QNX Momentics を使用した組み込み
QNX Momentics を使用し、ブート時に必要なコンポーネントを組み入れたブート可能イメージ ファイルを作成する方法の詳細について解説します。また、システムがブートしてから必要となるコンポーネントを含む組み込みファイルシステム イメージを作成する方法についても説明します。多くの場合、IPL、イメージその他のコンポーネントは、ターゲットに載せる前になんらかの中間フォームに変換する必要があります。この変換方法についても説明します。また、ターゲットでシリアルまたは TFTP ダウンロードをを行う機能についても学習します。
アプリケーションのプロファイリング
単一プロセスのプロファイリングを行う IDE のアプリケーション プロファイラの使用法を詳しく解説します。プロファイラの使用により、コードのどの部分で CPU を最も消費しているかを、関数レベルとソースライン レベルの両方で確認することができます。プロファイリングで得た情報を活かし、コードの効率を高めることができます。ライブ プロファイリングと事後プロファイリングの両方をカバーします。
システム プロファイリング
システム プロファイリングでは、システム全体を俯瞰することができ、また、カーネル レベルまで詳細情報を得ることができます。まず、カーネル側で何が発生しているかと、必要な設定について解説します。その後、コマンドラインまたはプログラム制御下でIDE からアクティビティを記録する方法を解説します。次に、IDE のシステム プロファイリング パースペクティブを使用して結果データを分析する方法を学びます。最後に、独自のデータをログに挿入する方法について解説します。
パフォーマンス分析
アプリケーション プロファイラとシステム プロファイラを使用し、アプリケーションの動作が遅くなる原因をつきとめる方法を学習します。優先度の逆転のせいでデッドラインを守れなくなっているアプリケーション、あるいは割り込みを無視してしまうアプリケーションを分析する方法を学び、これを応用していきます。
結論
全体的な学習内容をまとめ、さらに詳しい情報を取得する方法について説明します。