2.3.2. セミホステッド環境向けのアプリケーションの作成

デバッグ用にセミホステッド環境で実行するアプリケーションを開発する場合は、ARM または Thumb セミホスティングをサポートし、十分なメモリ量のある実行環境を用意する必要があります。

この実行環境は、以下のいずれかの方法で用意することができます。

セミホスティングに必要な関数のリストについては、セミホスティング依存関数の概要を参照して下さい。

ライブラリのデフォルトのセミホスティング機能を使用している場合、新しい関数を記述したり、ファイルをインクルードしたりする必要はありません。

RVISS または ISSM の使用

RVISS および ISSM は、セミホスティング機能をサポートしています。また、ライブラリの使用を可能にするためのメモリマップが用意されています。 RVISS および ISSM はホストマシンのメモリを利用します。通常、アプリケーションの作成では、この程度のメモリ量で十分です。

RealView ICE の使用

ARM デバッグエージェントはセミホスティング機能をサポートしていますが、ライブラリが使用するメモリマップは、デバッグ対象となるハードウェアに合わせてカスタマイズが必要になる場合があります。 ただし、C ライブラリで使用されるメモリマップは簡単にカスタマイズできます。 詳細については、ランタイムメモリモデルのカスタマイズを参照して下さい。

セミホステッド環境における再実装関数の使用

セミホスティング機能を新しい入出力関数と組み合わせて使用することもできます。 例えば、セミホステッド関数の実装だけでなく、fputc() を実装して UART などのハードウェアに直接出力することができます。 個々の関数の再実装方法については、非セミホスティング環境向けのアプリケーションの作成を参照して下さい。

セミホステッドアプリケーションのスタンドアロンアプリケーションへの変換

セミホステッドデバッグ環境でアプリケーションを開発した後、以下のいずれかの方法で、そのアプリケーションを非ホステッド環境に移動できます。

  • セミホステッド関数に対するすべての呼び出しを削除する方法。 セミホスティングの無効化を参照して下さい。

  • fputc() など、低レベル関数を再実装する方法。 非セミホスティング環境向けのアプリケーションの作成を参照して下さい。 すべてのセミホステッド関数を再実装する必要はありませんが、 アプリケーションで使用するセミホステッド関数は再実装する必要があります。

  • すべてのセミホスティング呼び出し用のハンドラを実装する方法。

Copyright © 2007 ARM Limited. All rights reserved.ARM DUI 0349AJ
Non-Confidential