05092024

Last update2016/05/28 14:38

Back 現在地: Home パートナー segger-tools embOS IARプラグイン

embOS IARプラグイン

embOS IARプラグイン

SEGGERのembOS IAR Embedded Workbenchにするためのプラグインは、デバッグセッション中にembOS意識しています。これは、タスクリストなどのいくつかのembOSプリミティブの状態、リソースセマフォ、メールボックス、またはタイマーを検査することができます。

要件

プラグインを使用すると、IARのEmbedded WorkbenchをインストールしembOSを使用してデバッグ対象のバージョンを必要とするembOS IARを使用するために。具体的には:

  • embOSのバージョン3.28以上が必要です。古いembOSのバージョンは異なる内部構造を使用し、プラグインの前の3.28のバージョンで使用が制限さゆえです。
  • C - SPYデバッガのバージョン4.3以上で、IAR Embedded Workbench IDEはが必要です。

    サポートされているCPU

    embOSプラグインembOSでサポートされているリトルエンディアンまたはビッグエンディアンモードで16ビットまたは32ビットのCPUを搭載した作品が、限定されたテストのために、サポートのみ以下のCPU用に付与することができます。

     

    任意のARM7 / ARM9 CPU
    任意のARM Cortex M0 CPU
    任意のARM Cortex M3 CPU
    アトメルAVR / ATMEGA
    ルネサスH8/H8S
    M16Cルネサス
    ルネサスM16C80
    ルネサスM32C
    R32Cルネサス
    ルネサスR8C
    ルネサスRX
    ルネサスSH2A
    ルネサス(NEC)V850 / V850E / V850ES / V850E2
    ルネサス(NEC)78/K0
    TI MSP430 / MSP430X
    • 任意のARM7 / ARM9 CPU
    • 任意のARM Cortex M0 CPU
    • 任意のARM Cortex M3 CPU
    • アトメルAVR / ATMEGA
    • ルネサスH8/H8S
    • M16Cルネサス
    • ルネサスM16C80
    • ルネサスM32C
    • R32Cルネサス
    • ルネサスR8C
    • ルネサスRX
    • ルネサスSH2A
    • ルネサス(NEC)V850 / V850E / V850ES / V850E2
    • ルネサス(NEC)78/K0
    • TI MSP430 / MSP430X

     

    embOSプラグインを取得する方法

    すべてのembOSダウンロードには、最新のembOSのプラグインが含まれています。それが含まれていない場合、IAR Embedded Workbenchに付属しているembOSプラグインを使用してください。

    インストールと設定

    インストール

    それだけでは、プラグインディレクトリ内の特定のIARのCPUにembOSプラグインパッケージの内容をコピーする必要があるため、インストール手順は非常に簡単です。ディレクトリ構造は次のようになります。

    ディレクトリの作成embOSpluginsrtosあなたのIARのインストールディレクトリでの事。このディレクトリにembOSのプラグインのZIPファイルの内容を抽出し、IARワークベンチを再起動します。

    コンフィギュレーション

    デフォルトではembOSプラグインは、デバッグ中にロードされません。各プロジェクトの構成については、明示的にプロジェクトオプションのデバッガのセクションではプラグインを有効にする必要があります。

    これで終了です。embOSプラグインは、現在のデバッグセッションで使用可能であり、メインメニューからアクセスすることができます。

    はじめに

    概要

    デバッグセッション中に、embOSプラグインは、IAR Embedded Workbenchのメインメニューからアクセスできます。デバッグセッションを実行していない場合、embOSメニュー項目が使用可能ないことに注意してください。

    メニューから、embOS関連する情報を提供する個々のウィンドウをアクティブにすることができます。以下のセクションでは、これらの個々のウィンドウについて説明します。入手可能な情報の量は、ビルドがデバッグ中に使用する、embOSに依存する。特定の一部が利用できない場合は、それぞれのメニュー項目はどちらかグレー表示またはウィンドウの列は"N / A"を示しています。

    タスク

    [タスク一覧]ウィンドウには、すべてのembOSタスクが一覧表示されます。それはembOSのタスクリストから直接その情報を取得します。実行中のタスクに緑色の矢印が、これは現在実行中のタスクです。ないタスクが実行されていない場合、CPUがアイドルループを実行しています。このケースでは、緑色の矢印が"アイドル"というラベルの付いた、ウィンドウの一番下の行になります。タスクリストのウィンドウの一番下の行は常に"アイドル"というラベルが付いています。それは実際にタスクを表していますが、ないタスクが実行の準備ができていない場合に実行されるアイドルループ、していません。

    個々の列は、以下のとおりです。

    カラム説明
    * 現在アクティブなembOSのタスクの緑色の矢印をポイントします。
    PRIO タスクの優先度。
    ID タスクを一意に識別するタスク制御ブロックのアドレス。
    の名前 利用可能な場合、タスク名がここに表示されている。
    ステータス 短いテキストとしてタスクの状態。
    タイムアウト タスクが遅れた場合は、この列には、タイムアウト値を示し、括弧内の遅延が終了する時点。
    スタック情報 利用可能な場合、この列には、使用するスタック領域の量、および利用可能なスタック領域だけでなく、現在のスタックの底のポインタの値を示しています。
    カウント実行 タスクのアクティブ化の数。
    タイムスライス ラウンドロビンスケジューリングが使用可能な場合、この列には、残りのタイムスライスとタイムスライスのリロードの数の数を示しています。
    イベント タスクのイベントマスク。

    タスクの感度

    embOSのタスク感度機能を使用するには、embOSソフトウェアのバージョン3.62以降およびIARは、ワークベンチv5.20のまたはそれ以上の組み込みが必要です。
    現在のタスクの感度機能は、以下のCPUで利用可能です:

     

     

    • 任意のARM7 / ARM9 / ARM11とXScaleのコア
    • 任意のARM Cortex M3 CPU
    • M16Cルネサス
    • R32Cルネサス
    • ルネサスRX
    • ルネサスSH2A

     

     



    ソースコードウィンドウ、[逆アセンブル]ウィンドウ、レジスタウィンドウ、およびC - SPYデバッガの[Call Stack]ウィンドウには、embOS C - SPYプラグインのバージョン3.62以降の敏感なタスクです。これは、コード内の位置、汎用レジスタと、選択したタスクのコールスタックを表示することを意味します。デフォルトでは、選択されたタスクは、常にユーザーが期待するデバッガの正常な動作です実行中のタスク、です。あなたは、ウィンドウ内の対応する行をダブルクリックして、特定のスレッドを調べることができます。選択したタスクは黄色でunderlayedされます。C - SPYデバッガは呼び出しスタックおよび中断されたタスクの保存状態の汎用レジスタを再構築します。
    たびにCPUが起動されるか、タスクウィンドウのアイドル行がダブルクリックされたとき、選択されたタスクがこのデフォルトに戻されます。

    中断されたタスクの状態

    タスク(協調的タスクスイッチによって中断された)ブロックされた
    ようなOS_Delay()またはOS_Wait_ ...().などのブロッキング関数を呼び出すことによって、自発的にアップ実行を与えているタスクを、
    このケースでは、スクラッチを保存するためにOSは必要ありません。レジスタ(ARM R0 - R3、R12の場合)。レジスタウィンドウは、これらのレジスタの内容のため"----------"が表示されます。

    最初の起動を待っているタスクは、
    基本的にブロックされたタスクと同じカテゴリに分類されるこれらの、コールスタックとレジスタは以下のスクリーンショットのようになります。同様に、一時的なレジスタは不明である。コールスタックは、単一のエントリOS_StartTaskを示しています。実行カウントは0です。

    タスクの中断
    通常より高い優先順位が準備完了にならないと、タスクによって、プリエンプトされたタスクが中断する。この場合、OSはスクラッチレジスタ(ARM R0 - R3、R12の場合)も含め、すべてのレジスタを保存する。レジスタウィンドウには、スクラッチレジスタを含むすべてのレジスタの値を示します。

    メールボックス

    メールボックスは、リアルタイムオペレーティングシステムによって管理されるバッファです。バッファは、通常のバッファと同じように動作するに何かを(メッセージと呼ばれる)入れて、後でそれを取り出すことができます。このウィンドウには、タスクなどを待って、メールボックスを表示し、メッセージの数に関する情報を提供します。

     

    カラム説明
    ID メールボックスのアドレス。
    メッセージ メールボックス内のメッセージの数を表示し、メールボックスのようなメッセージの最大数は保持することができます。
    メッセージのサイズ 個々のメッセージのサイズ。
    pBufferに メッセージバッファのアドレス。
    待機中のタスク 自分のアドレスと名前のメールボックス、で待機しているタスクのリストが表示されます。

     

    タイマ

    ソフトウェアタイマーは、指定された遅延後にユーザー指定のルーチンを呼び出すオブジェクトです。このウィンドウは、アクティブなソフトウェアのタイマーに関する情報を提供します。

     

    カラム説明
    ID タイマーのアドレス。
    フック タイムアウト後に呼び出される関数(のアドレスと名前)。
    タイム 時間遅延との時点では、タイマーが待機を終了する。
    期間 タイマーが実行される期間。
    アクティブ タイマーがアクティブかどうかを示します。

     

    リソースセマフォ

    リソースセマフォは、リソースの同時使用に起因する競合を避けることによって、リソースを管理するために使用されます。このウィンドウには、利用可能なリソースに関する情報を提供します。

     

    カラム説明
    ID リソースセマフォのアドレス。
    所有者 所有しているタスクのアドレスと名前。
    カウンタを使用してください セマフォの使用回数をカウントします。
    待機中のタスク セマフォで待っているタスク(アドレスと名前)を一覧表示します。

     

    システム情報

    実行embOS検査のために利用可能なシステム変数の数が含まれています。このウィンドウでは、最も重要なものを示しています。

    設定

    安全を期すために、embOSプラグインは、ターゲットのメモリに偽の値の場合には無限の要求を避けるために、ターゲットから取得した情報の量について一定の制限を課します。このダイアログは、タスク名が32文字を使用すると、32に文字列の最大長を設定すること、またはそれらがデフォルトよりも長い場合は、その値を増加させる可能性があることがなくなった場合には一定の範囲で、例えば、これらの制限を微調整することができます。

    次のブレークポイントにヒットしたときなど、設定を変更し、[OK]ボタンを押した後、変更内容が直ちに適用され、次のウィンドウを更新した後に顕著になるはず。ただし、設定はプラグインのリロード時にデフォルトに復元されます。