7.8.4 ARM C++ ライブラリコードの配置例

スキャッタファイルを使用して C++ ライブラリコードを配置できます。

以下の例は、スキャッタロードが行われる C++ プログラムです。
#include <iostream>

using namespace std;

extern "C" int foo ()
{
  cout << "Hello" << endl;
  return 1;
}
C++ ライブラリコードを配置するには、以下のようにスキャッタファイルを定義します。
LR 0x0
{
    ER1 0x0
    {
        *armlib*(+RO)
    }
    ER2+0
    {
        *cpplib*(+RO)
        *(.init_array)   ; セクション .init_array は明示的に配置する必要があります。
                         ; そうしないと、2 つの領域で共有され、
                         ; リンカは配置先を決定できなくなります。
    }
    ER3+0
    {
        *(+RO)
    }
    ER4+0
    {
        *(+RW,+ZI)
    }
}
install_directory\lib\armlib という名前は、armlib ディレクトリにある ARM C ライブラリファイルを示しています。
install_directory\lib\cpplib という名前は、cpplib ディレクトリにある ARM C++ ライブラリファイルを示しています。
関連する概念
7.8.2 ルート領域へのコードの配置例
7.8.3 ARM C ライブラリコードの配置例
関連する作業
7.8.1 ARM 標準 C および C++ ライブラリのスキャッタファイルへの指定
関連情報
C および C++ ライブラリの命名規則
非機密扱いPDF file icon PDF 版ARM DUI0474LJ
Copyright © 2010-2015 ARM.All rights reserved.