7.3 デバッガでの自動セミホスティングサポートの有効化

デフォルトでは、セミホスティングサポートはデバッガで無効になっています。ただし、ELF シンボル __auto_semihosting が含まれているデバッグ情報をロードすると、デバッガは自動的にサポートされているターゲットでのセミホスティングを有効化します。

C コードでは、 __auto_semihosting という名前で関数を定義することによって、簡単に ELF シンボルを作成できます。この関数がイメージで追加のコードまたはデータを生成しないように、別の関数のエイリアスとしてこれを定義することができます。これにより、デバッグ情報に必須の ELF シンボルが配置されますが、アプリケーションイメージのコードとデータには影響はありません。

ARM® コンパイラ 5.0 以降を使用してアプリケーションイメージを作成する場合は、特殊なセミホスティング ELF シンボルを作成する必要はありません。必要に応じて、リンカによってこのシンボルが自動的に追加されます。

例 7-1 main() へのエイリアスを使用して、特別なセミホスティング ELF シンボルを作成します。

#include <stdio.h>
void __auto_semihosting(void) __attribute__((alias("main"))); 
                                     //mark as alias for main() to declare 
                                     //semihosting ELF symbol in debug information only
int main(void)
{
    printf("Hello world\n");
    return 0;
}
関連する参考文書
4.3 main() への引数の引き渡しについて
7.1 セミホスティングと top of memoryについて
7.2 セミホスティングの使用
7.4 コマンドラインコンソールを使用したセミホスティングメッセージの制御
10.42 [Debug Configurations] - [Arguments]タブ
10.1 [App Console]ビュー
関連情報
DS-5 デバッガコマンド
非機密扱いPDF file icon PDF 版ARM DUI0446VJ
Copyright © 2010-2015 ARM.All rights reserved.