1.3.149 set semihosting

デバッガのセミホスティング設定を制御します。セミホスティングは、アプリケーションコードからデバッガを実行するホストワークステーションへの入出力要求の通信に使用します。

注:

これらの設定は、ターゲットがセミホスティングをサポートしていて、ターゲットを実行中に変更できない場合のみ適用されます。

構文

set semihosting option

各項目には以下の意味があります。

option

以下の追加のオプションを指定します。

args 引数

argv パラメータを使用してアプリケーションの main() 関数に渡されるコマンドライン引数を指定します。イメージの名前は、常に暗黙的に argv[0] に渡されるので、必ずしも引数として渡す必要はありません。

file-base directory

アプリケーションによって開かれたファイルの基準位置となるベースディレクトリを指定します。

stderr "stderr"|filename

セミホスティング操作で stderr を書き込むコンソールストリームまたはファイルを指定します。

stdin "stdin"|filename

セミホスティング操作で stdin を読み出すコンソールストリームまたはファイルを指定します。

stdout "stdout"|filename

セミホスティング操作で stdout を書き込むコンソールストリームまたはファイルを指定します。

top-of-memory address

メモリの先頭を定義します。

stack_heap_options

きめの細かい制御を指定して、スタックとヒープのベースアドレスと制限を手動で設定します。stack_heap_options を使用すると、これらの設定が top-of-memory に優先するため、以下のすべてのオプションを指定する必要があります。

stack-base address

スタックのベースアドレス

stack-limit address

スタックの終了アドレス

heap-base address

ヒープのベースアドレス

heap-limit address

ヒープの終了アドレス

enabled
auto

イメージがロードされたとき、適切であれば、セミホスティング操作が自動的に有効になります。これがデフォルトです。

off

すべてのセミホスティング操作を無効にします。

on

すべてのセミホスティング操作を有効にします。

セミホスティングを有効にする前に、セミホスティングのアドレスの設定が必要になる場合もあります。以下に例を示します。

set semihosting top-of-memory address
set semihosting enabled on
vector

ターゲットで使用するセミホスティング トラップ メカニズムを指定することができます。

ADDR trap_address

ベクタ キャッチ用のブレークポイントのアドレスを指定します。このコマンドは、指定したアドレスでブレークポイントを設定するようにデバッガに指示します。ブレークポイントに達すると、デバッガはセミホスティング操作の実行を制御します。

SVC

セミホスティング操作のトラップには SVC ベクタ キャッチを使用します。

未定義

セミホスティング操作のトラップには UNDEF ベクタ キャッチを使用します。

SVC+UNDEF

セミホスティング操作のトラップには SVC+UNDEF ベクタ キャッチを使用します。

注:

  • M プロファイル ターゲットでは、このコマンドはエラーを生成します。これは、セミホスティングがこれらのターゲット上のソフトウェア ブレークポイント (BKPT) のコンパイルを使用して実装されるためです。

  • ARMv7-A または R プロファイル、および従来の ARM® ターゲットを使用する場合、SVCUNDEFSVC+UNDEF、または ADDR trap_address オプションを使用してベクタ キャッチ操作を切り替えることができます。

  • ARMv8-A ターゲットでは、ADDR trap_address を使用して命令ブレークポイント ベースのセミホスティングを可能にします。

例 1-152 例

set semihosting args 500                  # コマンドライン引数を 500 に設定
set semihosting stdout output.log         # stdout を output.log に書き込み
set semihosting enabled on                # セミホスティング操作を有効化
set semihosting vector svc                # セミホスティング ベクタ キャッチを SVC に設定
set semihosting vector ADDR 0x800         # セミホスティング ベクタ キャッチを 0x00000800 に設定
非機密扱いPDF file icon PDF 版ARM DUI0452ZJ
Copyright © 2010–2016 ARM.All rights reserved.