2.3.2. C ライブラリのセミホスティングの無効化

スタンドアロンのアプリケーションでは、セミホスティングオペレーションがサポートされない可能性があります。そのため、C ライブラリのセミホスティング関数がアプリケーションにリンクされないようにする必要があります。

セミホスティングを使用する関数が C ライブラリからリンクされないようにするには、シンボル __use_no_semihosting をインポートする必要があります。このインポートは、以下のように、プロジェクトの C ソースファイルまたはアセンブラソースファイルで行うことができます。

セミホスティングを使用する関数がリンクされた状態のままの場合は、リンカによってエラーがレポートされます。

このような関数を特定するには、--verbose オプションを使用してリンクを実行します。その結果、C ライブラリ関数の場合には __I_use_semihosting というストリングが出力されます。以下に例を示します。

Loading member sys_exit.o from c_a__un.l.
              definition:_sys_exit
              reference :__I_use_semihosting

これらの関数(この例では _sys_exit)は、ユーザが実装する必要があります。

Note

アプリケーションコード内で使用されているセミホスティング関数は、リンカによってレポートされません。エラーが発生するのは、セミホスティング関数が C ライブラリからリンクされている場合のみです。

セミホスティングを使用する C ライブラリ関数のリストについては、RealView Compilation Tools v3.0 Compiler and Libraries Guideのセミホスティングに関する章を参照して下さい。

Copyright © 2002-2006 ARM Limited. All rights reserved.ARM DUI 0203GJ
Non-Confidential