ARM® コンパイラ armlink ユーザガイド

バージョン 6.01


List of Topics

表記規則とフィードバック
リンカの概要
リンカについて
リンカのコマンドライン構文
リンカコマンドラインオプションの目的別一覧
リンカで使用できる入力
リンカからの出力
実行可能イメージを作成するときにリンカによって実行される処理
armlink でサポートされているリンクモデル
リンクモデルの概要
ベアメタルリンクモデル
部分リンクモデル
ベースプラットフォームアプリケーションバイナリインタフェース(BPABI)リンクモデル
ベースプラットフォームリンクモデル
イメージの構造と生成
イメージの構造
入力セクション、出力セクション、領域、およびプログラムセグメント
イメージのロードビューと実行ビュー
リンカでイメージのメモリマップを指定する方法
単純イメージのタイプ
タイプ 1 のイメージ:1 つのロード領域と連続する実行領域
タイプ 2 のイメージ:1 つのロード領域と連続しない実行領域
タイプ 3 のイメージ:2 つのロード領域と連続しない実行領域
イメージのエントリポイント
初期エントリポイントの指定について
リンカによるセクションの配置
FIRST 属性と LAST 属性を使用したセクションの配置
リンカによるセクションの境界調整
デマンドページング
T32 コードを含む実行領域の順序付けについて
ベニアの概要
ベニアの共有
ベニアのタイプ
位置非依存から絶対ベニアへの生成
スキャッタロード時のベニアの再利用
弱参照と定義について
リンカによるライブラリの検索、選択、およびスキャンの実行方法
リンカによる ARM 標準ライブラリの検索方法の制御
リンク時のユーザライブラリの指定
リンカによる参照の解決方法
リンカにおける厳格なオプションファミリの使用
リンカの最適化の使用
共通デバッグセクションの削除
共通グループまたは共通セクションの削除
未使用セクションの削除
未使用仮想関数の削除
RW データ圧縮を使用した最適化
リンカによるコンプレッサの選択方法
リンカによって使用される圧縮アルゴリズムのオーバーライド
圧縮の適用方法
RW データ圧縮の使用
リンカによる関数のインライン化
関数のインライン化に影響を与える要因
NOP に最適化される分岐の処理
末尾呼び出しセクションの再順序付けについて
末尾呼び出しセクションの再順序付けに関する制限
コメントセクションのマージについて
イメージに関する情報のリンク時の取得
イメージに関する情報を取得するためのリンカオプション
一部のリンクエラーの原因の特定
--info リンカオプションの使用例
リンク時のシンボルの場所を調べる方法
armlink によるシンボルのアクセスと管理
マッピングシンボルについて
リンカ定義シンボルへのアクセス
領域関連シンボル
Image$$ 実行領域シンボル
Load$$ 実行領域シンボル
Load$$LR$$ ロード領域シンボル
スキャッタロード時以外の領域名の値
リンカ定義シンボルおよびスキャッタファイル
C および C++ でのリンカ定義シンボルのインポート
ARM アセンブリ言語でのリンカ定義シンボルのインポート
セクション関連シンボル
イメージシンボル
入力セクションのシンボル
別のイメージに含まれているシンボルへのアクセス
symdefs ファイルの作成
グローバルシンボルのサブセットの出力
symdefs ファイルの読み出し
symdefs ファイルの形式
ステアリングファイルとは
リンカコマンドラインでのステアリングファイルの指定
ステアリングファイルコマンドの概要
ステアリングファイルの形式
ステアリングファイルを使用したグローバルシンボルの非表示および名前の変更
$Super$$ と $Sub$$ を使用したシンボル定義へのパッチの適用
スキャッタロード機能
スキャッタロードの概要
スキャッタロードが使用される状況
スキャッタロード時に定義されないリンカ定義シンボル
スキャッタファイルを使用したスタックとヒープの指定
スキャッタロードのコマンドラインオプション
単純なメモリマップを使用したスキャッタロードイメージ
複雑なメモリマップがあるスキャッタロードイメージ
ルート領域とは
ルート実行領域の作成
FIXED 属性を使用したルート領域の作成
特定アドレスへの関数とデータの配置方法
スキャッタロードを使用せずに特定のアドレスに変数を配置する
スキャッタロードを使用して名前付きセクションに変数を配置する
スキャッタロードを使用して特定のアドレスに変数を配置する
スキャッタロードを使用した名前付きセクションの明示的な配置
.ANY モジュールセレクタによる未割り当てセクションの配置
.ANY セクションの優先順位付け
複数の .ANY セレクタの入力セクションの配置を制御するためのコマンドラインオプション
未割り当てセクションの配置に使用できる最大サイズの指定
.ANY セクションの配置アルゴリズムの使用例
領域の割り当て、セレクタ、および優先度の動作を示す next_fit アルゴリズムの例
.ANY セクションのソートアルゴリズムの使用例
スキャッタロードの記述におけるベニア入力セクションの選択
__attribute__((section("name")) を使用したコードとデータの配置
__attribute__((section(".ARM.__at_address"))) を使用した特定のアドレスへのセクションの配置
__at セクションの配置に関する制限
__at セクションの自動配置
__at セクションの手動配置
__at を使用したフラッシュメモリでのキーの配置
オーバーレイを使用したセクションの配置
ARM C および C++ ライブラリコードの配置について
ルート領域へのコードの配置例
ARM C ライブラリコードの配置例
ARM C++ ライブラリコードの配置例
空き領域の予約
スキャッタファイルでのプリプロセッシングコマンドの使用
ページ境界での領域の作成について
実行領域と入力セクションのオーバーアライメント
スキャッタファイル内の式の評価
スキャッタファイル内の式の評価を使用したパディングの回避
等価なスキャッタロード記述を使用した単純イメージの生成
タイプ 1 のイメージ:1 つのロード領域と連続する実行領域
タイプ 2 のイメージ:1 つのロード領域と連続しない実行領域
タイプ 3 のイメージ:2 つのロード領域と連続しない実行領域
スキャッタファイルを使用した ELF のマッピング
ベースプラットフォームアプリケーションバイナリインタフェースのサポート
ベースプラットフォームアプリケーションバイナリインタフェース(BPABI)について
BPABI がサポートしているプラットフォーム
すべての BPABI モデルに共通する概念
BPABI モデルのシンボルのインポートとエクスポートについて
BPABI モデルのシンボルの可視性
BPABI モデルの自動的なインポートとエクスポート
BPABI モデルの手動のインポートとエクスポート
BPABI モデルのシンボルバージョン管理
BPABI モデルの RW 圧縮
ベアメタルモデルと DLL 類似モデルのリンカオプション
ベアメタルメモリモデルと DLL 類似メモリモデル
BPABI DLL 類似モデルでの必須のシンボルバージョン管理
BPABI DLL 類似モデルにおけるダイナミックシンボルテーブルの自動規則
BPABI DLL 類似モデルのアドレシングモード
BPABI DLL 類似モデルでの C++ の初期化
シンボルバージョン管理について
シンボルバージョン管理のスクリプトファイル
バージョン管理シンボルの作成例
組み込みシンボルについて
暗黙のシンボルバージョン管理を有効にするリンカオプション
BPABI DLL 類似モデルに関連するリンカコマンドラインオプション
ベースプラットフォームリンクモデルの機能
ベースプラットフォームモデルでのスキャッタファイルの使用に関する制限
ベースプラットフォームリンクモデルのスキャッタファイルの例
ベースプラットフォームモデルを使用した PLT シーケンスの配置

著作権

™ または ® のマークが付いた言葉およびロゴは、この著作権情報で別段に規定されている場合を除き、ARM® の EU またはその他の国における登録商標および商標です。 本書に記載されている他の製品名は、各社の所有する商標です。

本書に記載されている情報の全部または一部、ならびに本書で紹介する製品は、著作権所有者の文書による事前の許可を得ない限り、転用・複製することを禁じます。

本書に記載されている製品は、今後も継続的に開発・改良の対象となります。 本書に含まれる製品およびその利用方法についての情報は、ARM が利用者の利益のために提供するものです。 したがって当社では、製品の市販性または利用の適切性を含め、暗示的・明示的に関係なく一切の責任を負いません。

本書は、本製品の利用者をサポートすることだけを目的としています。 本書に記載されている情報の使用、情報の誤りまたは省略、あるいは本製品の誤使用によって発生したいかなる損失・損傷についても、ARM は一切責任を負いません。

ARM という用語が使用されている場合、"ARM または必要に応じてその子会社" を指します。

機密保持ステータス

本書は非機密扱いであり、本書を使用、複製、および開示する権利は、ARM および ARM が本書を提供した当事者との間で締結した契約の条項に基づいたライセンスの制限により異なります。

製品ステータス

本書の情報は最終版であり、開発済み製品に対応しています。

Revision History
Revision A2014 年 3 月 14 日ARM コンパイラ v6.00 リリース
Revision B2014 年 12 月 15 日ARM コンパイラ v6.01 リリース
Copyright © 2014 ARM. All rights reserved.ARM DUI 0803BJ
Non-ConfidentialID121814