9.2MB - Spansion

本ドキュメントはCypress (サイプレス) 製品に関する情報が記載されております。
FR ファミリ
32 ビット・マイクロコントローラ
SOFTUNE® リンケージキットマニュアル V6 対応
Support Soft Manual
Publication Number CM71-00327
MB90880ÉVÉäÅ[ÉY Cover Sheet
Revision 9.0
Issue Date December 1, 2014
FR ファミリ
32 ビット・マイクロコントローラ
SOFTUNE® リンケージキットマニュアル V6 対応
Support Soft Manual
MB90880ÉVÉäÅ[ÉY Cover Sheet
Support
Soft
Ma nual
はじめに
■ 本書の目的と対象読者
本書は , Spansion SOFTUNE リンケージキットの機能および使用方法を説明したもので
す。
本書は , FR ファミリマイクロプロセッサを使用した応用プログラムを開発する技術者
を対象にしています。
リンケージキットはリンカ , ライブラリアン , オブジェクト形式コンバータの 3 種類の
プログラムで構成されています。
■ 商標
FR は Spansion Inc. の製品です。
SOFTUNE は , Spansion LLC の登録商標です。
Microsoft, Windows は , 米国 Microsoft Corporation の米国およびその他の国における登
録商標です。
本書に記載されている社名および製品名などの固有名詞は , 各社の商標または登録商
標です。
December 1, 2014, CM71-00327-9
i
Su pp or t
So ft
Manu al
■ 本書の全体構成
本書は , 以下に示す 4 部構成となっています。
第 1 部 リンケージキット編
リンケージキットに含まれるツールの概要と , ツール全体に共通する項目について
説明します。
第 2 部 リンカ編
リンカの仕様 , オプション , および出力リストなどについて説明します。
第 3 部 ライブラリアン編
ライブラリアンの仕様 , オプション , 出力リストなどについて説明します。
第 4 部 オブジェクト形式コンバータ編
オブジェクト形式コンバータの種類 , オプション一覧 , 機能説明 , オブジェクト形式
の変換について説明します。
付録
付録では , リンケージキットのエラーメッセージ , HEX フォーマット , および S
フォーマット形式などを記載しています。
ii
CM71-00327-9, December 1, 2014
Support
Soft
Ma nual
目次
第1部
リンケージキット編 .................................................................................. 1
第1章
リンケージキットの仕様 .......................................................................... 3
1.1 リンケージキットの概要 ...................................................................................................... 4
1.2 起動方法 ............................................................................................................................... 5
1.3 強制終了 ............................................................................................................................... 6
1.4 終了コード ............................................................................................................................ 7
1.5 起動メッセージ .................................................................................................................... 8
1.6 終了メッセージ .................................................................................................................... 9
1.7 ヘルプメッセージ ............................................................................................................... 10
1.8 識別子 ................................................................................................................................. 11
1.9 ファイル名規則 .................................................................................................................. 12
1.10 環境変数 ............................................................................................................................. 13
1.10.1
TMP ( ワークディレクトリ ) .................................................................................... 14
1.10.2
FELANG ( メッセージ言語 ) ..................................................................................... 15
1.10.3
FETOOL( インストールディレクトリ ) .................................................................... 16
1.10.4
LIB911( ライブラリファイル検索ディレクトリ ) ..................................................... 17
1.10.5
OPT911( デフォルトオプションファイル格納ディレクトリ ) ................................. 18
1.10.6
OPT( デフォルトオプションファイル格納ディレクトリ ) ....................................... 19
第2章
2.1
2.2
2.3
2.4
2.5
第3章
オプション ............................................................................................. 21
オプション ..........................................................................................................................
オプションパラメータでの数値表現 ..................................................................................
オプション指定時の注意と評価 .........................................................................................
包含 / 相反関係にあるオプションの指定 ............................................................................
コマンドラインの指定例 ....................................................................................................
共通オプション ...................................................................................... 27
3.1 共通オプション一覧 ...........................................................................................................
3.2 共通オプション詳細 ...........................................................................................................
3.2.1
デフォルトオプションファイル抑止指定 (-Xdof) ....................................................
3.2.2
オプションファイルからの読込み指定 (-f) ..............................................................
3.2.3
ヘルプメッセージの表示 (-help) ..............................................................................
3.2.4
版数 / メッセージ出力指定 (-V) ...............................................................................
3.2.5
版数 / メッセージ出力抑止 (-XV) .............................................................................
3.2.6
終了メッセージ表示指定 (-cmsg) ............................................................................
3.2.7
終了メッセージ表示抑止指定 (-Xcmsg) ..................................................................
3.2.8
ワーニング発生時の終了コードを 1 にする指定 (-cwno) .......................................
3.2.9
ワーニング発生時の終了コードを 0 にする指定 (-Xcwno) ....................................
第4章
4.1
4.2
4.3
22
23
24
25
26
28
29
30
31
33
34
35
36
37
38
39
オプションファイル ............................................................................... 41
オプションファイルの概要 ................................................................................................. 42
オプションファイル中での継続指定 .................................................................................. 43
オプションファイル中のコメント指定 ............................................................................... 44
December 1, 2014, CM71-00327-9
iii
Su pp or t
4.4
4.5
So ft
Manu al
オプションファイルの記述例 ............................................................................................. 45
デフォルトオプションファイル ......................................................................................... 46
第2部
リンカ編 .................................................................................................. 49
第5章
リンカの仕様 .......................................................................................... 51
5.1 リンカの概要 ......................................................................................................................
5.2 リンカの機能 ......................................................................................................................
5.2.1
入出力ファイル / メッセージに関する制御 ..............................................................
5.2.2
セクションの結合 / 配置に関する制御 .....................................................................
5.2.3
ライブラリの検索に関する制御 ...............................................................................
5.2.4
エントリアドレス / シンボル値の設定 .....................................................................
5.3 セクションの種類 ...............................................................................................................
5.4 セクションの結合 ...............................................................................................................
5.5 セクションの配置 ...............................................................................................................
5.5.1
セクションの結合順序が指定されなかった場合の配置例 ........................................
5.5.2
セクションの結合順序が指定された場合の配置例 ..................................................
5.5.3
セクショングループの指定がある場合の配置例 ......................................................
5.6 セクションの自動配置 ........................................................................................................
5.6.1
-AL 1 が指定された場合のセクションの自動配置 ....................................................
5.6.2
-AL 2 が指定された場合のセクションの自動配置 ....................................................
5.7 ライブラリの検索 ...............................................................................................................
5.7.1
ライブラリファイルが 1 つの場合の検索例 1 .........................................................
5.7.2
ライブラリファイルが 1 つの場合の検索例 2 .........................................................
5.7.3
ライブラリファイルが 1 つの場合の検索例 3 .........................................................
5.7.4
ライブラリファイルが複数の場合の検索例 1 ..........................................................
5.7.5
ライブラリファイルが複数の場合の検索例 2 ..........................................................
5.7.6
ライブラリファイルが個別に指定された場合の処理 ...............................................
5.8 ROM/RAM 領域 ..................................................................................................................
5.9 ROM → RAM 転送セクション ............................................................................................
5.10 CPU 情報ファイル ..............................................................................................................
5.11 SOFTUNE V3/V5 ツールで作成したオブジェクトの入力 ..................................................
5.12 リンカでのオブジェクト混在 .............................................................................................
5.13 未使用関数削除 ..................................................................................................................
第6章
52
53
55
56
57
58
59
60
61
62
63
64
65
66
68
71
72
74
75
76
78
80
82
83
86
87
88
91
リンカのオプション ............................................................................... 93
6.1 リンカのオプション一覧 .................................................................................................... 94
6.2 リンカのオプション詳細 .................................................................................................... 97
6.2.1
出力ロードモジュールファイル名指定 (-o) ............................................................. 98
6.2.2
デバッグ情報の出力指定 (-g) .................................................................................. 99
6.2.3
デバッグ情報の削除指定 (-Xg) .............................................................................. 100
6.2.4
絶対形式ロードモジュールの出力指定 (-a) ........................................................... 101
6.2.5
相対形式ロードモジュールの出力指定 (-r) ............................................................ 102
6.2.6
パディングデータ指定 (-p) .................................................................................... 103
6.2.7
ROM 領域のフィル指定 (-fill) .................................................................................. 104
6.2.8
外部シンボル情報出力指定 (-symtab) ................................................................... 106
6.2.9
外部シンボル情報出力抑止指定 (-Xsymtab) .......................................................... 107
6.2.10
マップリストファイル名の指定 (-m) ..................................................................... 108
6.2.11
マップリスト出力の抑止指定 (-Xm) ...................................................................... 109
iv
CM71-00327-9, December 1, 2014
Support
6.2.12
6.2.13
6.2.14
6.2.15
6.2.16
6.2.17
6.2.18
6.2.19
6.2.20
6.2.21
6.2.22
6.2.23
6.2.24
6.2.25
6.2.26
6.2.27
6.2.28
6.2.29
6.2.30
6.2.31
6.2.32
6.2.33
6.2.34
6.2.35
6.2.36
6.2.37
6.2.38
6.2.39
6.2.40
6.2.41
6.2.42
6.2.43
6.2.44
6.2.45
6.2.46
6.2.47
6.2.48
6.2.49
6.2.50
6.2.51
6.2.52
6.2.53
6.2.54
6.2.55
6.2.56
6.2.57
6.2.58
6.2.59
6.2.60
Soft
Ma nual
リスト表示の名前の省略解除 (-dt) ........................................................................
メモリ使用情報リストの出力指定 (-mmi) .............................................................
リスト表示のデマングルシンボル名の出力抑止指定 (-Xdemangle) ......................
リスト表示のデマングルシンボル名の出力指定 (-demangle) ................................
リスト行の桁数指定 (-pw) .....................................................................................
リスト 1 ページの行数指定 (-pl) ............................................................................
ROM 領域のチェックサム指定 (-cs) .......................................................................
警告メッセージ出力レベルの指定 (-w) .................................................................
ROM 領域の指定 (-ro) ...........................................................................................
RAM 領域の指定 (-ra) ............................................................................................
セクション配置順 / アドレスの指定 (-sc) ..............................................................
セクショングループの指定 (-gr) ............................................................................
パックリンク指定 (-pk) .........................................................................................
自動配置指定 (-AL) ................................................................................................
検索ライブラリファイルの指定 (-l) .......................................................................
ライブラリ検索パスの指定 (-L) .............................................................................
シンボル個別のライブラリの指定 (-el) .................................................................
ライブラリ検索の抑止指定 (-nl) ............................................................................
デフォルトライブラリ検索の抑止指定 (-nd) .........................................................
未使用関数削除指定 (-lnkopt) .................................................................................
C/C++ のプログラム実行開始シンボル指定 (-entryc) ............................................
削除対象外関数指定 (-Xdel) ...................................................................................
未使用関数削除情報ファイル格納パス指定 (-ufiin) ................................................
エントリアドレスの指定 (-e) ................................................................................
外部シンボル値の仮設定 (-df) ...............................................................................
ターゲット CPU 指定 (-cpu) ..................................................................................
CPU 情報ファイル指定 (-cif) .................................................................................
オブジェクト混在チェックレベル指定 (-omcl) .....................................................
デバッグ情報存在チェック抑止指定 (-NCI0302LIB) .............................................
内蔵 ROM/RAM 領域の自動設定 (-set_rora) .........................................................
内蔵 ROM/RAM 領域自動設定の抑止指定 (-Xset_rora) ........................................
ユーザ指定領域のチェック指定 (-check_rora) ......................................................
ユーザ指定領域のチェック抑止指定 (-Xcheck_rora) ............................................
セクション配置領域チェック指定 (-check_locate) ...............................................
セクション配置領域チェック抑止指定 (-Xcheck_locate) ....................................
サイズ 0 のセクション配置チェック指定 (-check_size0_sec) ...............................
サイズ 0 のセクション配置チェック抑止指定 (-Xcheck_size0_sec) .....................
プレリンク処理の抑止指定 (-XPLNK) ....................................................................
相対アセンブルリスト入力ディレクトリ指定 (-alin) ...........................................
絶対形式アセンブルリスト出力ディレクトリ指定 (-alout) ..................................
絶対形式アセンブルリスト出力指定 (-als) ............................................................
絶対形式アセンブルリスト出力モジュール指定 (-alsf) ........................................
絶対形式アセンブルリスト出力抑止指定 (-Xals) ..................................................
ROM/RAM, ARRAY リスト出力指定 (-alr) ............................................................
ROM/RAM, ARRAY リスト出力モジュール指定 (-alrf) ..........................................
ROM/RAM, ARRAY リスト出力抑止指定 (-Xalr) ..................................................
ROM/RAM, ARRAY リストのシンボルとアドレスの表示位置指定 (-na, -an) ......
外部シンボル相互参照情報リスト出力指定 (-xl) ...................................................
外部シンボル相互参照情報リストファイル名の指定 (-xlf) ...................................
December 1, 2014, CM71-00327-9
110
111
112
113
114
115
116
123
124
125
126
128
129
130
132
133
134
135
136
137
138
139
140
141
142
143
144
145
147
148
149
150
152
153
156
157
159
160
161
162
163
164
165
166
167
168
169
171
172
v
Su pp or t
6.2.61
6.2.62
6.2.63
6.2.64
6.2.65
6.2.66
6.2.67
第7章
So ft
Manu al
外部シンボル相互参照情報リスト出力抑止指定 (-Xxl) ........................................
ローカルシンボル情報リスト出力指定 (-sl) ..........................................................
ローカルシンボル情報リストファイル名の指定 (-slf) ..........................................
ローカルシンボル情報リスト出力抑止指定 (-Xsl) .................................................
セクション詳細マップリスト出力指定 (-ml) .........................................................
セクション詳細マップリストファイル名の指定 (-mlf) .........................................
セクション詳細マップリスト出力抑止指定 (-Xml) ...............................................
リンカの出力リストファイル .............................................................. 181
7.1 リンカの出力するリストファイルの種類 .........................................................................
7.2 リンクリストファイル ......................................................................................................
7.2.1
コントロールリスト ...............................................................................................
7.2.2
マップリスト ..........................................................................................................
7.2.3
メモリ使用情報リスト ...........................................................................................
7.2.4
シンボルリスト ......................................................................................................
7.3 絶対形式アセンブルリストファイル ................................................................................
7.3.1
ヘッダ , インフォメーションリスト .......................................................................
7.3.2
ROM/RAM, ARRAY リスト ....................................................................................
7.3.3
アセンブルソースリスト ........................................................................................
7.3.4
セクション情報リスト ...........................................................................................
7.3.5
クロスリファレンスリスト ....................................................................................
7.4 外部シンボル相互参照情報リストファイル .....................................................................
7.5 ローカルシンボル情報リストファイル .............................................................................
7.6 セクション配置詳細情報リストファイル .........................................................................
第8章
8.1
8.2
182
183
184
186
188
191
193
195
196
199
201
203
205
207
209
リンカの制限事項および Q&A ............................................................. 211
リンカの制限事項 ............................................................................................................. 212
リンカの使用上の Q&A .................................................................................................... 213
第3部
ライブラリアン編 ................................................................................. 215
第9章
ライブラリアンの仕様 ......................................................................... 217
9.1
9.2
9.3
9.4
9.5
9.6
9.7
9.8
9.9
ライブラリアンの機能 ......................................................................................................
ライブラリアンの機能分類 ...............................................................................................
ライブラリファイルの作成編集 .......................................................................................
ライブラリファイル内のモジュール抽出 .........................................................................
ライブラリのデバッグ情報の削除 ....................................................................................
ライブラリファイルの内容チェックと表示 .....................................................................
SOFTUNE V3/V5 言語ツールで作成されたオブジェクト ................................................
SOFTUNE V3/V5 言語ツールで作成されたライブラリ ...................................................
ライブラリアンでのオブジェクト混在 .............................................................................
第 10 章
218
219
220
222
223
224
225
226
227
ライブラリアンのオプション .............................................................. 231
10.1 ライブラリアンのオプション一覧 ....................................................................................
10.2 ライブラリアンのオプション詳細 ....................................................................................
10.2.1
モジュールの追加 ( 登録 ) (-a) ...............................................................................
10.2.2
モジュールの置換 ( 登録 ) (-r) ................................................................................
10.2.3
モジュールの削除 (-d) ...........................................................................................
10.2.4
モジュールの抽出 (-x) ...........................................................................................
vi
173
174
175
176
177
178
179
232
233
234
235
236
237
CM71-00327-9, December 1, 2014
Support
10.2.5
10.2.6
10.2.7
10.2.8
10.2.9
10.2.10
10.2.11
10.2.12
10.2.13
10.2.14
10.2.15
10.2.16
10.2.17
10.2.18
第 11 章
11.1
11.2
11.3
11.4
Soft
Ma nual
リストファイルの出力指定 (-m) ............................................................................
リストファイルの出力抑止指定 (-Xm) ..................................................................
リストファイルの詳細情報の出力指定 (-dt) ..........................................................
リスト 1 ページの行数指定 (-pl) ............................................................................
リスト 1 行の桁数指定 (-pw) .................................................................................
バックアップファイルの作成 (-b) .........................................................................
バックアップファイルの作成抑止 (-Xb) ................................................................
ライブラリファイルの内容検査 (-c) ......................................................................
ファイル内容の最適化 (-O) ...................................................................................
デバッグ情報の未削除指定 (-g) .............................................................................
デバッグ情報の削除指定 (-Xg) ..............................................................................
CPU 情報ファイル指定 (-cif) .................................................................................
ターゲット CPU 指定 (-cpu) ..................................................................................
オブジェクト混在チェックレベル指定 (-omcl) ......................................................
ライブラリアンのリストフォーマット ................................................ 253
リストファイルの情報内容 ...............................................................................................
モジュール名リスト .........................................................................................................
モジュールごとの詳細情報 ...............................................................................................
ライブラリ内の外部定義 / 参照シンボル情報 ...................................................................
第 12 章
238
239
240
241
242
243
244
245
246
247
248
249
250
251
254
255
256
257
ライブラリアンの制限事項および Q&A .............................................. 259
12.1 ライブラリアンの制限事項 ............................................................................................... 260
12.2 ライブラリアンの使用上の Q&A ...................................................................................... 262
第4部
オブジェクト形式コンバータ編 ............................................................ 265
第 13 章
オブジェクト形式コンバータの仕様 .................................................... 267
13.1 オブジェクト形式コンバータの概要 ................................................................................ 268
13.2 オブジェクト形式コンバータの種類 ................................................................................ 270
13.3 オブジェクト形式コンバータの実行 ................................................................................ 272
第 14 章
オブジェクト形式コンバータの共通オプション .................................. 273
14.1 オブジェクト形式コンバータのオプション一覧 .............................................................. 274
14.2 出力ファイル名の変更 (-o) .............................................................................................. 275
14.3 パディング (-p) ................................................................................................................ 277
第 15 章
ロードモジュールコンバータ (f2ms, f2hs, f2is, f2es) ........................ 279
15.1 ロードモジュールコンバータの概要 ................................................................................
15.2 ロードモジュールコンバータのオプション一覧 ..............................................................
15.3 ロードモジュールコンバータのオプション詳細 ..............................................................
15.3.1
出力 S フォーマット指定 (-S1/-S2/-S3) ................................................................
15.3.2
出力 HEX フォーマット指定 (-I16/-I20/-I32) .........................................................
15.3.3
スタートアドレスレコード出力指定 (-entry) ........................................................
15.3.4
スタートアドレスレコード出力抑止指定 (-Xentry) ...............................................
15.3.5
整形指定 (-adjust) ..................................................................................................
15.4 f2ms( 絶対形式ロードモジュール→ S フォーマット変換 ) .............................................
15.5 f2hs( 絶対形式ロードモジュール→ HEX フォーマット変換 ) .........................................
December 1, 2014, CM71-00327-9
280
281
282
283
284
285
287
288
289
290
vii
Su pp or t
So ft
Manu al
15.6 f2is( 絶対形式ロードモジュール→ HEX8 フォーマット変換 ),
f2es( 絶対形式ロードモジュール→ HEX16 フォーマット変換 ) ...................................... 291
第 16 章
フォーマットアジャスタ (m2ms, h2hs) .............................................. 293
16.1 フォーマットアジャスタの概要 .......................................................................................
16.2 フォーマットアジャスタのオプション一覧 .....................................................................
16.3 フォーマットアジャスタのオプション詳細 .....................................................................
16.3.1
出力レコード内データ長指定 (-len) ......................................................................
16.3.2
出力範囲指定 (-ran) ...............................................................................................
16.3.3
出力 S フォーマット指定 (-S1/-S2/-S3) ................................................................
16.3.4
出力 HEX フォーマット指定 (-I16/-I20/-I32) .........................................................
16.3.5
開始アドレス変更指定 (-ST) .................................................................................
第 17 章
バイナリコンバータ (m2bs, h2bs) ...................................................... 305
17.1 バイナリコンバータの概要 ...............................................................................................
17.2 バイナリコンバータのオプション一覧 .............................................................................
17.3 バイナリコンバータのオプション詳細 .............................................................................
17.3.1
出力範囲指定 (-ran) ...............................................................................................
17.3.2
スプリットモード指定 (-sp) ..................................................................................
17.3.3
スプリットモード抑止指定 (-Xsp) .........................................................................
17.3.4
マップリストファイルの作成指定 (-m) .................................................................
17.3.5
マップリストファイルの作成抑止指定 (-Xm) .......................................................
第 18 章
18.1
18.2
18.3
18.4
306
308
309
310
311
312
313
315
その他のコンバータ ............................................................................. 317
m2is(S フォーマット→ HEX8 フォーマット変換 ) ..........................................................
m2es(S フォーマット→ HEX16 フォーマット変換 ) .......................................................
i2ms(HEX8 フォーマット→ S フォーマット変換 ) ..........................................................
e2ms(HEX16 フォーマット→ S フォーマット変換 ) .......................................................
第 19 章
294
297
298
299
300
301
303
304
318
319
320
321
オブジェクト形式コンバータの制限事項および Q&A ......................... 323
19.1 オブジェクト形式コンバータの制限事項 ......................................................................... 324
19.2 オブジェクト形式コンバータの使用上の Q&A ................................................................ 325
付録 ........................................................................................................................ 327
付録 A
付録 B
B.1
B.2
B.3
B.4
B.5
B.6
B.7
付録 C
C.1
C.2
C.3
C.4
C.5
viii
リンケージキットのエラーメッセージ .......................................................................
HEX フォーマット .......................................................................................................
一般形式 ....................................................................................................................
データレコード (HEX8/HEX16/HEX32) タイプ : 00 ................................................
エンドレコード (HEX8/HEX16/HEX32) タイプ : 01 ................................................
拡張セグメントアドレスレコード (HEX16/HEX32) タイプ : 02 ..............................
スタートセグメントアドレスレコード (HEX16/HEX32) タイプ : 03 .......................
拡張リニアアドレスレコード (HEX32) タイプ : 04 ..................................................
スタートリニアアドレスレコード (HEX32) タイプ : 05 ..........................................
S レコード形式 ............................................................................................................
S0 タイプ ( ヘッダレコード ) ...................................................................................
S1 タイプ ( データレコード : 2 バイトアドレス ) ...................................................
S2 タイプ ( データレコード : 3 バイトアドレス ) ...................................................
S3 タイプ ( データレコード : 4 バイトアドレス ) ...................................................
S5 タイプ ( レコード数管理レコード ) ....................................................................
328
357
358
360
361
362
363
364
365
366
367
369
370
371
372
CM71-00327-9, December 1, 2014
Support
C.6
C.7
C.8
付録 D
付録 E
付録 F
付録 G
付録 H
Soft
Ma nual
S7 タイプ ( ターミネータレコード ) ........................................................................
S8 タイプ ( ターミネータレコード ) ........................................................................
S9 タイプ ( ターミネータレコード ) ........................................................................
リンカのオプション一覧表 .........................................................................................
ライブラリアンのオプション一覧表 ...........................................................................
オブジェクト形式コンバータのコマンドおよびオプション一覧表 ............................
OS による仕様の相違点 ..............................................................................................
主な変更内容 ...............................................................................................................
373
374
375
376
378
379
381
382
索引 .................................................................. 383
December 1, 2014, CM71-00327-9
ix
Su pp or t
x
So ft
Manu al
CM71-00327-9, December 1, 2014
Support
第1部
Soft
Ma nual
リンケージキット編
リンケージキットに含まれるツールの概要と , ツール全体に共通する項目について説
明します。
第 1 章 リンケージキットの仕様
第 2 章 オプション
第 3 章 共通オプション
第 4 章 オプションファイル
December 1, 2014, CM71-00327-9
1
Su pp or t
2
So ft
Manu al
CM71-00327-9, December 1, 2014
Support
Soft
Ma nual
第1章
リンケージキットの仕様
この章では , リンケージキットに含まれるツールの
概要 , 起動方法 , 終了方法および識別子などについ
て説明します。
1.1 リンケージキットの概要
1.2 起動方法
1.3 強制終了
1.4 終了コード
1.5 起動メッセージ
1.6 終了メッセージ
1.7 ヘルプメッセージ
1.8 識別子
1.9 ファイル名規則
1.10 環境変数
December 1, 2014, CM71-00327-9
3
第 1 章 リンケージキットの仕様
Su pp or t
1.1
So ft
Manu al
リンケージキットの概要
リンケージキットは , オブジェクトモジュールの結合に使用するリンカと , オブジェ
クトモジュールをまとめて管理するライブラリアン , その他 , ROM 書き込み用のオ
ブジェクト形式へのコンバータで構成されています。
■ リンケージキットのサポート範囲
図 1.1-1 に , リンケージキットのサポート範囲を示します。
図 1.1-1 リンケージキットのサポート範囲
テキストエディタ
C/C++ソースプログラム
.c/.cpp/.cc
アセンブラ
ソースプログラム
C/C++コンパイラ
.asm
アセンブラ
オブジェクトモジュール
ライブラリアン
.obj
リンクマップリスト
ライブラリファイル
リンカ
.mp1
絶対形式
アセンブルリスト
.lib
絶対形式
ロードモジュール
.als
コンバータ
.abs
リンカ出力リスト
ROM化オブジェクト形式
.mpx
.mhx
.mpm
.ehx
.mps
.ihx
.hex
デバッガ
4
ROMライタ
CM71-00327-9, December 1, 2014
第 1 章 リンケージキットの仕様
Support
1.2
Soft
Ma nual
起動方法
リンケージキット ( リンカ , ライブラリアン , オブジェクト形式コンバータ ) を実行
するための , コマンドラインの形式および指定方法について説明します。
■ コマンドラインの形式
SOFTUNE リンケージキットのコマンドラインの指定方法 ( 起動コマンドシンタック
ス ) は , 次のとおりです。
• コマンドラインの指定方法 : コマンド名に続けて , ファイル名とオプションを必要
なだけ繰り返し指定する。
以下の説明では , オプションの指定をコマンド名の次にしてありますが , オプションの
記述位置は , ファイル名の前後どちらでもかまいません。オプションについて , 詳しく
は「第 2 章 オプション」を参照してください。
● リンカ
flnk911s [ オプション ] … <ファイル名> …
<ファイル名>には , 入力するオブジェクトモジュールファイル名を指定します。複数
のファイル名を指定するときは , スペースを入れます。
また , *.obj のようにワイルドカードの使用もできます。ファイル名のワイルドカード
の展開は OS に依存しますので , 「付録 G OS による仕様の相違点」を参考にしてくだ
さい。
リンカでは , -cpu オプションでターゲット CPU の指定が必要です。リンク処理実行の
際は , 必ず -cpu オプションを指定してください。
● ライブラリアン
flibs [ オプション ] … <ファイル名>
ライブラリアンは , SOFTUNE V6 で共通です。
<ファイル名>には , 編集対象のライブラリファイルを指定します。
ライブラリアンでは , -cpu オプションでターゲット CPU の指定が必要です。ライブラ
リ処理実行の際は , 必ず -cpu オプションを指定してください。
● オブジェクト形式コンバータ
コマンド名 [ オプション ] … <ファイル名>
<ファイル名>には , それぞれのツールの機能に応じたオブジェクト形式のファイル
名を指定します。以下の 3 形式のファイルが対象となります。
• リンカ出力の絶対形式ロードモジュール
• S フォーマット
• HEX フォーマット
December 1, 2014, CM71-00327-9
5
第 1 章 リンケージキットの仕様
Su pp or t
1.3
So ft
Manu al
強制終了
プログラムの実行を途中で止めたい場合は , CTRL キーを押しながら , C キーを押す
( 以降 , "CTRL-C を押す " と記述します ) ことにより行えます。CTRL-C が押される
と , プログラムの実行が中断されます。
■ 強制終了
CTRL-C により , プログラム処理を中止した場合 , 出力結果のファイルは正しく作成さ
れません。リンケージキットが実行時に使用する作業ファイルは消去されます。
6
CM71-00327-9, December 1, 2014
第 1 章 リンケージキットの仕様
Support
1.4
Soft
Ma nual
終了コード
リンケージキットの各ツールは , その処理の終了状態を終了コードとして OS に返し
ます。
■ 終了コードの値と終了状態
リンケージキットの各ツールは , その処理の終了状態 ( 正常に終了したか , あるいはエ
ラーが発生したかなどの状態 ) を終了コードとして OS に返します。終了コードと処理
の終了状態の関係を , 表 1.4-1 に示します。
表 1.4-1 終了コードと処理の終了状態
終了コード
December 1, 2014, CM71-00327-9
処理の終了状態
0
正常に終了または警告レベルのエラーがあったとき
1
-cwno オプション指定時で , 警告レベルのエラーがあったとき
2
正しい出力結果を作成できないようなエラーがあったとき
3
処理の続行が不可能となる致命的エラーがあったとき
7
第 1 章 リンケージキットの仕様
Su pp or t
1.5
So ft
Manu al
起動メッセージ
リンケージキットは , -V オプションで起動メッセージの表示を行います。デフォル
ト処理では , 起動メッセージの表示は行いません。
■ 起動メッセージと -V オプション
リンケージキットは , デフォルト処理では , 処理中に検出されたエラーに関するメッ
セージを表示しますが , 起動を示すメッセージは表示しません。起動時にメッセージ表
示を行いたい場合は , -V オプションを用います。
また , -V オプションを無効にしたい場合は , -V オプションの後に -XV オプションを指
定します。詳しくは「3.2.4 版数 / メッセージ出力指定 (-V) 」, 「3.2.5 版数 / メッセー
ジ出力抑止 (-XV) 」を参照してください。
■ 起動メッセージ
起動メッセージは , プログラム名と版数 , 著作権表示で構成されます。
8
CM71-00327-9, December 1, 2014
第 1 章 リンケージキットの仕様
Support
1.6
Soft
Ma nual
終了メッセージ
リンケージキットは , -cmsg オプションで終了メッセージの表示を行います。デ
フォルト処理では , 終了メッセージの表示は行いません。
■ 終了メッセージと -cmsg オプション
リンケージキットは , デフォルト処理では , 処理中に検出されたエラーに関するメッ
セージを表示しますが , 終了を示すメッセージは表示しません。終了時にメッセージ表
示を行いたい場合は , -cmsg オプションを用います。
また , -cmsg オプションを無効にしたい場合は , -cmsg オプションより後に -Xcmsg オプ
ションを指定します。詳しくは「3.2.6 終了メッセージ表示指定 (-cmsg) 」, 「3.2.7 終
了メッセージ表示抑止指定 (-Xcmsg) 」を参照してください。
■ 終了メッセージ
終了メッセージは , ツール名 , エラーの有無を表示します。
以下に , 終了メッセージ例を示します。
【エラーがない場合】
プログラム名 COMPLITED FOUND NO ERROR
【エラーがある場合】
プログラム名 COMPLITED FOUND ERROR
December 1, 2014, CM71-00327-9
9
第 1 章 リンケージキットの仕様
Su pp or t
So ft
Manu al
ヘルプメッセージ
1.7
ヘルプメッセージとして表示されるメッセージは , 以下の 2 種類です。
• コマンドラインの記述形式
• 起動時オプションの一覧
■ ヘルプメッセージ
起動時にコマンド名以外何も指定しなかった場合 , または -help オプションを指定した
とき , コマンドラインの記述形式と起動時オプションの一覧を表示して終了します。詳
しくは「3.2.3 ヘルプメッセージの表示 (-help) 」を参照してください。
● ヘルプメッセージの例
図 1.7-1 に , リンカの場合 ( 英文 ) のヘルプメッセージの例を示します。
図 1.7-1 ヘルプメッセージの例
*1
usage : flnk911s [-option ...] object[ object ...]
-----------options:
------- target CPU option -------cpu cpu-name
: Specify target CPU
(need)
------- linker mode options -------a
: absolute linking mode
-r
: relocatable linking mode
(absolute)
*2
------- library options -------l filename[,...] : specify library file name
:
:
*1: コマンドラインシンタックス ( 起動方法 ) の表示。
*2: オプションの一覧および , 簡単な説明。
なお , メッセージは , 環境変数 FELANG (「1.10.2 FELANG ( メッセージ言語 )」参照 )
設定により , 日本語で表示することも可能です。
10
CM71-00327-9, December 1, 2014
第 1 章 リンケージキットの仕様
Support
1.8
Soft
Ma nual
識別子
リンケージキットでプログラム作成時などに扱う識別子には , 以下の 7 種類があり
ます。
• ファイル名
• モジュール名
• オプション名
• セクション名
• グループ名
• ROM/RAM 領域名
• シンボル名 ( マングル名 )
■ 識別子の構成文字種
識別子に使用可能な文字種は , 以下のとおりです。
• 英字
• 数字
• アンダスコア (_)
先頭文字に数字の使用は許されません。
また , ファイル名に使用可能な文字の種類は , 動作 OS に準拠します。したがって , ファ
イル名から作られるモジュール名も同等です。
■ 識別子の区別
英字の大文字小文字は区別されます。
■ 識別子文字数の制限
識別子の文字数制限は設けていません。
■ マングル名
C++ コンパイラが生成する関数名などの識別子は , 関数の型情報などを表すための情
報が付加されています。このことをマングルとよび , その識別子をマングル名とよびま
す。
リンカ内部で扱うラベルなどの識別子は , このマングル名を用いて指定を行います。
■ リスト出力時の識別名表示
リスト出力時にマングル名は , 判り易いようにデコードを行って表示します。
リンケージキットが作成する各種リストファイル中では , 識別子の名前全部を表示す
るようにはしていません。
長い識別子の名前は , 先頭の 33 文字程度のみを出力し , 残りの部分は表示していない
ものもあります。
1 行の中に表示される文字数は , リストのページ幅指定の変更で増減しますので , 見や
すいフォーマットを選択できます。
また , 複数行にわたりますが , 省略せずに表示するオプションも用意してあります。
December 1, 2014, CM71-00327-9
11
第 1 章 リンケージキットの仕様
Su pp or t
1.9
So ft
Manu al
ファイル名規則
入出力ファイルのファイル名は , OS での使用制限に準じています。
ファイル名は , オブジェクトモジュール中にも設定されますので , 文字数やコード系
に注意する必要がある場合があります。
■ ファイル名の文字数
入出力ファイルのファイル名は , OS での使用制限に準じています。
■ ファイル名の文字コード
C/C++ やアセンブラのソースファイル名は , 出力されるオブジェクトモジュール内に ,
ソ-スファイル名情報として設定されるほか , モジュール名としても設定されます。
モジュール名には , 「1.8 識別子」で示されるように英字 , 数字 , アンダスコア (_) しか
使用できません。したがって , 漢字や空白を用いたファイル名では , アセンブル時に ,
モジュール名を指定するなどの工夫が必要です。
● ファイル名として使用できる文字 (Windows 版 )
英字 , 数字 , 仮名文字 , シフト JIS 漢字コード , および下記以外の記号が使用できます。
\/ : ; , * ? " < > |
空白を含むファイル名を指定する場合には , ファイル名を二重引用符 (") で括ってくだ
さい。
環境変数に空白を含むディレクトリ名を指定する場合には , 二重引用符 (") で括らない
でください。
12
CM71-00327-9, December 1, 2014
第 1 章 リンケージキットの仕様
Support
1.10
Soft
Ma nual
環境変数
リンケージキットでは , 以下の 6 種類の環境変数をサポートしています。
• TMP
• FELANG
• FETOOL
• LIB911
• OPT911
• OPT
■ TMP ( ワークディレクトリ )
TMP は , 作業用ディレクトリを指定します。詳しくは「1.10.1 TMP ( ワークディレク
トリ )」を参照してください。
■ FELANG ( メッセージ言語 )
FELANG は , メッセージの言語の選択 , 指定を行います。詳しくは「1.10.2 FELANG
( メッセージ言語 )」を参照してください。
■ FETOOL ( インストールディレクトリ )
FETOOL は , 開発ツールをインストールしたディレクトリを指定します。詳しくは
「1.10.3 FETOOL( インストールディレクトリ )」を参照してください。
■ LIB911 ( ライブラリファイル検索ディレクトリ )
LIB911 は , ライブラリを格納したディレクトリを指定します。詳しくは , 「1.10.4
LIB911( ライブラリファイル検索ディレクトリ )」を参照してください。
■ OPT911 ( デフォルトオプションファイル格納ディレクトリ )
OPT911 は , リンカのデフォルトオプションファイルを格納したディレクトリを指定し
ます。詳しくは ,「1.10.5 OPT911( デフォルトオプションファイル格納 ディレクトリ )」
を参照してください。
■ OPT ( デフォルトオプションファイル格納ディレクトリ )
OPT は , ライブラリアンおよびオブジェクトツールのデフォルトオプションファイル
を格納したディレクトリを指定します。詳しくは , 「1.10.6 OPT( デフォルトオプショ
ンファイル格納 ディレクトリ )」を参照してください。
December 1, 2014, CM71-00327-9
13
第 1 章 リンケージキットの仕様
Su pp or t
1.10.1
So ft
Manu al
TMP ( ワークディレクトリ )
TMP は , リンケージキットが実行時に使用する作業用のディレクトリを指定します。
TMP の記述形式 , 説明 , 指定例を示します。
■ TMP ( ワークディレクトリ )
【記述形式】
TMP= <パス名>
SET
【説明】
リンケージキットが実行時に使用する作業用のディレクトリを指示します。
この環境変数 TMP は , 他の開発ツール (C/C++ コンパイラやアセンブラなど ) でも使用
されます。
環境変数 TMP の設定がないときはカレントディレクトリを使用します。
【例】
SET
14
TMP=G:\WORK
CM71-00327-9, December 1, 2014
第 1 章 リンケージキットの仕様
Support
1.10.2
Soft
Ma nual
FELANG ( メッセージ言語 )
FELANG は , ヘルプメッセージ , およびエラーメッセージ表示のメッセージ言語の
選択 , 指定を行います。
FELANG の記述形式 , 説明 , 指定例を示します。
■ FELANG ( メッセージ言語 )
【記述形式】
SET
FELANG={ASCII|EUC|SJIS}
ASCII: 英語 ASCII コード ( デフォルト )
EUC: 日本語 EUC コード
SJIS: 日本語 SJIS コード
【説明】
ヘルプメッセージおよびエラーメッセージ表示の日本語 / 英語 ( メッセージ言語 ) の選
択 , 指定を行います。
指定がない場合は , 英語のメッセージ (ASCII 指定 ) が選択されます。日本語環境のな
いシステムで , EUC または SJIS 以外のコード系をご使用の場合には , FELANG 環境変
数の設定を行わないか , ASCII を指定してください。
この環境変数 FELANG は , ほかの開発ツール (C/C++ コンパイラやアセンブラなど ) で
も使用されます。
【例】
SET
December 1, 2014, CM71-00327-9
FELANG=ASCII
15
第 1 章 リンケージキットの仕様
Su pp or t
1.10.3
So ft
Manu al
FETOOL( インストールディレクトリ )
FETOOL は , リンケージキットをインストールした親ディレクトリを指定します。
FETOOL の記述形式 , 説明 , 指定例などを示します。
■ FETOOL ( インストールディレクトリ )
【記述形式】
FETOOL= <パス名>
SET
< パス名 > には , ドライブ名を含めた絶対パスで指定してください。
【説明】
リンケージキットをインストールしたディレクトリを指定します。
リンケージキットは , ここで指定したディレクトリを起点として , メッセージファイル
やライブラリファイルの格納ディレクトリを知り , 実行に必要なファイルをアクセス
します。
指定がない場合は , 実行されたロードモジュールのあるディレクトリの親ディレクト
リとなります。
この環境変数 FETOOL は , ほかの開発ツール (C/C++ コンパイラやアセンブラなど ) で
も使用されます。
【例】
SET
FETOOL=C:\Softune6
【推奨ディレクトリ構造】
図 1.10-1 推奨ディレクトリ構造
\ Softune6
\ BIN
\ LIB
リンケージキットのロードモジュールを格納
ターゲットCPUに依存しないメッセージファイルを格納
\ 911
FR用ライブラリファイル
およびメッセージファルを格納
【補足】
リンケージキットは , 上記のようなディレクトリ構造に各ファイルを格納して実行さ
れることを前提に作成されています。
FETOOL 環境変数は , "SOFTUNE" ディレクトリのパスをリンケージキットに知らせる
ものです。
16
CM71-00327-9, December 1, 2014
第 1 章 リンケージキットの仕様
Support
1.10.4
Soft
Ma nual
LIB911( ライブラリファイル検索ディレクトリ )
LIB911 ( ライブラリファイル検索ディレクトリ ) は , リンカが検索するライブラリ
ファイルや CPU 情報ファイルを格納したディレクトリを指定します。
LIB911 の記述形式 , 説明 , 指定例などを示します。
■ LIB911 ( ライブラリファイル検索ディレクトリ )
【記述形式】
LIB911= <パス名>
SET
[ ;<パス名> … ]
< パス名 > には , ドライブ名を含めて指定してください。
【説明】
リンカが検索するライブラリファイルや CPU 情報ファイルを格納したディレクトリを
指定します。
通常は , C/C++ ライブラリを格納したディレクトリを指定しておきます。
複数の検索パスを指定する場合は , < パス名 > を次の記号で区切ります。
• セミコロン (;)
複数指定時の検索順は , 指定した順となります。
【例】
SET
LIB911=C:\Softune6\LIB\911
【補足】
環境変数 FETOOL が指定されている場合 , 前項で説明したディレクトリ構造のライブ
ラリ格納ディレクトリも検索されますので , 環境変数 LIB911 の設定を行わなくても C/
C++ ライブラリは検索されます。
ライブラリ検索パスは , リンカ実行時のオプション -L でも指定できます。
これらの複合指定によるライブラリ検索パスの優先順位は次のようになります。
1) リンカのオプション -L で指定されたディレクトリ
2) 環境変数 LIB911 で指定されたディレクトリ
3) 環境変数 FETOOL より導かれるディレクトリ (%FETOOL%\LIB\911)
ユーザがライブラリを作成した場合などは, C/C++ライブラリとの検索順に注意してパ
スの指定を行ってください。
December 1, 2014, CM71-00327-9
17
第 1 章 リンケージキットの仕様
Su pp or t
1.10.5
So ft
Manu al
OPT911( デフォルトオプションファイル格納
ディレクトリ )
OPT911 ( デフォルトオプションファイル格納ディレクトリ ) は , リンカのデフォル
トオプションファイルを格納したディレクトリを指定します。
OPT911 の記述形式 , 説明 , 指定例などを示します。
■ OPT911 ( デフォルトオプションファイル格納ディレクトリ )
【記述形式】
OPT911= <パス名>
SET
< パス名 > には , ドライブ名を含めて指定してください。
【説明】
リンカで使用するデフォルトオプションファイルを格納したディレクトリを指定しま
す。
この環境変数は省略できます。
省略した場合は , 開発環境ディレクトリ内のデフォルトオプションファイルを参照し
ます。
開発環境ディレクトリ内のデフォルトオプションファイルは次のとおりです。
● リンカ
%FETOOL%\LIB\911\FLNK911.OPT
【例】
SET
18
OPT911=C:\Softune6\LIB\911
CM71-00327-9, December 1, 2014
第 1 章 リンケージキットの仕様
Support
1.10.6
Soft
Ma nual
OPT( デフォルトオプションファイル格納
ディレクトリ )
OPT ( デフォルトオプションファイル格納ディレクトリ ) は , ライブラリアン , オブ
ジェクトツールのデフォルトオプションファイルを格納したディレクトリを指定し
ます。
OPT の記述形式 , 説明 , 指定例などを示します。
■ OPT ( デフォルトオプションファイル格納ディレクトリ )
【記述形式】
OPT= <パス名>
SET
< パス名 > には , ドライブ名を含めて指定してください。
【説明】
ライブラリアンや , オブジェクトツールで使用するデフォルトオプションファイルを
格納したディレクトリを指定します。
この環境変数は省略できます。
省略した場合は , 開発環境ディレクトリ内のデフォルトオプションファイルを参照し
ます。
開発環境ディレクトリ内のデフォルトオプションファイルは次のとおりです。
● ライブラリアン
• %FETOOL%\LIB\FLIB.OPT
● オブジェクトツール
• %FETOOL%\LIB\F2M.OPT
• %FETOOL%\LIB\F2H.OPT
• %FETOOL%\LIB\M2B.OPT
• %FETOOL%\LIB\M2M.OPT
• %FETOOL%\LIB\H2B.OPT
• %FETOOL%\LIB\H2H.OPT
• %FETOOL%\LIB\F2I.OPT
• %FETOOL%\LIB\F2E.OPT
• %FETOOL%\LIB\M2I.OPT
• %FETOOL%\LIB\M2E.OPT
• %FETOOL%\LIB\I2M.OPT
• %FETOOL%\LIB\E2M.OPT
【例】
SET
December 1, 2014, CM71-00327-9
OPT=C:\Softune6\LIB
19
第 1 章 リンケージキットの仕様
Su pp or t
20
So ft
Manu al
CM71-00327-9, December 1, 2014
Support
Soft
Ma nual
第2章
オプション
この章では , リンケージキットのオプションについ
て説明します。
2.1 オプション
2.2 オプションパラメータでの数値表現
2.3 オプション指定時の注意と評価
2.4 包含 / 相反関係にあるオプションの指定
2.5 コマンドラインの指定例
December 1, 2014, CM71-00327-9
21
第 2 章 オプション
Su pp or t
2.1
So ft
Manu al
オプション
オプションは , オプション名とパラメータで構成されます。オプションの形式や指
定方法について説明します。
■ オプション形式
オプションの形式は以下のとおりです。
-オプション名 [ パラメータ ] …
オプション名の先頭には , ハイフン ( - ) を付加します。
オプション名とパラメータの区切りにはスペースを置きます。
パラメータの有無および形式は , オプションごとに定義されていますので , 個々のオプ
ションの説明を参照してください。
また , オプション指定時には , 以下の点に注意してください。
• オプション名の英字は , 大文字と小文字の区別を行います。
• パラメータが必要なオプションは , パラメータを省略することはできません。
• 複数のオプションを指定する場合 , 例えば -a と -V を -aV のようにまとめて指定す
ることはできません。
• ハイフンとオプション名の間にスペースを置くことはできません。
■ パラメータ
パラメータは , オプションの操作対象となるファイル名やモジュール名などを指定す
るものです。2 つ以上のパラメータを記述する場合には , 通常カンマ (, ) で区切ります
が複雑なパラメータ指定では , カンマ以外の記号も使用しますので , 詳細は個々のオプ
ションの説明を参照してください。
【例】
-a
gets.obj,puts.obj,getc.obj,putc.obj
-sc CODE=0xC1000,DATA=0x1000
22
CM71-00327-9, December 1, 2014
第 2 章 オプション
Support
2.2
Soft
Ma nual
オプションパラメータでの数値表現
オプションパラメータでの数値表現には , 10 進数と 16 進数が使えます。
■ オプションパラメータでの数値表現
オプションパラメータの数値の先頭が (0x) で始まるものは 16 進数 , そうでないものは
10 進数とみなします。16 進表現の a ~ f は , 大文字と小文字の区別なくどちらでも使
用できます。
【例】
0x100
…
16 進表現 (= 256)
100
…
10 進表現 (= 0x64)
0xff と 0xFF は同じ。
December 1, 2014, CM71-00327-9
23
第 2 章 オプション
Su pp or t
2.3
So ft
Manu al
オプション指定時の注意と評価
オプションを指定するとき , 重複指定や指定順序に注意が必要なものがあります。
リンケージキットでは , 一定の規則に従ってオプションの評価をします。
■ オプション指定時の注意と評価
オプション指定時の注意と評価の規則を , 以下に示します。
● パラメータの不要なオプション
1 回だけ指定があれば良く , 何度指定しても同じです。
【例】
-V : メッセージ出力の指定
-V -V と何度指定してもエラーではありません。
● パラメータが必要なオプション
複数のオプション指定があるとき , 評価方法が異なります。
• 最後の指定 1 つだけが有効なもの
• 指定順に意味があり , すべての指定が有効なもの
• 指定順に意味がなく , すべての指定が有効なもの
【例 1 最後の指定 1 つだけが有効なもの】
-o file.abs : 出力ファイル名の指定
-o file.abs -o file.rel のように複数指定した場合には, 最後の指定が有効になります (こ
の例の場合 file.rel が有効 )。
【例 2 指定順に意味があり , すべての指定が有効なもの】
-l lib1.lib
-l lib2.lib : 検索ライブラリ指定 ( リンカ )
-l lib2.lib -l lib1.lib とすると , ライブラリ検索の順番が逆になります。
【例 3 指定順に意味がなく , すべての指定が有効なもの】
-sc CODE=0x1000
-sc DATA=0x200 : セクション配置指定 ( リンカ )
-sc DATA=0x200 -sc CODE=0x1000 としても , セクション配置は個々に独立のため
同等の指定となります。
24
CM71-00327-9, December 1, 2014
第 2 章 オプション
Support
2.4
Soft
Ma nual
包含 / 相反関係にあるオプションの指定
ほかのオプションと包含関係にあるものは , 上位のオプション指定が有効になりま
す。また , ほかのオプションと相反関係にあるものは , 後指定が有効になります。
■ 包含関係にあるオプションの指定例
【例】
-Xm -pw 80 : リスト出力抑止とペ-ジ幅の指定
-pw オプションは , リスト出力を行うときのみ有効であるため , -Xm ( リスト出力抑止 )
オプションにより , 指定自体が意味のないものとなります。
-pw 80 -Xm と指定順が逆でも同じです。
■ 相反関係にあるオプションの指定例
ほかのオプションと相反関係にあるものは , 後指定が有効になります。
【例 1】
-a
-r
絶対形式出力指定と相対形式出力指定 ( リンカ ) -r が有効となります。
【例 2】
-m mapfile
-Xm
リストファイル名指定 -m はリスト出力抑止 -Xm で取り消され , リスト出力は行われま
せん。
December 1, 2014, CM71-00327-9
25
第 2 章 オプション
Su pp or t
2.5
So ft
Manu al
コマンドラインの指定例
コマンドライン指定例を 3 種類示し , 説明します。
■ コマンドラインの指定例
【例 1】
flnk911s
flnk911s file1.obj file2.obj -g -a -help
コマンド名だけの指定の場合 , もしくは , 途中で , オプションがわからなくなったと
きなど , -help オプション HELP を指定すると , 簡単なヘルプメッセージを表示しま
す。
【例 2】
flibs
sys.lib
-m sys.mp2
…
*1
flibs
-m sys.mp2
sys.lib
…
*2
オプションの指定位置は決まっていませんので , コマンドラインで自由に記述でき
ます。
*1 と *2 の指定はどちらも有効であり , 同等の指定です。
【例 3】
flnk911s *.obj -g -o sample.abs
flnk911s ’*.obj’ -g -o sample.abs
ワイルドカードを使用した , 複数入力ファイル名の指定。
<注意事項>
UNIX 系 OS では , コマンドラインに記述されたワイルドカードの展開がシェルで行われ
てしまい , 思わぬ結果 ( オプション指定 ) となる場合があります。
このようなことを避けるため , UNIX 系 OS でワイルドカードを含むオプションを指定す
る際はシングルコーテーション (’) で括って指定を行ってください。
26
CM71-00327-9, December 1, 2014
Support
Soft
Ma nual
第3章
共通オプション
リンケージキットには , どのツールにも共通して使
用できるオプションがあります。これらのオプ
ションは , C/C++ コンパイラやアセンブラにも用
意されています。
この章では , リンケージキットの共通オプションに
ついて説明します。また , ツール固有のオプション
については , それぞれの部で説明します。
3.1 共通オプション一覧
3.2 共通オプション詳細
December 1, 2014, CM71-00327-9
27
第 3 章 共通オプション
Su pp or t
3.1
So ft
Manu al
共通オプション一覧
ここでは , リンケージキットで共通して使用できるオプション一覧を示します。
■ 共通オプション一覧
表 3.1-1 に , リンケージキットで共通に指定できるオプション一覧を示します。
表 3.1-1 共通オプション一覧
機能
デフォルトオプションファイル読み込み抑止指定
オプションファイル名指定
ヘルプメッセージの表示指定
プログラムの版数 , 起動メッセージ表示の指定
28
オプション
備考
-Xdof
-f
-help
-V
プログラムの版数 , 起動メッセージの出力抑止
-XV
デフォルト
終了メッセージの表示指定
終了メッセージの出力抑止
ワーニング発生時の終了コードを 1 にする指定
-cmsg
-Xcmsg
-cwno
デフォルト
ワーニング発生時の終了コードを 0 にする指定
-Xcwno
デフォルト
CM71-00327-9, December 1, 2014
第 3 章 共通オプション
Support
3.2
Soft
Ma nual
共通オプション詳細
ここでは , リンケージキットで共通して使用できる個々のオプションついて説明し
ます。
■ -Xdof オプション
-Xdof オプションは , デフォルトオプションファイルの読込みを取り消します。詳しく
は , 「3.2.1 デフォルトオプションファイル抑止指定 (-Xdof) 」を参照してください。
■ -f オプション
-f オプションでは , オプションを記述したファイルから , オプションを読み込むことを
指示します。詳しくは , 「3.2.2 オプションファイルからの読込み指定 (-f) 」を参照し
てください。
■ -help オプション
-helpオプションでは, ヘルプメッセージを表示することを指示します。詳しくは,「3.2.3
ヘルプメッセージの表示 (-help) 」を参照してください。
■ -V オプション
-V オプションでは , プログラムの起動時のメッセージを出力します。なお , このメッ
セージは , デフォルト処理実行では表示されません。詳しくは ,「3.2.4 版数 / メッセー
ジ出力指定 (-V) 」を参照してください。
■ -XV オプション
-XV オプションでは , 起動時のメッセージの出力を抑止することを指示します。詳し
くは , 「3.2.5 版数 / メッセージ出力抑止 (-XV) 」を参照してください。
■ -cmsg オプション
プログラムの終了メッセージを表示します。詳しくは , 「3.2.6 終了メッセージ表示指
定 (-cmsg) 」を参照してください。
■ -Xcmsg オプション
プログラムの終了メッセージの表示を抑止します。詳しくは , 「3.2.7 終了メッセージ
表示抑止指定 (-Xcmsg) 」を参照してください。
■ -cwno オプション
プログラムでワーニングが発生した場合に , 終了コードとして , OS に "1" を返します。
詳しくは , 「3.2.8 ワーニング発生時の終了コードを 1 にする指定 (-cwno) 」を参照し
てください。
■ -Xcwno オプション
プログラムでワーニングが発生した場合に , 終了コードとして , OS に "0" を返します。
詳しくは , 「3.2.9 ワーニング発生時の終了コードを 0 にする指定 (-Xcwno) 」を参照
してください。
December 1, 2014, CM71-00327-9
29
第 3 章 共通オプション
Su pp or t
3.2.1
So ft
Manu al
デフォルトオプションファイル抑止指定 (-Xdof)
デフォルトオプションファイルの読込みを取り消します。
本オプションの指定がない場合 , デフォルトオプションファイルは常に読み込まれ
ます。
■ デフォルトオプションファイル抑止指定 (-Xdof)
【記述形式】
-Xdof
【パラメータ】
なし
【説明】
デフォルトオプションの読込みを取り消します。
本オプションの指定がない場合 , デフォルトオプションファイルは常に読み込まれま
す。
デフォルトオプションファイルに関しては , 「4.5 デフォルトオプションファイル」を
参照してください。
【注意】
本オプションは , コマンドラインでの指定のみ有効です。
【例】
flnk911s test.obj -Xdof -cpu MB91101
30
CM71-00327-9, December 1, 2014
第 3 章 共通オプション
Support
3.2.2
Soft
Ma nual
オプションファイルからの読込み指定 (-f)
-f オプションは , オプションを記述したファイルからオプションを読み込むことを指
示します。また , このファイル内容を , コマンドラインに指定されたものと同等に扱
います。
■ オプションファイルからの読込み指定 (-f)
【記述形式】
-f <オプションファイル名>
【パラメータ】
<オプションファイル名>
オプションや入力ファイルを記述したファイル名
【説明】
<オプションファイル名>で指定したファイルに , オプションや入力ファイル名を記
述しておきます。
オプションを記述したファイルから , オプションを読み込むことを指示します。
このファイル内容を , コマンドラインでの指定と同様に評価し , 処理します。
ファイル名の拡張子は , デフォルトで決められたものはありません。
【注意】
オプションファイル内では , -f オプション自身の指定はできません。
【例 1】
f2ms -V -f optfile.f2m
optfile.f2m の内容
#
# from FJ-OMF to S format
#
cpp903.abs
# IN ABS-LM
-o cpp903.mhx # OUT S format
これは , 以下のようにコマンドラインで指定したのと同等です。
f2ms -V ccp903.abs -o ccp903.mhx
【例 2】
flibs syslib.lib -f objfile.opt
syslib.lib に登録するモジュールを objfile.opt に記述し , ライブラリアンはこのファ
イル内容を参照してライブラリファイルを作成します。
December 1, 2014, CM71-00327-9
31
第 3 章 共通オプション
Su pp or t
So ft
Manu al
objfile.opt の内容は , 例えば以下のようになります。
-a putc.obj,
getc.obj,
puts.obj,
gets.obj,
memchr.obj, strcat.obj, strerr.obj, strpbrk.obj,
strchr.obj, strcmp.obj, strcpy.obj, strlen.obj
ライブラリ名指定まで含め , 次のように指定できます。
flibs -f libfile.opt
この場合 , libfile.opt の内容は , 以下のようになります。
syslib.lib
-a putc.obj,
getc.obj,
puts.obj,
gets.obj,
memchr.obj, strcat.obj, strerr.obj, strpbrk.obj,
strchr.obj, strcmp.obj, strcpy.obj, strlen.obj
オプションファイルを 2 回指定することも可能です。
flibs syslib.lib -f objgr1.opt -f objgr2.opt
objgr1.opt および objgr2.opt の内容は , 例えば以下のようになります。
objgr1.opt の内容
-a putc.obj, getc.obj, puts.obj, gets.obj
objgr2.opt の内容
-a memchr.obj, strcat.obj, strerr.obj, strpbrk.obj,
strchr.obj, strcmp.obj, strcpy.obj, strlen.obj
32
CM71-00327-9, December 1, 2014
第 3 章 共通オプション
Support
3.2.3
Soft
Ma nual
ヘルプメッセージの表示 (-help)
-help オプションは , プログラムを実行せずにヘルプメッセージを表示することを指
示します。コマンドラインの指定形式と , オプションの概要を表示します。
■ ヘルプメッセージの表示 (-help)
【記述形式】
-help
【パラメータ】
なし
【説明】
-help オプションは , コマンドラインの指定形式とオプション一覧を簡単に表示します。
ヘルプメッセージは標準出力 (stdout) に出力されます。
コマンド名だけの指定時にも , 同じヘルプメッセージが出力されます。
入力ファイル名や他のオプションが指定されている場合にも , 本オプションが指定さ
れていると , プログラムを実行せずにヘルプメッセージのみ表示します。
December 1, 2014, CM71-00327-9
33
第 3 章 共通オプション
Su pp or t
3.2.4
So ft
Manu al
版数 / メッセージ出力指定 (-V)
-V オプションでは , プログラムの起動時のメッセージの出力を行います。
■ 版数 / メッセージ出力指定 (-V)
【記述形式】
-V
【パラメータ】
なし
【説明】
-V オプションは , 起動メッセージの出力を行うようにする指定です。なお , リンケー
ジキットの各ツールは , デフォルト実行では起動メッセージを出力しません。起動メッ
セージ出力は , 必ずこの -V オプションを使って行います。
起動メッセージには , プログラム版数 , 著作権表示などが含まれます。
メッセージは標準出力 (stdout) に出力します。
【例 1】
flnk911s ccp903
本オプションを指定しない場合 , 実行開始時にメッセージを出力しません。
終了時は , OS のプロンプトが出て , 次のコマンド入力待ちになるだけです。
【例 2】
flibs -V
-V オプションだけが指定された場合 , プログラム名 , プログラム版数 , コピーライト
メッセージを表示したのち , 直ちにプログラムを終了します。
34
CM71-00327-9, December 1, 2014
第 3 章 共通オプション
Support
3.2.5
Soft
Ma nual
版数 / メッセージ出力抑止 (-XV)
-XV オプションは , -V オプションを無効にします。これにより , プログラムの起動
メッセージの出力を行わないようにします。
■ 版数 / メッセージ出力抑止 (-XV)
【記述形式】
-XV
【パラメータ】
なし
【説明】
リンケージキットの各ツールは , デフォルト実行では起動メッセージを出力しません
ので , 起動メッセージを出力させるには -V オプションを指定します。
-XV オプションは , -V 指定を無効にするときに指定します。
【例 1】
flnk911s ccp903
flnk911s ccp903 -XV
デフォルト処理では , 実行開始時にメッセージを出力しません。
上記指定はどちらも同じです。
【例 2】
f2ms -f lkit.opt
ccp903
-XV
オプションファイルを利用した実行時 , オプションファイル内の指定を一時的に変
更したい場合があります。lkit.opt 内に -V オプションがある場合 , lkit.opt の内容を
変更せずコマンドライン上で -XV 指定を行えば , -V オプションを取り消すことが
できます。
December 1, 2014, CM71-00327-9
35
第 3 章 共通オプション
Su pp or t
3.2.6
So ft
Manu al
終了メッセージ表示指定 (-cmsg)
終了メッセージを表示します。
■ 終了メッセージ表示指定 (-cmsg)
【記述形式】
-cmsg
【パラメータ】
なし
【説明】
プログラムの終了メッセージを表示します。
リンケージキットはデフォルトでは , プログラムの終了メッセージの表示を行いませ
ん。
【例 1】
flnk911s ccp903
本オプションを指定しない場合 , 終了時にメッセージを出力しません。
終了時は , OS のプロンプトが出て , 次のコマンド入力待ちになるだけです。
【例 2】
f2ms ccp903 -cmsg
F2MS COMPLITED FOUND NO ERROR ・・・・・・終了メッセージ
終了時に , 終了メッセージ ( プログラム名 , エラーの有無 ) を表示します。
36
CM71-00327-9, December 1, 2014
第 3 章 共通オプション
Support
3.2.7
Soft
Ma nual
終了メッセージ表示抑止指定 (-Xcmsg)
終了メッセージの表示を抑止します。
■ 終了メッセージ表示抑止指定 (-Xcmsg)
【記述形式】
-Xcmsg
【パラメータ】
なし
【説明】
終了メッセージの表示を抑止します。
リンケージキットは , デフォルトでプログラムの終了メッセージの表示を行いません。
本オプションはプログラムの終了メッセージの表示オプション(-cmsg)を取り消す場合
に使用します。
【例 1】
flnk911s ccp903
flnk911s ccp903 -Xcmsg
デフォルト処理では , 終了時にメッセージを出力しません。
上記指定はどちらも同じです。
【例 2】
f2ms -f lkit.opt
ccp903
-Xcmsg
オプションファイルを利用した実行時 , オプションファイル内の指定を一時的に変
更したい場合があります。lkit.opt 内に -cmsg オプションがある場合 , lkit.opt の内容
を変更せずコマンドライン上で -Xcmsg 指定を行えば , -cmsg オプションを取り消す
ことができます。
December 1, 2014, CM71-00327-9
37
第 3 章 共通オプション
Su pp or t
3.2.8
So ft
Manu al
ワーニング発生時の終了コードを 1 にする指定
(-cwno)
プログラム実行時にワーニングのみが発生した場合の終了コードを 1 に変更します。
■ ワーニング発生時の終了コードを 1 にする指定 (-cwno)
【記述形式】
-cwno
【パラメータ】
なし
【説明】
プログラム実行時にワーニングのみが発生した場合の終了コードを "1" に変更します。
SOFTUNE リンケージキットでは , 通常ワーニングのみが発生した場合の終了コードは
"0" です。
【例 1】
flnk911s ccp903 -cwno
プログラム実行時にワーニングのみ発生した場合 , OS への終了コードが "1" になり
ます。
【例 2】
flnk911s ccp903
プログラム実行時にワーニングのみの発生の場合, OSへの終了コードはデフォルト
の "0" のままです。
38
CM71-00327-9, December 1, 2014
第 3 章 共通オプション
Support
3.2.9
Soft
Ma nual
ワーニング発生時の終了コードを 0 にする指定
(-Xcwno)
プログラム実行時にワーニングのみが発生した場合の終了コードを 0 に変更します。
■ ワーニング発生時の終了コードを 0 にする指定 (-Xcwno)
【記述形式】
-Xcwno
【パラメータ】
なし
【説明】
プログラム実行時にワーニングのみが発生した場合の終了コードをデフォルトである
"0" に戻します。
SOFTUNE リンケージキットでは , 通常ワーニングのみが発生した場合の終了コードは
"0" です。
本オプションはワーニング発生時の終了コードを "1" にするオプション (-cwno) を取り
消す場合に使用します。
【例 1】
flnk911s ccp903
flnk911s ccp903 -Xcwno
デフォルト処理では , ワーニング発生時の終了コードは "0" です。
上記指定はどちらも同じです。
【例 2】
f2ms -f lkit.opt
ccp903
-Xcwno
オプションファイルを利用した実行時 , オプションファイル内の指定を一時的に変
更したい場合があります。lkit.opt 内に -cwno オプションがある場合 , lkit.opt の内容
を変更せずコマンドライン上で -Xcwno 指定を行えば , -cwno オプションを取り消す
ことができます。
December 1, 2014, CM71-00327-9
39
第 3 章 共通オプション
Su pp or t
40
So ft
Manu al
CM71-00327-9, December 1, 2014
Support
Soft
Ma nual
第4章
オプションファイル
この章では , リンケージキットのオプションファイ
ルについて説明します。
4.1 オプションファイルの概要
4.2 オプションファイル中での継続指定
4.3 オプションファイル中のコメント指定
4.4 オプションファイルの記述例
4.5 デフォルトオプションファイル
December 1, 2014, CM71-00327-9
41
第 4 章 オプションファイル
Su pp or t
4.1
So ft
Manu al
オプションファイルの概要
オプションファイルは , コマンドライン入力を簡略化するために , あらかじめ処理に
必要なファイル名やオプションを記述しておくファイルです。
■ オプションファイル
オプションファイルは , コマンドラインで指定する入力ファイル名やオプションを記
述したファイルです。
記述シンタックスは , コマンドライン上での指定方法と同じです。
ただし , オプションファイル中では , 次の 2 項目が加わります。
• コメント文が記述できる。
• 任意区切り位置で改行可能である。
コメント文は , コメント記号 (#) で始まり , 改行で終了します。
コメント文および改行記号は , コマンドライン上でのスペースと同等に扱われます。
■ オプションファイル指定による実行
コマンドラインの指定だけでは入力できる文字数に制限があるため , 指定するファイ
ル名やオプションが多い場合には指定しきれなくなります。また , 毎回そのような指定
を行うことは , 効率の低下と入力ミスによる誤動作の原因になります。
処理が定型化してきたり , 指定するオプションやファイル名が多かったりしたとき , 毎
回コマンドライン入力を行う手間を省くために , ファイルに記述された内容を , コマン
ドラインでの指定と同等に扱い処理できます。その際 , 処理に必要なファイル名やオプ
ションを , テキストエディタを使いオプションファイルに作成しておき , -f オプション
を用いて実行します。
【例】
flibs -f optfile
オプションファイル "optfile" の内容
prg.lib
-a main.obj
-a send.obj,receive.obj,exchange.obj
-a account.obj
-m prg.mp2
オプションファイル内の記述形式は , 上記の例のようにコマンドラインでの記述形式
と同じです。上記の例ではオプションを各行に分けていますが , 以下のように 1 行で記
述してもかまいません。
prg.lib -a main.obj … -a account.obj -m prg.mp2
この例では , オプションだけではなく , 編集対象のライブラリファイル (prg.lib) の記述
も行っています。
このように, オプションファイル中には, (-fオプション, -Xdofオプションの指定を除き)
コマンドラインで記述することのできるすべての指定が同じ形式で記述できます。
42
CM71-00327-9, December 1, 2014
第 4 章 オプションファイル
Support
4.2
Soft
Ma nual
オプションファイル中での継続指定
オプションファイル中では , オプションやパラメータの区切りの箇所で改行し , 継続
して指定を行うことができます。
■ オプションファイル中の継続指定
オプションファイルにオプションやファイル名を記述していると, オプションが1行に
記述しきれなかったり , 見やすさのため複数行に渡って記述したりしたいと思うこと
があります。
このため , オプションファイル中では , オプションやパラメータの区切りの箇所で改行
できるようにしています。以下に , オプションファイルの記述例を 2 つ示します。
【例 1 オプションファイルの内容を 1 行で記述した場合の例】
:
-a mod01, mod02, obj03, obj04
:
【例 2 オプションファイルの内容を 2 行で記述した場合の例】
:
-a mod01, mod02,
obj03, obj04 ←継続行
:
December 1, 2014, CM71-00327-9
43
第 4 章 オプションファイル
Su pp or t
4.3
So ft
Manu al
オプションファイル中のコメント指定
オプションファイル中には , コメントを入れることができます。
■ オプションファイル中のコメント指定
オプションファイル中にコメントを入れる場合 , コメント開始記号には (#) を使用しま
す。
【例 オプションファイルの内容にコメントを入れた場合の例】
下線部分がコメントです。
# Example of Library Options
syslib.lib
# INDICATES LIBRARY FILE
-a mod01, mod02, obj03, obj04 # Add Modules
44
CM71-00327-9, December 1, 2014
第 4 章 オプションファイル
Support
4.4
Soft
Ma nual
オプションファイルの記述例
オプションファイル中のオプション指定例を以下に示します。
以下の例は , コマンドラインで -a mod01,mod02,obj03,obj04 と指定したときと同
様に扱われます。
■ オプションファイルの記述例
-a mod01,mod02,obj03,obj04
同じ
-a mod01, mod02 ,obj03 , obj04
, の前後にスペース挿入
-a mod01,mod02,obj03,obj04 # comment
文末にコメントを付加
# comment line
-a mod01,mod02,obj03,obj04
コメント行を追加
-a mod01,mod02,obj03,
obj04
, の後ろで改行
パラメータを継続
-a mod01,mod02,obj03
,obj04
, の前で改行
パラメータを継続
-a mod01,mod02,obj03, # comment
obj04
コメント挿入
パラメータを継続
-a
mod01,mod02,obj03,obj04
-a の後ろで改行
パラメータ全部を継続
December 1, 2014, CM71-00327-9
45
第 4 章 オプションファイル
Su pp or t
4.5
So ft
Manu al
デフォルトオプションファイル
オプションファイル機能の 1 つですが , 起動時オプション "-f" を指定しなくてもあ
らかじめ指定されているオプションファイルを読み込み実行します。
この機能をデフォルトオプションファイルといいます。
■ デフォルトオプションファイル
デフォルトオプションファイルは , オプションファイル機能の 1 つですが , 起動時オプ
ション "-f" を指定しなくてもあらかじめ指定されているオプションファイルを読み込
み実行します。この機能をデフォルトオプションファイルといいます。
デフォルトオプションファイルは , 常にプログラムの起動時に読み込まれますので ,
ユーザの環境に適した起動時オプションをあらかじめ指定しておくことができます。
デフォルトオプションファイル機能を抑止するには , 起動時オプション "-Xdof" を指定
します。
このオプションが指定されると , デフォルトオプションファイルは読み込まれません。
デフォルトオプションファイル名は , 表 4.5-1 で示すように決まっています。
表 4.5-1 リンケージキットのデフォルトオプションファイル名
ツール名
プログラム名
オプションファイル名
flnk911s
flibs
f2ms
f2hs
m2bs
m2ms
h2bs
h2hs
f2is
f2es
m2is
m2es
i2ms
e2ms
flnk911.opt
flib.opt
f2m.opt
f2h.opt
m2b.opt
m2m.opt
h2b.opt
h2h.opt
f2i.opt
f2e.opt
m2i.opt
m2e.opt
i2m.opt
e2m.opt
リンカ
ライブラリアン
オブジェクト形式
コンバータ
デフォルトオプションファイルの参照手順を次に示します。
● 環境変数 "OPT911" または "OPT" が設定されている場合
環境変数で設定されているディレクトリのファイルを参照します。
• リンカ
%OPT911%\ デフォルトオプションファイル
• ライブラリアン , オブジェクトツール
%OPT%\ デフォルトオプションファイル
46
CM71-00327-9, December 1, 2014
第 4 章 オプションファイル
Support
Soft
Ma nual
● 環境変数 "OPT911" または "OPT" が設定されていない場合
開発環境ディレクトリ内のデフォルトオプションファイルを参照します。
• リンカ
%FETOOL%\LIB\911\ デフォルトオプションファイル
• ライブラリアン , オブジェクトツール
%FETOOL%\LIB\ デフォルトオプションファイル
<注意事項>
デフォルトオプションファイルが見つからない場合 , リンケージキットはエラーメッセー
ジを表示しません。
December 1, 2014, CM71-00327-9
47
第 4 章 オプションファイル
Su pp or t
48
So ft
Manu al
CM71-00327-9, December 1, 2014
Support
第2部
Soft
Ma nual
リンカ編
リンカの仕様 , オプション , および出力リストなどについて説明します。
第 5 章 リンカの仕様
第 6 章 リンカのオプション
第 7 章 リンカの出力リストファイル
第 8 章 リンカの制限事項および Q&A
December 1, 2014, CM71-00327-9
49
Su pp or t
50
So ft
Manu al
CM71-00327-9, December 1, 2014
Support
Soft
Ma nual
第5章
リンカの仕様
この章では , リンカの概要とリンカの各機能につい
て説明します。
5.1 リンカの概要
5.2 リンカの機能
5.3 セクションの種類
5.4 セクションの結合
5.5 セクションの配置
5.6 セクションの自動配置
5.7 ライブラリの検索
5.8 ROM/RAM 領域
5.9 ROM → RAM 転送セクション
5.10 CPU 情報ファイル
5.11 SOFTUNE V3/V5 ツールで作成したオブジェクトの 入力
5.12 リンカでのオブジェクト混在
5.13 未使用関数削除
December 1, 2014, CM71-00327-9
51
第 5 章 リンカの仕様
Su pp or t
5.1
So ft
Manu al
リンカの概要
リンカは , アセンブラが出力した複数のオブジェクトモジュールを結合し , アドレス
解決などを行って実行形式のロードモジュールを作成するツールです。
■ リンカの概要
開発するプログラム規模が大きくなると , 1 本のソースプログラムだけですべてを記述
するのには無理が生じてきます。
また , C/C++ コンパイラを使用した開発では , 通常 C や C++ のライブラリファイルの
取り込みが必要になります。
複数の関連しあったオブジェクトモジュールを結合して , メモリ配置アドレスを割当
て , 実行可能な形式のロードモジュールを作成するのがリンカの役割です。
図 5.1-1 にリンカと入出力ファイルの関係を示します。
図 5.1-1 リンカと入出力ファイルの関係
アセンブラ
ライブラリ
相対形式
オブジェクト
(.lib)
(.obj)
リンカ
アセンブルリスト
(.lst)
絶対形式
アセンブルリスト
(.als)
オブジェクト
内容リスト
相対形式
ロードモジュール
(.mp1)
(.rel)
絶対形式
ロードモジュール
(.abs)
52
(.mpx)
(.mps)
(.mpm)
CM71-00327-9, December 1, 2014
第 5 章 リンカの仕様
Support
5.2
Soft
Ma nual
リンカの機能
リンカには多くの機能がありますが , 大きく分けると次の 4 つに分類できます。
• 入出力ファイル / メッセージに関する制御
• セクションの結合 / 配置に関する制御
• ライブラリの検索に関する制御
• エントリアドレス / シンボル値の設定
■ 入出力ファイル / メッセージに関する制御
入出力ファイルとその制御の概要について説明します。詳しくは「5.2.1 入出力ファイ
ル / メッセージに関する制御」を参照してください。
• 入力ファイルは , 次の 4 つです。
- 「アセンブラ出力オブジェクトモジュールファイル」
- 「リストファイル」
- 「リンカ出力の相対形式ロードモジュールファイル」
- 「ライブラリファイル」
• オブジェクトモジュールファイルとロードモジュールファイルは , コマンドライン
またはオプションファイル中に記述した順に処理されます。
• 出力ファイルは , 次の 3 つです。
- 最終目的となる「絶対形式ロードモジュールファイル」
- 再入力可能な「相対形式ロードモジュールファイル」
- 「リンクマップリストファイル」
• 出力ロードモジュールの形式 ( 絶対 / 相対 ) 指定や , 出力ファイル名の変更ができま
す。
• マップリストは 1 ページの行数やページ幅の変更ができます。
• オプションを指定することにより , 次の 4 つのファイルを出力できます。
- アセンブラが出力したリストファイルを絶対形式にした「絶対形式アセンブルリ
ストファイル」
- 各モジュールで使用している外部シンボルについてモジュール間の定義 / 参照の
相互参照を表示した「外部シンボル相互参照情報リスト」
- モジュールごとに使用したローカルシンボルに関する情報を表示した「ローカル
シンボル情報リスト」
- 各モジュール内のセクション配置アドレスを表示した「セクション詳細マップリ
スト」
これらのファイルを出力するには , リンク時のロードモジュールの形式を絶対指定に
する必要があります。
• メッセージにはプログラム版数などの情報を含む起動メッセージ , 簡単な使用方法
を示すヘルプメッセージ , およびエラーメッセージがあります。起動メッセージ出
力の有無を選択したり , ワーニング検出レベルの選択ができます。
December 1, 2014, CM71-00327-9
53
第 5 章 リンカの仕様
Su pp or t
So ft
Manu al
■ セクションの結合 / 配置に関する制御
セクションの結合 / 配置に関する制御の概要について説明します。詳しくは , 「5.2.2
セクションの結合 / 配置に関する制御」を参照してください。
• ROM および RAM のアドレス範囲を指定することで , 領域外への配置チェックがで
きます。
• セクションの指定では複数セクションをグループ化し , まとめて処理したり , 属性
別のセクション選択などができます。
• セクションの指定には , ワイルドカードが使用できますので , セクションが多数あ
る場合のセクション結合や配置の指定が簡潔に行えます。
• ROM 化支援機能を備えています。
• 指定した ROM および RAM 領域内への自動配置ができます。
■ ライブラリの検索に関する制御
ライブラリの検索に関する制御について概要を説明します。詳しくは「5.2.3 ライブラ
リの検索に関する制御」を参照してください。
• C/C++ での開発時に , リンクに必要な C/C++ の実行時ライブラリを自動識別して結
合できます ( デフォルトライブラリファイルの検索 )。
• ユーザが作成した複数のライブラリを検索できます。
• 個々のシンボルごとに , 検索するライブラリファイルを指定できます。
• ライブラリ検索の抑止ができます。
■ エントリアドレス / シンボル値の設定
一時的に未定義外部シンボルに値を割り付けたり , エントリアドレスを設定したりで
きます。詳しくは「5.2.4 エントリアドレス / シンボル値の設定」を参照してください。
54
CM71-00327-9, December 1, 2014
第 5 章 リンカの仕様
Support
5.2.1
Soft
Ma nual
入出力ファイル / メッセージに関する制御
リンカの機能のうち , 入出力ファイル / メッセージに関する制御を行うそれぞれの機
能について説明します。
■ 入力オブジェクトファイルの指定
リンカの入力となるファイルは , アセンブラ出力のオブジェクトモジュールファイル
と , リンカ出力の相対形式ロードモジュールファイルです。
入力するファイルすべてを指定します。ワイルドカードを使用することで簡単に指定
が行えます。
■ 出力ロードモジュールファイル名の指定
リンク後に生成される出力ロードモジュールファイル名は , デフォルトではリンカが
最初に入力したモジュールのファイル名をもとに作られます。
デフォルトファイル名は , リンク結果の全体を示す名称としては不適当である場合が
多いので , このデフォルト出力ファイル名を変更するための機能です。
特に , ワイルドカードを使用してファイル名を指定した場合には , 出力ファイル名がわ
かりにくくなりますので , 出力ファイル名の指定を行うことを推奨します。
■ デバッグ情報の継承
デバッグのためには , シンボル情報やソースファイルに関する情報が必要です。
C/C++ およびアセンブラで , デバッグ情報作成の指定 (-g オプション ) を行うと , オブ
ジェクトモジュール中にデバッグ情報が作成されます。
リンカでは , このデバッグ情報を継承してロードモジュール中に出力するか , 削除する
かを選択できます。
■ 出力フォーマットの指定
リンクした結果として , 絶対形式ロードモジュールを生成するのか , 相対形式ロードモ
ジュールを生成するのかを指定する機能です。
■ リストファイル名の指定
リストファイルは出力オブジェクトファイル名をもとに作成されますが , このデフォ
ルトファイル名を変更するための機能です。
■ リストファイルの形式変更
リストファイル作成ではページ制御を行っていますが , 1 ページの行数や 1 行の文字数
を変更できます。
また , シンボル名の文字数が長いときは 1 行に表示できる範囲で打ち切っていますが ,
ユーザの定義どおりの名称で表示するように指示できます。
■ 警告チェックレベルの選択
警告は軽微なエラーであり , リンク処理が継続できる程度の不都合が発生した場合に
通知されるメッセージですが , 修正を要するものと , そのままで特に問題のないものと
があります。これらのチェックレベルを選択できます。
■ 起動メッセージ表示の選択
起動時のツール名と著作権の表示を行うか否かを選択できます。
■ 終了メッセージ表示の選択
終了メッセージの表示を行うか否かを選択できます。
December 1, 2014, CM71-00327-9
55
第 5 章 リンカの仕様
Su pp or t
5.2.2
So ft
Manu al
セクションの結合 / 配置に関する制御
リンカの機能のうち , セクションの結合 / 配置に関する制御を行うそれぞれの機能に
ついて説明します。
■ ROM および RAM 領域の指定
ROM 領域と RAM 領域のアドレス範囲を指定して領域名称を定義すると , セクション
の配置指定時にアドレス指定の代わりにこの領域名称を用いることができ , 範囲外へ
の配置に対するチェックが可能になります。
セクションの自動配置を行う場合には , この領域指定範囲内に配置します。
■ セクションの配置順と配置アドレスの指定
すべてのセクションは任意の順序で , 任意の領域に配置できます。セクション名の指定
には , ワイルドカードが使用できます。
また , セクション内容種別を付加した指定が可能なので , ワイルドカードと組み合わせ
ることで同じ内容種別 (code, data など ) のセクションだけを集めることもできます。
■ セクションのグループ化
リンカは , セクション単位に結合と配置を行いますが , 多くのセクション名を使ってプ
ログラムを作成した場合 , セクションの配置指定が煩雑になります。
複数セクションにグループ名を付け , 連続領域に集めることで , そのまとまりをあたか
も 1 つのセクションのように扱うことができます。
■ ROM 化支援
C/C++でのプログラム開発においては初期値付変数が生成され, その変数の書換えなど
の処理を行うことが頻繁にあります。
組み込み用のアプリケーションにおいては , 初期値データは ROM に置き , 実行前に
RAM へデータを転送しないと使用できないことになります。
このような使用を可能にするための機能です。詳しくは「5.9 ROM → RAM 転送セク
ション」を参照してください。
56
CM71-00327-9, December 1, 2014
第 5 章 リンカの仕様
Support
5.2.3
Soft
Ma nual
ライブラリの検索に関する制御
リンカの機能のうち , ライブラリの検索に関する制御を行うそれぞれの機能につい
て説明します。
■ ライブラリ検索パス指定
ライブラリの検索パスは , 通常 C/C++ ライブラリを格納したディレクトリを環境変数
で指定しておきますが , ユーザが自身で作成したライブラリを別のディレクトリに格
納した場合などに指定します。
■ 検索ライブラリファイル指定
C/C++コンパイラが提供する実行時ライブラリ以外に, ユーザが独自に作ったライブラ
リファイルの名前を検索対象ライブラリとして指定します。
■ シンボルごとの検索ライブラリファイル指定
複数ライブラリファイルに同一の外部シンボル名が含まれている場合に , どのライブ
ラリファイルのモジュールをリンクするかを指定するために使用します。
■ ライブラリ検索の抑止
デフォルトライブラリの検索を禁止したり , すべてのライブラリ検索を行わないよう
にすることができます。
December 1, 2014, CM71-00327-9
57
第 5 章 リンカの仕様
Su pp or t
5.2.4
So ft
Manu al
エントリアドレス / シンボル値の設定
リンクの機能のうち , エントリアドレス / シンボル値の設定に関する機能について説
明します。
■ エントリアドレス指定
プログラムの実行開始アドレスを , 出力ロードモジュール中に設定する機能です。
■ 外部シンボル値の設定
プログラムが未完成であるか , 外部シンボル名を間違えているかなどが原因で , リンク
後に定義されていない外部シンボルがある場合はエラーとなります。
このエラーを一時的に取り除き , とりあえず実行可能なロードモジュールを作成した
い場合に仮の値を設定する機能です。
58
CM71-00327-9, December 1, 2014
第 5 章 リンカの仕様
Support
5.3
Soft
Ma nual
セクションの種類
リンカが結合処理を行うときの最小単位はセクションです。
セクションはプログラムでの使用目的の違いにより , 配置や結合の方法に特徴があ
ります。
セクション名 , 内容種別 , 配置属性 , 結合属性などについて説明します。
■ セクション名
セクションを識別するために付けた名前です。
■ セクション内容種別
使用目的の違いによるセクション内容種別には以下の 5 つがあります。
実行 , Read, Write の属性は , アセンブラが決定します。表 5.3-1 にセクションの種別を示
します。
表 5.3-1 セクションの種別
種別
説明
CODE
プログラムコード領域
DATA
CONST
STACK
IO
変数領域
初期値付変数領域
スタック領域
I/O 領域
属性
実行 , Read
Read, Write
Read
Read, Write
Read, Write
■ セクションの配置属性
セクションの配置に関する属性は , 再配置可能か否かの 2 種類あります。表 5.3-2 にセ
クションの配置属性を示します。
表 5.3-2 セクションの配置属性
属性
説 明
ABS
絶対番地の指定されたセクションです。
REL
再配置可能なセクションです。
■ セクションの結合属性
セクションの結合に関する属性は, 共有か連結かの2種類あります。表 5.3-3 にセクショ
ンの結合属性を示します。
表 5.3-3 セクションの結合属性
属性
PUBLIC
COMMON
説 明
次々に連続して結合されます。
同じアドレスに重ねあわせて結合されます。
■ セクションの識別
リンカでは , セクション名と内容種別と結合属性が同一で , REL 属性のセクションを同
一セクションとして扱います。
ABS 属性セクションは , リンカの配置処理の対象にはなりません。
リンカは , セクション名によってセクションの識別を行いますので , 同じセクション名
で内容種別や属性の異なるセクションは定義しないでください。
December 1, 2014, CM71-00327-9
59
第 5 章 リンカの仕様
Su pp or t
5.4
So ft
Manu al
セクションの結合
リンカでは , 「複数のオブジェクトを結合する」という表現を多く用いますが , 正確
には「オブジェクト中のセクションを結合する」という意味です。
セクションの結合方法には , 単純連結結合 (PUBLIC) と共有結合 (COMMON) があり
ます。
■ セクションの単純連結結合
同じセクション名と内容種別を持ち , 結合属性が PUBLIC である REL セクションは単
純連結結合を行います。
図 5.4-1 に , 2 つのオブジェクトファイル中の同一セクションの単純連結結合の概要を
示します。
結合後の全体のサイズは , A-1 と A-2 のサイズの合計に , バウンダリ調整により生じた ,
A-1 と A-2 の間の隙間分のサイズを加えたものとなります。
図 5.4-1 セクションの単純連結結合
セクションA-1
セクションA-1
セクションA-2
セクションA-2
■ セクションの共有結合
同じセクション名と内容種別を持ち , 結合属性が COMMON である REL セクションは
共有結合を行います。
初期値のない , データセクションでの使用が考えられます。
図 5.4-2 に , 2 つのオブジェクトファイル中の同一セクションの共有結合の概要を示し
ます。
結合後の全体のサイズは , A-1 と A-2 のサイズのうち大きい方になります。
図 5.4-2 セクションの共有結合
セクションA-1
セクションA-2
A-1
セクションA-2
60
CM71-00327-9, December 1, 2014
第 5 章 リンカの仕様
Support
5.5
Soft
Ma nual
セクションの配置
リンカは , 同一のセクションを結合したのちそれぞれのセクションの配置アドレス
を決定します。ここでは , ユーザがアドレス指定をした場合を含めて , リンカのセク
ション配置の方法を説明します。
■ セクションのリンク
結合と配置処理は , 相対セクションのみが対象となります。
絶対セクションは , 結合・配置の対象にはなりません。
セクションの結合・配置は , 以下のような手順で行います。
1) それぞれのオブジェクトモジュールから同一セクションを集める。
2) 集めた同一セクション同士を , 結合属性に従って結合する。
3) 同一セクションを結合したものを配置する。
セクション配置順序に関係するオプションが指定されている場合はそれに従って行わ
れ , 指定がない場合はオブジェクトファイル中での出現順がそのまま配置の順番にな
ります。
詳しくは , 「5.5.1 セクションの結合順序が指定されなかった場合の配置例」, 「5.5.2
セクションの結合順序が指定された場合の配置例」, 「5.5.3 セクショングループの指
定がある場合の配置例」を参照してください。
December 1, 2014, CM71-00327-9
61
第 5 章 リンカの仕様
Su pp or t
5.5.1
So ft
Manu al
セクションの結合順序が指定されなかった場合の配
置例
セクションの結合順序が指定されなかった場合の配置例を図 5.5-1 に示し , この図に
従って説明します。
■ セクションの結合順序が指定されなかった場合の配置例
オブジェクトファイルの入力順が , モジュール 1 → 2 → 3 であるとき , セクションの出
現順は A → B → C となるので , 配置アドレスも低い方から順に A → B → C となります。
図 5.5-1 セクションの結合順序が指定されなかった場合の配置例
モジュール1
モジュール2
モジュール3
ロードモジュール
A
A
A
A-1
B
B
A-2
A-3
C
C
B
C-1
C-2
( 注意事項 ) セクション A, C は PUBLIC 属性を持ち , セクション B は COMMON 属性
を持つとした場合。
62
CM71-00327-9, December 1, 2014
第 5 章 リンカの仕様
Support
5.5.2
Soft
Ma nual
セクションの結合順序が指定された場合の配置例
セクションの結合順序が指定された場合の配置例を図 5.5-2 に示し , この図に従って
説明します。
■ セクションの結合順序が指定された場合の配置例
オブジェクトファイルの入力順が , モジュール 1 → 2 → 3 であるとき , セクションの出
現順は A → B → C であるが , 配置順として A → C → B が指定された場合。
図 5.5-2 セクションの結合順序が指定された場合の配置例
モジュール1
モジュール2
モジュール3
ロードモジュール
A
A
A
A-1
B
B
A-2
A-3
C
C
C-1
C-2
B
( 注意事項 ) セクション A, C は PUBLIC 属性を持ち , セクション B は COMMON 属性
を持つとした場合。
December 1, 2014, CM71-00327-9
63
第 5 章 リンカの仕様
Su pp or t
5.5.3
So ft
Manu al
セクショングループの指定がある場合の配置例
セクショングループの指定がある場合の配置例を図 5.5-3 に示し , この図に従って説
明します。
■ セクショングループの指定がある場合の配置例
グループ指定がある場合は , それぞれのグループに属するセクションは連続した領域
に配置されます。セクションの出現順は , A → B → C → D → E → F ですが , F は C の
所属するグループ (C → D → F) に含まれているので , E の前に配置されます。
図 5.5-3 セクショングループの指定がある場合の配置例
モジュール1
モジュール2
モジュール3
ロードモジュール
A
A
A
A-1
A-2
B
B
C
D
A-3
B
C
C-1
C-2
E
E
F
D
F
F-2
F-3
E
( 注意事項 ) セクション B, E は COMMON 属性を持ち , ほかのセクションは PUBLIC 属
性とする。配置順序指定はなく , セクション C, D, F が , 同一グループにグ
ループ化される場合。
64
CM71-00327-9, December 1, 2014
第 5 章 リンカの仕様
Support
5.6
Soft
Ma nual
セクションの自動配置
通常リンカは , ユーザの配置指定に従って , セクション配置アドレスの決定を行いま
す。しかし , -AL オプションを指定することで , セクション配置アドレスの決定を自
動的にリンカに任せることが可能です。
-ra, -ro オプションで指定した領域内へセクション配置を行うとき , アブソリュート
セクションが存在していれば , 配置アドレスが重ならないように , リロケータブルセ
クションの配置を行います。このとき , アライメント値およびサイズの大きいセク
ションから順に配置し , 空き領域が最小となるような最適配置を行います。
■ セクションの自動配置
本リンカは , 以下に示す 2 つのタイプのセクションの自動配置をサポートしています。
• -AL 1 が指定された場合のセクションの自動配置
• -AL 2 が指定された場合のセクションの自動配置
セクションの自動配置の詳細については , 「5.6.1 -AL 1 が指定された場合のセクショ
ンの自動配置」, 「5.6.2 -AL 2 が指定された場合のセクションの自動配置」をご参照く
ださい。
December 1, 2014, CM71-00327-9
65
第 5 章 リンカの仕様
Su pp or t
5.6.1
So ft
Manu al
-AL 1 が指定された場合のセクションの自動配置
-AL 1 が指定されたとき , リンカは領域内に存在するアブソリュートセクションと配
置アドレスが重ならないように , リロケータブルセクションの配置を行います。
■ 配置アドレスの決定方法
自動配置の対象となるセクションは , -sc オプションで領域名指定が行われているセク
ションです。
各セクションの配置は , アライメント値の大きいセクション順に処理し , アライメント
値が同じ場合にはサイズの大きいセクションから順に処理されます。
表 5.6-1 に , 各セクションのアライメント値とサイズを示します。
表 5.6-1 各セクションのアライメント値 / サイズ
セクション名
アライメント値
サイズ
code1
2
0x0180
code2
2
0x0100
code3
2
0x0200
code4
4
0x0100
code5
4
0x0200
code6
2
0x0020
例えば , 表 5.6-1 のようなセクションでは , 次のように配置処理の順番が決定されます。
1) アライメント値が 4 であるセクション (code4, code5) が , アライメント値が 2 のセク
ション (code1, code2, code3) より先に配置処理が行われます。
2) code4 と code5 では , サイズが大きい code5 の方が先に配置処理されます。
したがって, 表 5.6-1 に示されるセクションの配置処理の順番は, 表 5.6-2 で示すように
なります。
表 5.6-2 各セクションのアライメント値 / サイズ
配置処理順
セクション名
アライメント値
サイズ
1
code5
4
0x0200
2
code4
4
0x0100
3
code3
2
0x0200
4
code1
2
0x0180
5
code2
2
0x0100
6
code6
2
0x0020
配置先は , 配置可能で最小の空きエリアが選択されます。
66
CM71-00327-9, December 1, 2014
第 5 章 リンカの仕様
Support
Soft
Ma nual
■ -AL 1 が指定された場合の配置例
リンカのオプション指定と各セクションの内容が , 下記例 ( 図 5.6-1 , 表 5.6-3 ) の場合
の配置例を示します。
図 5.6-1 リンカのオプション指定
-ro ROM=0xC1000/0xC18FF
-sc code1+code2+code3+code4+code5+code6=ROM
-AL 1
:
表 5.6-3 各セクションの内容
セクション名
配置属性
アドレス範囲
アライメント値
サイズ
code1
REL
-
2
0x0180
code2
REL
-
2
0x0100
code3
REL
-
2
0x0200
code4
REL
-
4
0x0100
code5
REL
-
4
0x0200
code6
REL
-
2
0x0020
AbsSec
ABS
0xC1120 ~ 0xC121F
0
0x0100
図 5.6-2 に , -AL 1 が指定された場合の配置例を示します。
このように , -AL 1 を使用すると , リンカが指定された領域内で , アブソリュートセク
ションと重ならないように , また空き領域が最小となるような最適配置を行います。
図 5.6-2 -AL になる AL 1 が指定された場合の配置例
0xC1000
code4
0xC1100
0xC1120
code6
AbsSec
0xC1220
code5
0xC1420
code3
0xC1620
code1
0xC17A0
code2
0xC18A0
未使用(空き)
0xC18FF
-scで指定された領域ROM
December 1, 2014, CM71-00327-9
67
第 5 章 リンカの仕様
Su pp or t
5.6.2
So ft
Manu al
-AL 2 が指定された場合のセクションの自動配置
-AL 2 が指定された場合 , リンカは配置指定の行われていないセクションを空き領域
に自動で配置します。
その際 , リンカはセクションの種別をもとに , ROM 領域または RAM 領域のどちら
に配置するかを判断します。
ここでは , セクションの種別ごとの配置先や配置アドレス決定の順序について説明
します。
また , -AL 2 が指定された場合の配置例を図 5.6-4 に示します。
■ セクション種別と配置先
-AL 2 が指定された場合 , リンカは配置指定の行われていないセクションを自動的に配
置します。このとき , リンカはセクション種別により , 表 5.6-4 に示すように配置先
( 領域 ) の決定を行います。
表 5.6-4 セクション種別と配置先
配置先
セクション種別
ROM 領域
(-ro で指定された領域 )
CODE
CONST
RAM 領域
(-ra で指定された領域 )
IO
DATA
STACK
■ 配置アドレスの決定方法
-AL 2が指定された場合 , リンカは, 表 5.6-5 に示す順にセクション配置アドレス決定を
行います。
表 5.6-5 で示す順のように , 自動配置よりもユーザ指定が優先されるようになっていま
す。
なお , リンカは , 配置可能な場所を検索する場合 , 常に低位アドレスから検索を行いま
す。
表 5.6-5 セクション配置先
順番
1
2
3
4
68
処理対象のセクション
配置先と配置方法
ABS 属性を持つセクション
セクションが持つアドレスに配置する。
-sc オプションで , "-sc Section=0x0100" のよ
うに , 配置アドレスの指定が行われている
セクション
-sc オプションで , "-sc Section=ROM" のよう
に , 配置領域の指定が行われているセク
ション
配置に関する指定が行われていないセク
ション
指定されたアドレスに配置する。
指定された領域内で , ほかのセクションと
重ならないように , 配置可能な場所を検索
して配置する。
表 5.6-4 に従って配置領域の決定を行い, そ
の領域内で , ほかのセクションと重ならな
いように , 配置可能な場所を検索して配置
する。
CM71-00327-9, December 1, 2014
第 5 章 リンカの仕様
Support
Soft
Ma nual
■ -AL 2 が指定された場合の配置例
リンカのオプション指定と各モジュールに含まれるセクションが, 下記例 (図 5.6-3 , 表
5.6-6 ) の場合の配置例を示します。
図 5.6-3 リンカのオプション指定
file1.obj, file2.obj file3.obj
-ro ROM=0xFF8000/0xFFFFFF
-ra RAM=0x000000/0x0007FF
-sc ivect=0xFFFF00
-AL 2
表 5.6-6 各モジュールに含まれるセクション
モジュール セクション名
種別
p1
CODE
p4
CODE
file1.obj
stk
STACK
ivect
CONST
i1
IO
file2.obj
d1
DATA
d3
DATA
p3
CODE
d2
CONST
file3.obj
p2
CODE
d4
DATA
配置属性
REL
REL
REL
REL
ABS
REL
ABS
REL
REL
ABS
REL
アドレス
0x0000
0x0200
0x9000
-
サイズ
0x0C00
0x1000
0x0100
0x0100
0x0080
0x0040
0x0180
0x1000
0x0300
0x0C00
0x0100
図 5.6-4 に , -AL 2 が指定された場合の配置例を示します。
このように , -AL 2 を使用すると , リンカが自動的にセクション配置を行うため , ユー
ザはプログラム動作上必要な , 最小限のオプション指定で済み , セクション配置指定の
手間が軽減されます。
December 1, 2014, CM71-00327-9
69
第 5 章 リンカの仕様
Su pp or t
So ft
Manu al
図 5.6-4 -AL 2 が指定された場合の配置例
0x0000
0xFF8000
i1
0x0080
0x00C0
d1
d4
0x01C0
0x0200
0x0480
stk
0xFF9000
0xFF9C00
p4
0xFFAC00
0xFFFF00
70
p3
未使用(空き)
未使用(空き)
0xFFFFFF
RAM領域
未使用(空き)
p2
0xFFBC00
0x07FF
p1
d2
0xFF8F00
未使用(空き)
d3
0x0380
0xFF8C00
ivect
ROM領域
CM71-00327-9, December 1, 2014
第 5 章 リンカの仕様
Support
5.7
Soft
Ma nual
ライブラリの検索
リンカでの検索を行いたいライブラリファイルは , 以下の 3 とおりの方法で指定で
きます。
• デフォルトライブラリの設定
• -l オプションによる指定
• -el オプションによる指定
■ 検索ライブラリの指定
リンカは , 指定された入力ファイルの結合がすべて終了した時点で , 未定義のシンボル
が残っていれば , その解決のためにライブラリファイルの検索を行います。
ライブラリファイルの検索は , 検索漏れが発生しないように再帰的に行われます。
検索すべきライブラリファイルは , 以下の 3 とおりの方法で指定できます。
● デフォルトライブラリの設定
プログラムを C/C++ 言語で記述した場合 , リンク時には C/C++ ライブラリが必要とな
ります。
リンク時にユーザが検索すべきライブラリファイルを指定することは面倒であり , 指
定を間違えれば意図しないモジュールを結合してしまうこともあります。
このようなことを防ぐために, C/C++コンパイラは選択すべきライブラリファイル名の
情報をアセンブラの疑似命令で指示し , アセンブラはその情報をオブジェクトモ
ジュール内に設定します。
このようにして , リンクされるオブジェクトモジュール内に設定されたライブラリ
ファイル名をデフォルトライブラリとよびます。
● -l オプションによる指定
デフォルトライブラリとして設定されていないライブラリファイルを検索対象とした
い場合は , ユーザがリンク時に指定しなくてはなりません。
ユーザ自身がライブラリファイルを作成し , これをリンクしたい場合 , 上記のデフォル
トライブラリとするために , アセンブラでライブラリ指定の疑似命令を記述するか , リ
ンカ起動時に -l オプションで指定します。
なお , -l オプションについて詳しくは「6.2.26 検索ライブラリファイルの指定 (-l) 」を
参照してください。
● -el オプションによる指定
ライブラリファイルは複数個指定できます。
異なるライブラリファイルに , 同一名の外部定義シンボルが含まれている場合もあり
得ます ( 原因の判りにくい障害を招く恐れがありますので , 極力避けてください ) 。
-el オプションは , シンボルごとにシンボル検索を行うライブラリファイル名を特定す
るための指定です。詳しくは「6.2.28 シンボル個別のライブラリの指定 (-el) 」を参照
してください。
■ ライブラリファイルの検索順序
リンカは , まず -el オプションで指定のあるシンボルについてシンボル参照を解決し ,
次に -l オプションで指定された順にライブラリの検索を行い , 最後にデフォルトライ
ブラリを検索します。ライブラリファイルから, モジュールの取り込みがなくなるまで,
この一連の検索が続けられます。
December 1, 2014, CM71-00327-9
71
第 5 章 リンカの仕様
Su pp or t
5.7.1
So ft
Manu al
ライブラリファイルが 1 つの場合の検索例 1
ライブラリファイルが 1 つの場合の検索例は 3 つあります。このうち 1 つを図 5.7-1
に示し , この図に従って説明します。
■ ライブラリファイルが 1 つの場合の検索例 1
図 5.7-1 ライブラリファイルが 1 つの場合の検索例 1
リンク後の
ロードモジュール
オブジェクトX
X
X
参照 (S1)
参照 (S2)
オブジェクトY
Y
定義 {S2}
参照 (S1)
参照 (S2)
+
抽出モジュール
A
定義 {S1}
Y
定義 {S2}
A
定義 {S1}
ライブラリファイル
シンボルテーブル
{S1} → A
{S2} → B
:
A
定義 {S1}
B
定義 {S2}
:
オブジェクトモジュール X と Y を結合した結果 , X 内の外部参照シンボル (S2) は , Y
内の外部定義シンボル {S2} によって解決されます。
X 内の外部参照シンボル (S1) が未解決のためライブラリを検索します。
モジュール A に , 外部定義シンボル {S1} が含まれているため , このモジュールを新た
にリンクします。
これで , 未解決の外部参照シンボルはなくなるため , モジュール X, Y, A から成るロー
ドモジュールを作成してリンク処理を終了します。
72
CM71-00327-9, December 1, 2014
第 5 章 リンカの仕様
Support
Soft
Ma nual
ライブラリ中のモジュール B に外部定義シンボル {S2} がありますが , 既にリンクされ
たモジュール Y に存在しているため , (S2) に関してはライブラリ検索の対象になりま
せん。
( 注意事項 ) 図中の ( ) で括ったシンボル名は " 参照 " を , { } で括ったシンボル名は
" 定義 " を表します。
December 1, 2014, CM71-00327-9
73
第 5 章 リンカの仕様
Su pp or t
5.7.2
So ft
Manu al
ライブラリファイルが 1 つの場合の検索例 2
ライブラリファイルが 1 つの場合の検索例は 3 つあります。このうち 1 つを図 5.7-2
に示し , この図に従って説明します。
■ ライブラリファイルが 1 つの場合の検索例 2
図 5.7-2 ライブラリファイルが 1 つの場合の検索例 2
リンク後の
ロードモジュール
オブジェクトX
X
X
参照 (S1)
参照 (S2)
Y
オブジェクトY
Y
参照 (S2)
ライブラリファイル
参照 (S1)
参照 (S2)
+
抽出モジュール
A
定義 {S1}
B
参照 (S2)
A
定義 {S1}
B
定義 {S2}
定義 {S2}
シンボルテーブル
{S1} → A
{S2} → B
:
A
定義 {S1}
B
定義 {S2}
:
オブジェクトモジュール X と Y を結合した結果 , X, Y 内の外部参照シンボル (S1) と
(S2) は , 共に未解決となります。
ライブラリを検索し , モジュール A に外部定義シンボル {S1} が , モジュール B に外部
定義シンボル {S2} が含まれているため , この 2 つのモジュールを新たにリンクします。
これで , 未解決の外部参照シンボルはなくなるため , モジュール X, Y, A, B から成る
ロードモジュールを作成してリンク処理を終了します。
( 注意事項 ) 図中の ( ) で括ったシンボル名は " 参照 " を , { } で括ったシンボル名は " 定
義 " を表します。
74
CM71-00327-9, December 1, 2014
第 5 章 リンカの仕様
Support
5.7.3
Soft
Ma nual
ライブラリファイルが 1 つの場合の検索例 3
ライブラリファイルが 1 つの場合の検索例は 3 つあります。このうち 1 つを図 5.7-3
に示し , この図に従って説明します。
■ ライブラリファイルが 1 つの場合の検索例 3
図 5.7-3 ライブラリファイルが 1 つの場合の検索例 3
リンク後の
ロードモジュール
オブジェクトX
X
+
参照 (S1)
X
参照 (S1)
Y
オブジェクトY
参照 (S1)
抽出モジュール
Y
参照 (S1)
A
A
定義 {S1}
参照 (S2)
定義 {S1}
参照 (S2)
ライブラリファイル
シンボルテーブル
{S1} → A
{S2} → B
:
B
B
定義 {S2}
定義 {S2}
A
定義 {S1}
参照 (S2)
B
定義 {S2}
:
オブジェクトモジュール X と Y を結合した結果 , X, Y 内の外部参照シンボル (S1) が未
解決となります。
ライブラリを検索し , モジュール A に外部定義シンボル {S1} が含まれているため , こ
のモジュールを新たにリンクします。
この結果 , 外部参照シンボル (S2) が新たな未解決シンボルとなるため , もう一度ライブ
ラリを検索し , {S2} の定義されているモジュール B をリンクします。
これで , 未解決の外部参照シンボルはなくなるため , モジュール X, Y, A, B から成る
ロードモジュールを作成してリンク処理を終了します。
( 注意事項 ) 図中の ( ) で括ったシンボル名は " 参照 " を , { } で括ったシンボル名は
" 定義 " を表します。
December 1, 2014, CM71-00327-9
75
第 5 章 リンカの仕様
Su pp or t
5.7.4
So ft
Manu al
ライブラリファイルが複数の場合の検索例 1
ライブラリファイルが複数の場合の検索例は 2 つあります。このうち 1 つを図 5.7-4
に示し , この図に従って説明します。
■ ライブラリファイルが複数の場合の検索例 1
図 5.7-4 ライブラリファイルが複数の場合の検索例 1
リンク後の
ロードモジュール
オブジェクトX
X
X
参照 (S1)
Y
オブジェクトY
Y
参照 (S3)
参照 (S1)
+
参照 (S3)
抽出モジュール
A
定義 {S1}
A
定義 {S1}
ライブラリファイル1
C
定義 {S3}
C
シンボルテーブル
{S1} → A
{S2} → B
:
定義 {S3}
A
定義 {S1}
B
定義 {S2}
:
ライブラリファイル2
シンボルテーブル
{S3} → C
:
C
定義 {S3}
:
検索対象のライブラリファイルが複数ある場合,指定された順にライブラリ検索を行い
ます。X, Y モジュールのリンク後 , 未解決シンボルの (S1) と (S3) が残ります。
ライブラリ 1, ライブラリ 2 の順で検索します。
ライブラリ 1 の検索で {S1} の定義のあるモジュール A をリンクします。
76
CM71-00327-9, December 1, 2014
第 5 章 リンカの仕様
Support
Soft
Ma nual
次に (S3) についてライブラリ 1 を検索しますが , 見つからなければライブラリ 1 の検
索を終了し , ライブラリ 2 を検索します。
{S3} がモジュール C で定義されていますので , このモジュールをリンクします。
( 注意事項 ) 図中の ( ) で括ったシンボル名は " 参照 " を , { } で括ったシンボル名は
" 定義 " を表します。
December 1, 2014, CM71-00327-9
77
第 5 章 リンカの仕様
Su pp or t
5.7.5
So ft
Manu al
ライブラリファイルが複数の場合の検索例 2
ライブラリファイルが複数の場合の検索例は 2 つあります。このうち 1 つを図 5.7-5
に示し , この図に従って説明します。
■ ライブラリファイルが複数の場合の検索例 2
図 5.7-5 ライブラリファイルが複数の場合の検索例 2
リンク後の
ロードモジュール
オブジェクトX
X
+
参照 (S1)
X
参照 (S1)
A
ライブラリファイル1
シンボルテーブル
{S1} → A
{S2} → B
:
定義 {S1}
抽出モジュール
A
定義 {S1}
A
定義 {S1}
B
定義 {S2}
:
ライブラリファイル2
シンボルテーブル
{S3} → C
:
C
定義 {S2}
:
検索対象のライブラリファイルが複数ある場合,指定された順にライブラリ検索を行い
ます。
複数のライブラリファイルに同一名の外部シンボル含まれている場合 , 先に検索した
ライブラリ中のモジュールをリンクします。
X モジュールの未解決シンボル (S1) の解決のために , ライブラリ 1, ライブラリ 2 の順
で検索します。
ライブラリ 1 の検索で {S1} の定義のあるモジュール A をリンクします。
78
CM71-00327-9, December 1, 2014
第 5 章 リンカの仕様
Support
Soft
Ma nual
この時点で , 未解決シンボルはなくなるため , ライブラリの検索は終了します。
この場合 , ライブラリ 2 の検索は行われません。
( 注意事項 ) 図中の ( ) で括ったシンボル名は " 参照 " を , { } で括ったシンボル名は
" 定義 " を表します。
December 1, 2014, CM71-00327-9
79
第 5 章 リンカの仕様
Su pp or t
5.7.6
So ft
Manu al
ライブラリファイルが個別に指定された場合の処理
ライブラリファイルが個別に指定された場合の処理を図 5.7-6 に示し , この図に従っ
て説明します。
■ ライブラリファイルが個別に指定された場合の処理
図 5.7-6 ライブラリファイルが個別に指定された場合の処理
リンク後の
ロードモジュール
オブジェクトX
X
X
参照 (S1)
参照 (S2)
+
ライブラリファイル1
抽出モジュール
参照 (S1)
参照 (S2)
C
C
シンボルテーブル
{S1} → A
{S2} → B
:
定義 {S2}
A
定義 {S2}
定義 {S1}
A
定義 {S1}
A
定義 {S1}
B
定義 {S2}
:
ライブラリファイル2
シンボルテーブル
{S2} → C
:
C
定義 {S2}
:
ライブラリファイルが個別に指定された外部参照シンボルは , まず最初に検索されま
す。
ここでは , (S2) シンボルをライブラリ 2 から取り込むように指定されたものとします。
(S2) についてライブラリ 2 を検索し , モジュール C をリンクします。
(S1) の解決に , ライブラリファイル 1 を検索し , モジュール A をリンクします。
ライブラリファイル 1 中の {S2} は , 検索対象になりません。
80
CM71-00327-9, December 1, 2014
第 5 章 リンカの仕様
Support
Soft
Ma nual
( 注意事項 )
• 図中の ( ) で括ったシンボル名は " 参照 " を , { } で括ったシンボル名は " 定義 " を表
します。
• 指定されたライブラリに , 検索対象の外部定義シンボルが見つからない場合 , この
例のようにほかの検索対象ライブラリ中に該当するシンボルがあればシンボル解
決が行われますので注意してください。
December 1, 2014, CM71-00327-9
81
第 5 章 リンカの仕様
Su pp or t
5.8
So ft
Manu al
ROM/RAM 領域
組み込み用のアプリケーション開発では , 使用することのできる ROM および RAM
のサイズや , アドレス範囲に制約があるものです。
リンク時に , リンカにこの領域を通知しておくことで , サイズオーバや使用できない
アドレスへのセクション配置についてのチェックができます。
セクションの自動配置を行う場合には , この領域指定範囲内に配置します。
■ ROM/RAM 領域の設定とセクション配置
リンカのセクション配置は , 【例 1】に示すようにセクション名 (CODE) と , 配置する
先頭アドレス (0x1000) を指定するといった方法で行います。
【例 1】
-sc CODE=0x1000,DATA=0x0180
セクションの終了アドレスは , リンク結果の出力であるマップリストにより確認する
必要があります。
本リンカでは , セクション配置の先頭アドレスと終了アドレスを指定することで , 決め
られた範囲内に配置されたか否かをチェックする機能を備えています。
まず , 【例 2】に示すように -ro および -ra オプションにより , 配置アドレス範囲を決め
て , 領域名と対応づけます。
【例 2】
-ro CodeA=0x1000/0x3FFF
-ra DataA=0x0180/0x057F
領域名 CodeA は , 0x1000 ~ 0x3FFF のアドレス範囲を示します。
領域名 DataA は , 0x0180 ~ 0x057F のアドレス範囲を示します。
領域名を使用したセクション配置指定は , 【例 3】のようになります。
【例 3】
-sc CODE=CodeA, DATA=DataA
領域名を使用したセクション配置では , 指定したアドレス範囲内に配置されたか否か
をチェックできます。
<注意事項>
ROM/RAM 領域は -cpu オプションで指定された MB 番号を元に CPU 情報ファイルから自
動的に次の名前で設定されます。
• ROM 領域 _ROM_*_
• RAM 領域 _RAM_*_
これらを用いて -sc オプションの設定を行うことが可能です。CPU 情報ファイルについ
ての詳細は , 「5.10 CPU 情報ファイル」を参照してください。
82
CM71-00327-9, December 1, 2014
第 5 章 リンカの仕様
Support
5.9
Soft
Ma nual
ROM → RAM 転送セクション
C/C++ コンパイラを使用したプログラム開発においては初期値付変数が生成され ,
その変数の書換えなどの処理を行うことが頻繁にあります。
これらの変数は実行時に書換えられるため , アプリケーション実行時は RAM になく
てはなりません。したがって , 組み込み用のプログラムにおいては , 初期値データは
ROM に置き , アプリケーション実行前に RAM へ初期値データを転送しないと使用
できないことになります。
ROM → RAM 転送セクションは , このような使用を可能にするための機能です。
■ ROM → RAM 転送セクション
C/C++コンパイラを使用したプログラム開発においては初期値付変数が生成され, その
変数の書換えなどの処理を行うことが頻繁にあります。
組み込み用プログラムでは , 初期値付変数データは ROM に置かれますが , これらの変
数は実行時に書換えられるため , アプリケーション実行時は RAM になくてはなりませ
ん。
したがって , アプリケーション実行前に RAM へ初期値データを転送して使用すること
になります。
本リンカでは , このような使用を簡単にするため , ROM → RAM 転送セクションを指
定することで , プログラムの参照アドレスは RAM 上で解決し , 初期値データは ROM
上に配置するしくみをサポートしています。
■ ROM → RAM 転送セクションの使用方法
ROM → RAM 転送セクションの指定は , -sc オプションを用いて次のように使用します。
初期値付変数がまとめられているセクションを INIT とします。
DATA は , 初期値なし変数のセクションとし , start は , ROM 上の初期値付変数データ
を RAM へ転送するプログラム , CODE は , 実行されるアプリケーションプログラムと
します。
-sc DATA+INIT=0x1000,[email protected]=0xC000
ここで, 上のように, RAM側(0x1000)にINITを配置するように指定し, ROM側(0xC000)
にもセクション名の先頭に @ マークを付加して INIT を配置するように指定します。
このように配置指定を行うと INIT は ROM → RAM 転送セクションとして処理され , 図
5.9-1 のような配置になり , INIT のアドレス解決は RAM 側で行われ , 初期値データは
ROM 側に配置されます。
図 5.9-1 ROM → RAM 転送セクションの配置例
0x1000
RAM
0xC000
ROM
DATA
INIT
start
CODE
(INIT)
December 1, 2014, CM71-00327-9
_RAM_INIT (転送先先頭アドレスシンボル)
_ROM_INIT (転送元先頭アドレスシンボル)
83
第 5 章 リンカの仕様
Su pp or t
So ft
Manu al
このとき , _ROM_INIT や _RAM_INIT のように , ROM → RAM 転送セクションには , そ
れぞれセクションの先頭を示すシンボルが "_ROM_ セクション名 ", "_RAM_ セクショ
ン名 " の規則で自動生成されます。
ユーザは , これらシンボルを , ROM 上の初期値付変数データを RAM へ転送するプロ
グラム内で使用できます。
"_ROM_ セクション名 ", "_RAM_ セクション名 " はリンカの予約シンボルです。プロ
グラム中で定義を行わないでください。詳細は , 「8.1 リンカの制限事項」を参照して
ください。また , 初期値付変数データの転送プログラム例は , 「8.2 リンカの使用上の
Q&A」を参照してください。
■ ROM → RAM 転送セクションの注意
ROM → RAM 転送セクションを指定するとセクションの Write 属性が無条件に変更さ
れます。
ROM 側へ配置されたセクションは , Write 属性が不可に変更され , RAM 側へ配置され
たセクションは Write 属性が可に変更されます。
次のようなプログラムの ROM → RAM 転送セクションを例に説明します。
.program
sample
.section
init, data
val1: .word
0x1234
val2: .word
0x5678
.section
val3: .res.w
Data, data
0x1
.section
Prog1, code
ld
@val1, r2
ld
@val2, r3
.section
Prog2, code
ldi
@val3, r13
cmp
#0, r13
上記プログラムでは , 初期値付変数が記述されているセクション init, 変数領域が記述
されているセクション Data, プログラムコードが記述されているセクション Prog1,
Prog2 があります。
それぞれのセクションのアセンブル後の実行 , Read, Write の可 / 不可は , 表 5.9-1 のよ
うになります。
84
CM71-00327-9, December 1, 2014
第 5 章 リンカの仕様
Support
Soft
Ma nual
表 5.9-1 アセンブル後の各セクションの属性
セクション名
実行
Read
Write
init
×
○
○
Data
×
○
○
Prog1
○
○
×
Prog2
○
○
×
○:可
× : 不可
ここで , リンク時に , init と Prog1 の ROM → RAM 転送セクション指定を行うと , それ
ぞれのセクションのリンク後の実行 , Read, Write の可 / 不可は , 表 5.9-2 のようになり
ます。
表 5.9-2 リンク後の各セクションの属性
セクション名
実行
Read
Write
備考
init(RAM 側 )
×
○
○
init(ROM 側 )
×
○
×
Data
×
○
○
Prog1(RAM 側 )
○
○
○
Write が可に変更された
Prog1(ROM 側 )
○
○
×
リンカにより用意された ROM 側のセクション
Prog2
○
○
×
リンカにより用意された ROM 側のセクション
Write が不可に変更された
○:可
× : 不可
December 1, 2014, CM71-00327-9
85
第 5 章 リンカの仕様
Su pp or t
5.10
So ft
Manu al
CPU 情報ファイル
リンカは , -cpu オプションから CPU を特定し , CPU 情報ファイルから ROM/RAM
領域を自動的に設定します。
■ CPU 情報ファイル
リンカは , -cpu オプションから CPU を特定し , CPU 情報ファイルから該当するチップ
の情報を抽出し , ROM/RAM 領域を自動的に設定します。
■ ROM/RAM 領域名
リンカは , ROM/RAM 領域を次の名前で設定します。
• ROM 領域の場合 : _ROM_*_
上記 * には , 低位アドレスの領域順に 1 から順番に番号が入ります。領域が 1 つし
かない場合は , "_ROM_1_" となります。
• RAM 領域の場合 : _RAM_*_
上記 * には , 低位アドレスの領域順に 1 から順番に番号が入ります。領域が 1 つし
かない場合は , "_RAM_1_" となります。
これら名前は , -sc オプションで使用可能です。
■ CPU 情報ファイル名
以下に , CPU 情報ファイル名と検索ディレクトリを示します。
● CPU 情報ファイル名
• 911.csv
● 検索ディレクトリ
• %FETOOL%\LIB\911
■ 内蔵 ROM/RAM 領域自動設定の抑止指定
リンカは , デフォルトで -cpu オプションから CPU を特定し , CPU 情報ファイルから該
当するチップの情報を抽出し , ROM/RAM 領域を自動的に設定します。
本機能を抑止したい場合は , -Xset_rora オプションを指定します。
<注意事項>
CPU 情報ファイルが見つからない場合 , または CPU 情報ファイル内に該当 MB 番号の情
報が存在しない場合 , リンカはエラーを出力します。
86
CM71-00327-9, December 1, 2014
第 5 章 リンカの仕様
Support
5.11
Soft
Ma nual
SOFTUNE V3/V5 ツールで作成したオブジェクトの
入力
リンカ (flnk911s) では , SOFTUNE V3 や SOFTUNE V5 の言語ツールで作成された
オブジェクトを混在することが可能です。
■ SOFTUNE V3/V5 ツールで作成したオブジェクトの混在
リンカ (flnk911s) では , SOFTUNE V3 や SOFTUNE V5 の言語ツール (fasm911s や
flib911s, flibs) で作成されたオブジェクトやライブラリの混在が可能です。
リンカは , -w オプションで 2 が指定されているときのみ , SOFTUNE V3/V5 のオブジェ
クトが入力された場合にインフォメーションを出力します。
<注意事項>
flnk911s が出力するロードモジュールファイルは , ダウンロード高速化に対応した新しい
ファイル形式で出力されるため , SOFTUNE V3/V5 デバッガや , SOFTUNE V3/V5 ロード
モジュールコンバータに入力できません。
なお , 新しいロードモジュールコンバータ (f2ms, f2is, f2es) は , SOFTUNE V3/V5 形式の
ロードモジュールも処理可能です。
December 1, 2014, CM71-00327-9
87
第 5 章 リンカの仕様
Su pp or t
5.12
So ft
Manu al
リンカでのオブジェクト混在
リンカ (flnk911s) は , オブジェクトやライブラリと -cpu で指定したターゲット
CPU に互換性があるかチェックします。
ターゲット CPU と互換性のあるオブジェクトやライブラリは , 混在が可能です。
オブジェクトやライブラリがターゲット CPU と互換性がない場合 , リンカはエラー
を出力します。
■ リンク時に指定される -cpu オプションと混在可能な CPU の関係
表 5.12-1 に , リンク時に指定される -cpu オプションと混在可能な CPU の関係を示しま
す。
表 5.12-1 リンク時に指定される -cpu オプションと混在可能な CPU の関係
オブジェクト , ライブラリ作成時の -cpu オプション指定
リンク時の -cpu
オプション指定
FR
FR80
FPU なし
の FR81
FR
◎
×
×
×
○
×
FR80
◇
◎
×
×
○
×
FPU なしの FR81
◇
△
◎
×
○
○
FPU 付き FR81
◇
◇
◇
◎
○
○
FPU 付き
全 FR 共通 FR81 共通
FR81
◎ : 同一ターゲットです。混在ではありません。
○ : 共通オブジェクトのため , 混在可能です。
△ : 下位 CPU 用のオブジェクトのため , 混在可能です。
リンカは ,-w オプションで 2 が指定された場合にインフォメーションを出力しま
す。
◇ : リンク時に警告が出力されます。オブジェクトの混在は可能です。
-omcl オプションで , エラー出力または混在許可 ( メッセージ出力なし ) に設定す
ることも可能です。
-omcl オプションの詳細は ,「6.2.39 オブジェクト混在チェックレベル指定 (-omcl) 」
を参照してください。
× : 混在できません。
リンカはエラーを出力します。
■ 下位 CPU 用オブジェクトの混在
リンカ (flnk911s) では ,-cpu オプションで指定したターゲット CPU と互換性がある場
合 , 下位 CPU 用のオブジェクトを混在できます。
リンカは , 警告レベルが 2 のときのみ , インフォメーションを出力します。
88
CM71-00327-9, December 1, 2014
第 5 章 リンカの仕様
Support
Soft
Ma nual
■ FR 用オブジェクトと FR80,FR81 用オブジェクトの混在
リンカ (flnk911s) は , ターゲット CPU が FR80 または FR81 の場合 ,FR 用オブジェクト
を混在すると警告を出力します。
警告は , オブジェクト混在チェックレベル指定オプション (-omcl) でエラー , または混
在許可 ( メッセージ出力なし ) に変更できます。
-omcl オプションの詳細は ,「6.2.39 オブジェクト混在チェックレベル指定 (-omcl) 」を
参照してください。
<注意事項>
以下の命令は ,FR 専用の命令のため , ターゲット CPU が FR80 または FR81 の時には使
用できません。
LDRES @Ri+,#u4
STRES #u4,@Ri
COPOP #u4,#CC,CRj,CRi
COPLD #u4,#CC,Rj,CRi
COPST #u4,#CC,CRj,Ri
COPSV #u4,#CC,CRj,Ri
■ FPU付きFR81用オブジェクトとFPUなしのFR81,FR80,FR用オブジェクトの混在
リンカ (flnk911s) は , ターゲット CPU が FPU 付き FR81 の場合 , FPU なしの FR81,FR80,FR
用オブジェクトを混在すると警告を出力します。
警告は , オブジェクト混在チェックレベル指定オプション (-omcl) でエラー , または混
在許可 ( メッセージ出力なし ) に変更できます。
-omcl オプションの詳細は ,「6.2.39 オブジェクト混在チェックレベル指定 (-omcl) 」を
参照してください。
■ 全 FR 共通オブジェクト
全 FR 共通オブジェクトは , 表 5.12-2 に示す命令がないオブジェクトです。
FR ファミリの全てのターゲット CPU で使用することができます。
共通オブジェクト作成方法の詳細は ,『FR ファミリ SOFTUNE アセンブラマニュアル
V6 対応』を参照してください。
表 5.12-2 全 FR 共通オブジェクトで使用できない命令 (1 / 2)
COPLD #u4,#CC,Rj,CRi
FLD @R15+, FRi
FSUBS FRk,FRj,FRi
COPOP #u4,#CC,CRj,CRi
FLD @Ri, FRi
LCALL label21
COPST #u4,#CC,CRj,Ri
FLDM (frlist)
LCALL:D label21
COPSV #u4,#CC,CRj,Ri
FMADDS FRk,FRj,FRi
LD @(BP,udisp18), Ri
FABSS FRj,FRi
FMOVS FRj,FRi
LDRES @Ri+,#u4
FADDS FRk,FRj,FRi
FMSUBS FRk,FRj,FRi
LDUB @(BP,udisp16), Ri
FBA label17
FMULS FRk,FRj,FRi
LDUH @(BP,udisp17), Ri
December 1, 2014, CM71-00327-9
89
第 5 章 リンカの仕様
Su pp or t
So ft
Manu al
表 5.12-2 全 FR 共通オブジェクトで使用できない命令 (2 / 2)
FBA:D label17
FNEGS FRj,FRi
MOV FRi, Ri
FBcc label17
FSQRTS FRj,FRi
MOV Ri, FRi
FBcc:D label17
FST FRi, @(BP,udisp18)
SRCH0 Ri
FCMPS FRk,FRj
FST FRi, @(R13,Ri)
SRCH1 Ri
FDIVS FRk,FRj,FRi
FST FRi, @(R14,disp16)
SRCHC Ri
FITOS FRj,FRi
FST FRi, @(R15,udisp16)
ST Ri, @(BP,udisp18)
FLD @(BP,udisp18), FRi
FST FRi, @-R15
STB Ri, @(BP,udisp16)
FLD @(R13,Ri), FRi
FST FRi, @Ri
STH Ri, @(BP,udisp17)
FLD @(R14,disp16), FRi
FSTM (frlist)
STRES #u4,@Ri
FLD @(R15,udisp16), FRi
FSTOI FRj,FRi
■ FR81 共通オブジェクト
FR81 共通オブジェクトは , 表 5.12-3 に示す命令がないオブジェクトです。
ターゲット CPU が FPU なしの FR81 と FPU 付きの FR81 のどちらの場合でも使用する
ことができます。
FR81 共通オブジェクト作成方法の詳細は ,『FR ファミリ SOFTUNE アセンブラマニュ
アル V6 対応』を参照してください。
表 5.12-3 FR81 共通オブジェクトで使用できない命令
COPLD #u4,#CC,Rj,CRi
FLD @(R14,disp16), FRi
FST FRi, @(R13,Ri)
COPOP #u4,#CC,CRj,CRi
FLD @(R15,udisp16), FRi
FST FRi, @(R14,disp16)
COPST #u4,#CC,CRj,Ri
FLD @R15+, FRi
FST FRi, @(R15,udisp16)
COPSV #u4,#CC,CRj,Ri
FLD @Ri, FRi
FST FRi, @-R15
FABSS FRj,FRi
FLDM (frlist)
FST FRi, @Ri
FADDS FRk,FRj,FRi
FMADDS FRk,FRj,FRi
FSTM (frlist)
FBcc label17
FMOVS FRj,FRi
FSTOI FRj,FRi
FBcc:D label17
FMSUBS FRk,FRj,FRi
FSUBS FRk,FRj,FRi
FCMPS FRk,FRj
FMULS FRk,FRj,FRi
LDRES @Ri+,#u4
FDIVS FRk,FRj,FRi
FNEGS FRj,FRi
MOV FRi, Ri
FITOS FRj,FRi
FSQRTS FRj,FRi
MOV Ri, FRi
FLD @(BP,udisp18), FRi
FST FRi, @(BP,udisp18)
STRES #u4,@Ri
FLD @(R13,Ri), FRi
90
CM71-00327-9, December 1, 2014
第 5 章 リンカの仕様
Support
5.13
Soft
Ma nual
未使用関数削除
未使用関数削除機能は , 使用しない関数のオブジェクトコードを削除して ROM 使用
量を削減するための機能です。
■ 未使用関数とは
未使用関数とは , プログラムの動作上一度も参照されない関数を指します。
【例】未使用関数の例
main.c
module1.c
module2.c
void main(void)
{
func1();
func3();
}
void func1(void)
{
func4();
}
void func2(void)
{
func8();
}
void func3(void)
{
func7();
}
void func4(void)
{
}
void func5(void)
{
}
void func6(void)
{
}
void func7(void)
{
func5();
}
void func8(void)
{
func6();
}
上記構成プログラムの場合 , 以下の関数が未使用関数です。
• func2()
• func6()
• func8()
■ 未使用関数削除機能
未使用関数削除機能は , 使用しない関数のオブジェクトコードを削除して ROM 使用量
を削減するための機能です。
未使用関数削除機能は , 以下のように未使用関数のオブジェクトコードを削除します。
1. -K LNKOPT オプションを指定して ,C/C++ ソースをコンパイルします。
リンク時に未使用関数を抽出するための情報を未使用関数情報ファイル (ufi ファイ
ル ) に出力します。
リンカが関数を削除できるように ,CODE セクションを関数単位に分割します。
2. コンパイラが出力した ufi ファイルを解析し , 未使用関数を抽出します。
3. 2. で未使用関数と判定された関数の CODE セクションを削除します。
December 1, 2014, CM71-00327-9
91
第 5 章 リンカの仕様
Su pp or t
92
So ft
Manu al
CM71-00327-9, December 1, 2014
Support
Soft
Ma nual
第6章
リンカのオプション
リンカの各オプションについて詳しく説明します。
6.1 リンカのオプション一覧
6.2 リンカのオプション詳細
December 1, 2014, CM71-00327-9
93
第 6 章 リンカのオプション
Su pp or t
6.1
So ft
Manu al
リンカのオプション一覧
リンカの動作を細かく指示するために , オプションがあります。
■ リンカのオプション一覧
リンカのオプション一覧を , 表 6.1-1 に示します。
表 6.1-1 リンカのオプション一覧 (1 / 3)
機能
出力ロードモ
ジュールに関す
る指定
入
出
力
制
御
オ
プ
シ
ョ
ン
-o
デバッグ情報出力指定
-g
デバッグ情報削除指定
-Xg
デフォルト
絶対形式ロードモジュール出力指定
-a
デフォルト
相対形式ロードモジュール出力指定
-r
パディングデータ指定
-p
ROM 領域のフィル指定
-fill
外部シンボル情報出力抑止指定
マップリストファイル名指定
マップリスト出力抑止指定
リスト表示の名前省略解除
メモリ使用情報リストの出力指定
デマングルシンボル名の出力抑止指定
デマングルシンボル名の出力指定
出力メッセージ
に関する指定
配置 / 結合オプション
ライブラリ制御
オプション
94
備考
出力ロードモジュールファイル名指定
外部シンボル情報出力指定
出力リストに関
する指定
オプション
デフォルト
デフォルト 0
-symtab
-Xsymtab
デフォルト
-m
デフォルト
-Xm
-dt
-mmi
-Xdemangle
-demangle
デフォルト
リスト行の桁数指定
-pw
デフォルト 80
リスト 1 ページの行数指定
-pl
デフォルト 0
ROM 領域のチェックサム指定
-cs
警告メッセージ出力レベル指定
-w
ROM 領域指定
-ro
デフォルト 1
RAM 領域指定
-ra
セクション配置
-sc
セクショングループ指定
-gr
パックリンク指定
-pk
自動配置指定
-AL
検索ライブラリファイル指定
-l
ライブラリ検索パス指定
-L
シンボル個別のライブラリ指定
-el
ライブラリ検索抑止指定
-nl
デフォルトライブラリ検索抑止指定
-nd
デフォルト 0
CM71-00327-9, December 1, 2014
第 6 章 リンカのオプション
Support
Soft
Ma nual
表 6.1-1 リンカのオプション一覧 (2 / 3)
機能
未使用関数削除機能
関連オプション
未使用関数削除指定
-lnkopt
C/C++ ソース実行開始シンボル指定
-entryc
削除対象外関数指定
-Xdel
未使用関数削除情報ファイル格納パス指定
-ufiin
エントリアドレス指定
-df
ターゲット CPU 指定
-cpu
CPU 情報ファイル指定
-cif
デバッグ情報存在チェック抑止指定
内蔵 ROM/RAM 領域の自動設定
-check_rora
ユーザ指定領域のチェック抑止指定
-Xcheck_rora
セクション配置領域チェック指定
-check_locate
プレリンク処理の抑止指定
-Xcheck_size0_sec
デフォルト 1
デフォルト
デフォルト
デフォルト
デフォルト
-XPLNK
絶対形式アセンブルリスト出力ディレクトリ指定
-alout
-als
絶対形式アセンブルリスト出力モジュール指定
-alsf
絶対形式アセンブルリスト出力抑止指定
-Xals
ROM/RAM, ARRAY リスト出力指定
-alr
ROM/RAM, ARRAY リスト出力モジュール指定
-alrf
ROM/RAM, ARRAY リスト出力抑止指定
-Xalr
-na/-an
外部シンボル相互参照情報リスト出力指定
-xl
外部シンボル相互参照情報リストファイル名指定
-xlf
外部シンボル相互参照情報リスト出力抑止指定
-Xxl
ローカルシンボルリスト出力指定
必須
-check_size0_sec
-alin
ROM/RAM, ARRAY リストのシンボルとアドレス
の表示位置指定
December 1, 2014, CM71-00327-9
-Xcheck_locate
相対形式アセンブルリスト入力ディレクトリ指定
絶対形式アセンブルリスト出力指定
オブジェクト内容
リスト出力関連
オプション
-set_rora
ユーザ指定領域のチェック指定
サイズ 0 のセクション配置チェック抑止指定
デフォルト
_main
-NCI0302LIB
-Xset_rora
サイズ 0 のセクション配置チェック指定
絶対形式アセンブル
リスト出力関連
オプション
-omcl
内蔵 ROM/RAM 領域自動設定の抑止指定
セクション配置領域チェック抑止指定
備考
-e
外部シンボル値の仮設定
オブジェクト混在チェックレベル指定
その他のリンク制御
オプション
オプション
-sl
ローカルシンボルリストファイル名の指定
-slf
ローカルシンボルリスト出力抑止指定
-Xsl
セクション詳細マップリスト出力指定
-ml
セクション詳細マップリストファイル名の指定
-mlf
セクション詳細マップリスト出力抑止指定
-Xml
95
第 6 章 リンカのオプション
Su pp or t
So ft
Manu al
表 6.1-1 リンカのオプション一覧 (3 / 3)
機能
オプション
デフォルトオプションファイル読み込み抑止指定
-Xdof
オプションファイル読み込み指定
共通オプション
-help
版数 / メッセージ出力指定
-V
版数 / メッセージ出力抑止
-XV
終了メッセージ表示抑止指定
96
-f
ヘルプメッセージ表示指定
終了メッセージ表示指定
備考
デフォルト
-cmsg
-Xcmsg
ワーニング発生時の終了コードを 1 にする指定
-cwno
ワーニング発生時の終了コードを 0 にする指定
-Xcwno
デフォルト
デフォルト
CM71-00327-9, December 1, 2014
第 6 章 リンカのオプション
Support
6.2
Soft
Ma nual
リンカのオプション詳細
ここでは , リンカの各オプションについて説明します。
なお , リンケージキットで共通のオプションは , 「 第 3 章 共通オプション」で説明
しています。
■ 出力モジュールに関するオプション
出力モジュールに関するオプションの詳細を「6.2.1 出力ロードモジュールファイル名
指定 (-o) 」~「6.2.9 外部シンボル情報出力抑止指定 (-Xsymtab) 」で説明します。
■ 出力リストに関するオプション
出力リストに関するオプションの詳細を「6.2.10 マップリストファイル名の指
定 (-m) 」~「6.2.18 ROM 領域のチェックサム指定 (-cs)」で説明します。
■ 出力メッセージに関する指定
出力メッセージに関するオプションの詳細を「6.2.19 警告メッセージ出力レベルの指
定 (-w) 」で説明します。
■ 配置 / 結合オプション
配置 / 結合に関するオプションの詳細を「6.2.20 ROM 領域の指定 (-ro) 」~「6.2.25 自
動配置指定 (-AL) 」で説明します。
■ ライブラリ制御オプション
ライブラリ制御オプションの詳細を「6.2.26 検索ライブラリファイルの指定 (-l) 」~
「6.2.30 デフォルトライブラリ検索の抑止指定 (-nd) 」で説明します。
■ 未使用関数削除機能関連オプション
未使用関数削除機能関連オプションの詳細を「6.2.31 未使用関数削除指定 (-lnkopt)」
~ 「6.2.34 未使用関数削除情報ファイル格納パス指定 (-ufiin)」で説明します。
■ その他のリンク制御オプション
その他のリンク制御に関するオプションの詳細を「6.2.35 エントリアドレスの指定
(-e) 」~「6.2.49 プレリンク処理の抑止指定 (-XPLNK)」で説明します。
■ 絶対形式アセンブルリスト出力関連オプション
絶対形式アセンブルリスト出力に関するオプションの詳細を「6.2.50 相対アセンブル
リスト入力ディレクトリ指定 (-alin) 」~「6.2.58 ROM/RAM, ARRAY リストのシンボ
ルとアドレスの表示位置指定 (-na, -an) 」で説明します。
■ オブジェクト内容リスト出力関連オプション
オブジェクト内容リスト出力に関するオプションの詳細を「6.2.59 外部シンボル相互
参照情報リスト出力指定 (-xl) 」~「6.2.67 セクション詳細マップリスト出力抑止指定
(-Xml) 」で説明します。
December 1, 2014, CM71-00327-9
97
第 6 章 リンカのオプション
Su pp or t
6.2.1
So ft
Manu al
出力ロードモジュールファイル名指定 (-o)
リンク結果のロードモジュールファイル名を指定します。このオプションが指定さ
れないときは , 最初に入力したファイル名から出力ファイル名を作ります。
■ 出力ロードモジュールファイル名指定 (-o)
【記述形式】
-o
<ロードモジュールファイル名>
( デフォルト )
【パラメータ】
<ロードモジュールファイル名>
出力ロードモジュールファイル名です。
【説明】
リンク結果の出力ロードモジュールファイル名を指定します。
本オプション指定がない場合は , リンカが最初に入力したファイル名をもとに , リンク
モードに応じた拡張子を付加した名称で出力ファイルを作ります。
リンクモード
デフォルト拡張子
絶対形式出力 (-a オプション )
.abs
相対形式出力 (-r オプション )
.rel
<ロードモジュールファイル名>の指定で拡張子を省略した場合も , リンクモードの
違いにより同様の拡張子が付加されます。
【例 1】
flnk911s putc.obj,getc.obj
ファイル名 putc.abs でロードモジュールファイルを作成します。
【例 2】
flnk911s *.obj -o outfile
ファイル名 outfile.abs でロードモジュールファイルを作成します。
この例のように , 入力オブジェクトファイル指定にワイルドカードを使用する場合に
は , 本オプションを使用して出力ファイル名を明確にしておくことをお勧めします。
【例 3】
flnk911s *.obj -o outfile.
ファイル名 outfile. でロードモジュールファイルを作成します。
ファイル名の最後にピリオドがある場合は , 拡張子ありとみなします。
【例 4】
flnk911s *.obj -r -o outfile.rel
ファイル名 outfile.rel で相対形式ロードモジュールファイルを作成します。
98
CM71-00327-9, December 1, 2014
第 6 章 リンカのオプション
Support
6.2.2
Soft
Ma nual
デバッグ情報の出力指定 (-g)
C/C++ コンパイラやアセンブラで , デバッグ情報の出力指定をして作られたオブ
ジェクトモジュールには , デバッガで利用するためのデバッグ情報が含まれていま
す。
デバッグ情報をリンク後も継承して使用するためには , -g オプションを指定します。
■ デバッグ情報の出力指定 (-g)
【記述形式】
-g
【パラメータ】
なし
【説明】
リンカは , 入力するオブジェクトモジュールファイル , または相対形式ロードモジュー
ルファイルにデバッグ情報が含まれている場合 , デフォルト出力ではデバッグ情報を
削除します。
出力ロードモジュールファイル中にデバッグ情報を残したい場合に , 本オプションを
使用します。
リンカは , デバッグ情報を新たに作り出すことはありませんので , 入力ファイルにデ
バッグ情報が含まれていない場合は , 指定することに意味はありません。
デバッグ時にシンボリックデバッグを行いたい場合には , C/C++ コンパイラ , アセンブ
ラ , リンカのすべてのツールで -g オプションの指定をしてください。
【例】
図 6.2-1 デバッグ情報の出力指定例
flnk911s -f rllnk.opt b1 b2
rllnk.opt
-r
-g
-pw 100
-o rel1.rel
December 1, 2014, CM71-00327-9
#
#
#
#
relocatable LM output
debug info.
page width
output filename
99
第 6 章 リンカのオプション
Su pp or t
6.2.3
So ft
Manu al
デバッグ情報の削除指定 (-Xg)
C/C++ コンパイラやアセンブラで , デバッグ情報の出力指定をして作られたオブ
ジェクトモジュールには , デバッガで利用するためのデバッグ情報が含まれていま
す。
デバッグ情報をリンク後に取り去るためには , -Xg オプションを指定します。また
は , -g オプションの指定を行わないようにします。
■ デバッグ情報の削除指定 (-Xg)
【記述形式】
( デフォルト )
-Xg
【パラメータ】
なし
【説明】
リンカは , デフォルト出力ではデバッグ情報を削除しますので , 本オプションを指定す
る必要はありません。
オプションファイルを利用したリンクにおいて , オプションファイル中に -g オプショ
ンがある場合など , -g オプションを無効にするときに使用します。
【例】
図 6.2-2 デバッグ情報の削除指定例
flnk911s -f rllnk.opt a1 a2 a3 -Xg -o a123.rel
rllnk.opt
-r
-g
-pw 100
-o rel1.rel
100
#
#
#
#
relocatable LM output
debug info.
page width
output filename
CM71-00327-9, December 1, 2014
第 6 章 リンカのオプション
Support
6.2.4
Soft
Ma nual
絶対形式ロードモジュールの出力指定 (-a)
-a オプションは , リンカの最終目的ファイルである , 絶対形式のロードモジュールを
作成することを指示するオプションです。
■ 絶対形式ロードモジュールの出力指定 (-a)
【記述形式】
( デフォルト )
-a
【パラメータ】
なし
【説明】
絶対形式のロードモジュールファイル出力を指示します。
リンカのデフォルト出力は絶対形式ですので , 通常使用することはありません。-r オプ
ション指定を打ち消し -a 指定に変更する場合に指定します。
絶対形式の出力ファイルは , 以下の名前で作成されます。
• -o オプション指定がないとき : 最初に指定された入力ファイルの拡張子を ".abs" と
した名称。
• -o オプション指定があるとき : 指定された名称。拡張子指定がないときは , ".abs" を
付加した名称。
【例】
flnk911s a1 a2 a3 -r -o a123.abs -a
コマンドラインの途中の -r オプションを無効にします。
出力ロードモジュールファイルは , 絶対形式で作成されます。
December 1, 2014, CM71-00327-9
101
第 6 章 リンカのオプション
Su pp or t
So ft
Manu al
相対形式ロードモジュールの出力指定 (-r)
6.2.5
-r オプションは , 再入力可能な相対形式ロードモジュールを作成することを指示する
オプションです。相対形式のロードモジュールは , アドレス解決を行わないで複数
のモジュールを 1 つのファイルにまとめた形式を持っています。
■ 相対形式ロードモジュールの出力指定 (-r)
【記述形式】
-r
【パラメータ】
なし
【説明】
相対形式のロードモジュールファイル出力を指示します。
リンカのデフォルト出力 ( 絶対形式 ) を変更するときに指定します。
-a オプションのあとに -r オプションを指定すると , -a オプションを無効にすることが
できます。
相対形式のロードモジュールは , アドレス解決を行わないで複数のオブジェクトモ
ジュールを 1 つのファイルにまとめた形式です。リンカへの再入力が可能です。以降
のリンク処理で指定する入力ファイル数を少なくできます。リロケータブルロードモ
ジュール中のモジュールを差し替えることはできません。
このオプションが指定された場合 , 絶対形式アセンブルリスト , オブジェクト内容リス
トに関するオプションはすべて無視され , それらのファイルは出力されません。
出力ファイルは , 以下の名前で作成されます。
• -o オプション指定がないとき : 最初に指定された入力ファイルの拡張子を ".rel" と
した名称。
• -o オプション指定があるとき : 指定された名称。拡張子指定がないときは , ".rel" を
付加した名称。
【例】
flnk911s a1 a2 a3 -r -o a123.rel
リンカの出力オブジェクトを相対形式にします。
<注意事項>
最初に指定された入力ファイルが , 拡張子 ".rel" であるとき , 出力ファイル名が同じにな
ります。この場合 , 入力ファイルの内容は保存されませんので , 不都合がある場合には ,
-o オプションで出力ファイル名の指定をしてください。
102
CM71-00327-9, December 1, 2014
第 6 章 リンカのオプション
Support
6.2.6
Soft
Ma nual
パディングデータ指定 (-p)
-p オプションは , 境界整合などで発生したオブジェクトの隙間を指定した値で埋め
るオプションです。
本オプションは , 絶対形式のロードモジュールを作成する場合にのみ有効です。
相対形式ロードモジュールを作成する場合には意味を持ちません。
■ パディングデータ指定 (-p)
【記述形式】
-p <値>
( デフォルト : 0)
【パラメータ】
<値>
1 バイトのデータ
【説明】
絶対形式ロードモジュールファイルを作成時に , セクション配置により発生したオブ
ジェクトの隙間を埋めるバイトの値を指示します。
0 ~ 255 の値が指定可能です。
リンカでセクション配置を行う際 , セクションの境界整合などの条件により , 図 6.2-3
のようにオブジェクトデータの存在しない数バイトの隙間が発生することがありま
す。
図 6.2-3 セクション配置時の境界整合により隙間の発生した例
Section A
0x1000
0xA0
0x1001
0xB1
0x1002
Section Bの境界整合により
発生した2バイトの隙間
0x1003
0x1004
0xA0
Section B
4バイト境界に配置するよう指定
されているセクション。
本オプションはセクション配置により発生した隙間を特定のデータ値で埋める場合に
使用します。
リンカは本オプションが指定されていない場合 , オブジェクトデータの存在しない隙
間を 0 で埋めます。
【例】
flnk911s a1 a2 a3 -p 255
… 隙間を 255 で埋めます。
flnk911s a1 a2 a3 -p 0xff
… 隙間を 255 で埋めます。
flnk911s a1 a2 a3 -p 0xaa
… 隙間を 170 で埋めます。
December 1, 2014, CM71-00327-9
103
第 6 章 リンカのオプション
Su pp or t
6.2.7
So ft
Manu al
ROM 領域のフィル指定 (-fill)
-fill オプションは指定した領域を指定した値で埋めるオプションです。
■ ROM 領域のフィル指定 (-fill)
【記述形式】
-fill <スタートアドレス>/<エンドアドレス>,<フィル値>[/<ビット幅>] [/<エンディアン>]
【パラメータ】
< スタートアドレス >
値を埋める領域の開始アドレスを指定します。このパラメータは省略できません。
< エンドアドレス >
値を埋める領域の終了アドレスを指定します。このパラメータは省略できません。
< フィル値 >
スタートアドレスとエンドアドレスで指定した領域 ( 以下 , フィル領域とよぶ ) のオブ
ジェクトデータがない箇所を埋める値を指定します。このパラメータは省略できませ
ん。
< ビット幅 >
フィル値のビット幅は 8,16 または 32 のどれかを指定します。このパラメータは省略で
きます。省略時のビット幅は 8 です。
8: 8 ビット
16: 16 ビット
32: 32 ビット
< エンディアン >
フィル値のエンディアンを B または L で指定します。このパラメータは省略できます。
省略時のエンディアンは B です。
B: ビッグエンディアン
L: リトルエンディアン
【説明】
フィル領域のオブジェクトデータがない箇所を指定したフィル値で埋めます。値を埋め
る領域が複数ある場合 , -fill オプションを複数指定してください。値を埋める領域が重
複した場合 , 重複した領域は後に指定した -fill オプションのフィル値で埋められます。
-cs オプションの値を埋める領域と -fill オプションの値を埋める領域が重複した場合 ,
重複した領域は常に -fill オプションのフィル値で埋められます。
本オプションは , 絶対形式ロードモジュール作成時に有効となります。相対形式ロード
モジュール作成時は , 以下の警告メッセージが出力され , 本オプションの指定は無視さ
れます。
[ 警告メッセージ ]
*** W1321L: REL モード時には (-fill) オプションは無視されます。
104
CM71-00327-9, December 1, 2014
第 6 章 リンカのオプション
Support
Soft
Ma nual
【例】
以下のような指定を行った場合 , 各領域は図 6.2-4 のようにフィル値で埋められま
す。
flnk911s -fill 0x700000/0x8FFFFF,0x0055AAFF/32/B -fill
0x900000/0xAFFFFF,0x1234/16/L -fill 0xA00000/0xAFFFFF,
0x5678/16/B
図 6.2-4 フィル領域指定例
flnk911s
-fill 0x700000/0x8FFFFF,0x0055AAFF/32/B
-fill 0x900000/0xAFFFFF,0x1234/16/L
-fill 0xA00000/0xAFFFFF,0x5678/16/B
①
②
③
フィル領域
フィル領域配置イメージ
0x700000
①の指定領域
①の指定領域
①で指定したフィル値で埋められます。
(0x00,0x55,0xAA,0xFF,0x00,0x55,
0xAA,00xFF,・・・)
②の指定領域
②で指定したフィル値で埋められます。
(0x34,0x12,0x34,0x12,・・・)
③の指定領域
③で指定したフィル値で埋められます。
(0x56,0x78,0x56,0x78,・・・)
0x8FFFFF
0x900000
②の指定領域
0x9FFFFF
0xA00000
③の指定領域
0xAFFFFF
②と③のフィル領域は重なっています。
③のフィル領域指定が②より後に行われているため,
重なっている領域は③で指定したフィル値で埋められます。
オブジェクトデータと値を埋める領域が重なる場合 , 図 6.2-5 のように , 各領域がフィ
ル値で埋められた後 , オブジェクトデータが配置されます。
図 6.2-5 最終的なオブジェクトデータ
セクション配置前のオブジェクトデータ
セクション配置後のオブジェクトデータ
0x700000
フィル領域配置後に
セクションが配置されます。
オブジェクトデータ
オブジェクトデータ
0x8FFFFF
0x900000
0x9FFFFF
0xA00000
オブジェクトデータ
オブジェクトデータ
0xAFFFFF
December 1, 2014, CM71-00327-9
105
第 6 章 リンカのオプション
Su pp or t
6.2.8
So ft
Manu al
外部シンボル情報出力指定 (-symtab)
-symtab オプションは , 絶対形式ロードモジュールを作成する際に , 外部シンボル情
報をロードモジュールに出力することを指示するオプションです。
本オプションは , 絶対形式のロードモジュールを作成する場合にのみ有効です。
相対形式ロードモジュールを作成する場合には意味を持ちません。
■ 外部シンボル情報出力指定 (-symtab)
【記述形式】
-symtab
【パラメータ】
なし
【説明】
絶対形式のロードモジュールファイル出力する際に , ロードモジュール内に外部シン
ボル情報を含めることを指示します。
外部シンボル情報とは , リンカが外部シンボル値の解決に使用する情報で , SOFTUNE
Workbench でデバッグを行う際に必要となるデバッグ情報とは , 別の情報です。
リンカのデフォルトでは , 外部シンボル情報を絶対形式ロードモジュールに出力しま
せん。
【例】
flnk911s a1 a2 a3 -symtab
106
CM71-00327-9, December 1, 2014
第 6 章 リンカのオプション
Support
6.2.9
Soft
Ma nual
外部シンボル情報出力抑止指定 (-Xsymtab)
-Xsymtab オプションは , 絶対形式ロードモジュールを作成する際に , 外部シンボル
情報をロードモジュールへ出力することを抑止するオプションです。
本オプションは , 絶対形式のロードモジュールを作成する場合にのみ有効です。
相対形式ロードモジュールを作成する場合には意味を持ちません。
■ 外部シンボル情報出力抑止指定 (-Xsymtab)
【記述形式】
-Xsymtab
【パラメータ】
なし
【説明】
絶対形式のロードモジュールファイル出力する際に , ロードモジュール内に外部シン
ボル情報を含めないことを指示します。
外部シンボル情報とは , リンカが外部シンボル値の解決に使用する情報で , SOFTUNE
Workbench でデバッグを行う際に必要となるデバッグ情報とは , 別の情報です。
リンカのデフォルトです。
-symtab オプションを無効にしたい場合に使用します。
【例】
flnk911s a1 a2 a3 -symtab -Xsymtab
December 1, 2014, CM71-00327-9
107
第 6 章 リンカのオプション
Su pp or t
6.2.10
So ft
Manu al
マップリストファイル名の指定 (-m)
リンカが出力するマップリストファイルのファイル名を指定します。
このオプションが指定されないときは , 出力ロードモジュールファイル名からファ
イル名を作ります。
■ マップリストファイル名の指定 (-m)
【記述形式】
-m
<マップリストファイル名>
( デフォルト )
【パラメータ】
<マップリストファイル名>
出力マップリストファイル名パラメータは省略できません。
【説明】
リンカは , デフォルトでマップリストファイルを出力します。このとき , 出力ロードモ
ジュールファイルの拡張子を , ".mp1" とした名称のファイルが作られます。
-m オプションは , デフォルトのマップリストファイル名を変更したいときに使用しま
す。
-Xm オプションの後に -m オプションを指定すると , -Xm オプションを無効にすること
ができます。
【例】
flnk911s a1 a2 a3 -r -o a123.rel -m a123.map
リンカが出力するマップリストファイル名を a123.map にします。
108
CM71-00327-9, December 1, 2014
第 6 章 リンカのオプション
Support
6.2.11
Soft
Ma nual
マップリスト出力の抑止指定 (-Xm)
リンカにマップリストファイルを出力しないことを指示します。このオプションを
指定しないときは , 必ずマップリストファイルが作成されます。
■ マップリスト出力の抑止指定 (-Xm)
【記述形式】
-Xm
【パラメータ】
なし
【説明】
マップリストファイルの出力の抑止を行います。
-m オプションの後に -Xm オプションを指定すると , -m オプションを無効にすること
ができます。
-Xm オプションの指定により , -dt, -pw, -pl オプションは無効になります。
【例】
flnk911s a1 a2 a3 -r -o a123.rel -Xm
マップリストファイルの作成は行わないようにします。
December 1, 2014, CM71-00327-9
109
第 6 章 リンカのオプション
Su pp or t
6.2.12
So ft
Manu al
リスト表示の名前の省略解除 (-dt)
リンカのマップリスト , オブジェクト内容リストには , セクション名やシンボル名な
ど名前の表示がありますが , デフォルトでのリスト出力では見やすさを考慮して , 長
い名前は途中までを表示するようにしています。
このオプションは , 名前を省略せずに出力することを指示します。
マップリストの表示フォーマットについては , 「7.2 リンクリストファイル」を参照
してください。
■ リスト表示の名前の省略解除 (-dt)
【記述形式】
-dt
【パラメータ】
なし
【説明】
マップリスト , オブジェクト内容リストで表示されるシンボル名およびセクション名
を途中で省略せずに表示します。この場合 , 1 つのシンボル名 , セクション名は数行に
渡って表示されます。
デフォルト出力では 80 文字程度の表示ができますが , リスト 1 行の表示桁数を小さな
値に設定したときに表示可能な文字数も減りますので , シンボル名およびセクション
名の省略表示が起こりえます。
【例】
flnk911s a1 a2 a3 -o a123.abs -m a123.map -dt
使用されているシンボル名およびセクション名は , 省略することなくリストに表示
します。
110
CM71-00327-9, December 1, 2014
第 6 章 リンカのオプション
Support
6.2.13
Soft
Ma nual
メモリ使用情報リストの出力指定 (-mmi)
リンカが出力するマップリストファイルの中にメモリ使用情報を出力するように指
示します。
■ メモリ使用情報リストの出力指定 (-mmi)
【記述形式】
-mmi
【パラメータ】
なし
【説明】
リンカが , デフォルトで出力するマップリストファイルの中に , オプションで指定され
た ROM 領域と RAM 領域の使用状況を示すメモリ使用情報リストを出力します。
使用可能領域 , 使用した領域や領域内ギャップの位置とサイズなどの情報を表示しま
す。
【例】
flnk911s l0mp00 im_lnk -mmi -ra RAM1=0x1000/0x1FFF,RAM2=0x2000/0x23FF
-ro ROM1=0xBC000/0xBCFFF,ROM2=0xBD000/0xBFFFF -AL 2
<注意事項>
-mmi が指定されていても , 以下の場合は出力を行いません。
• メモリ領域の設定がない (-ra, -ro の指定がない ) 。
• マップリストファイルの出力が有効になっていない。
December 1, 2014, CM71-00327-9
111
第 6 章 リンカのオプション
Su pp or t
6.2.14
So ft
Manu al
リスト表示のデマングルシンボル名の出力抑止指定
(-Xdemangle)
リンカのマップリスト中シンボルリスト部に表示される外部シンボル名のデマング
ルシンボル名表示を抑止します。
■ リスト表示のデマングルシンボル名の出力抑止指定 (-Xdemangle)
【記述形式】
-Xdemangle
【パラメータ】
なし
【説明】
リンカのマップリスト中シンボルリスト部に表示される外部シンボル名のデマングル
名の表示を抑止します。
● デマングルシンボル名とは
テンプレート関数名などでは , ほかのシンボル名と重ならないように C++ コンパイラ
内部でマングル処理されたシンボル名が使用されます。
デマングルシンボル名は上記のマングル処理されたシンボル名を変換し , ユーザに識
別可能にしたものです。
【例】
flnk911s a1 a2 a3 -o a123.abs -m a123.abs -Xdemangle
112
CM71-00327-9, December 1, 2014
第 6 章 リンカのオプション
Support
6.2.15
Soft
Ma nual
リスト表示のデマングルシンボル名の出力指定
(-demangle)
リンカのマップリスト中シンボルリスト部に表示される外部シンボル名のデマング
ルシンボル名表示します。
■ リスト表示のデマングルシンボル名の出力指定 (-demangle)
【記述形式】
-demangle
( デフォルト )
【パラメータ】
なし
【説明】
リンカのマップリスト中シンボルリスト部に表示される外部シンボル名のデマングル
名を表示します。
• デマングルシンボル名とは
テンプレート関数名などでは , ほかのシンボル名と重ならないように C++ コンパイラ
内部でマングル処理されたシンボル名が使用されます。
デマングルシンボル名は上記のマングル処理されたシンボル名を変換し , ユーザに識
別可能にしたものです。
【例】
flnk911s a1 a2 a3 -o a123.abs -m a123.abs -demangle
December 1, 2014, CM71-00327-9
113
第 6 章 リンカのオプション
Su pp or t
So ft
Manu al
リスト行の桁数指定 (-pw)
6.2.16
リンカ出力のマップリスト , オブジェクト内容リストは , デフォルトでは 1 行に 80
桁まで表示します。このオプションは , 1 行の表示桁数を変更するときに指定しま
す。
■ リスト行の桁数指定 (-pw)
【記述形式】
<桁数>
-pw
( デフォルト : 80)
【パラメータ】
<桁数>
1 行に表示する桁数。80 ~ 1023 の範囲で指定します。
【説明】
リンクリストファイル , オブジェクト内容リストの 1 行の長さの指定を行います。
この指定がない場合は , 80 桁になります。
70 ~ 79 の値を指定した場合 , リンカは I0311L を出力後 , 桁数を 80 桁にします。
【例】
flnk911s a1 a2 a3 -o a123.abs -m a123.map -dt -pw 100
リスト行の表示桁数を 100 にします。
< 注意事項 >
以下のリストは -pw オプションで 1 行の桁数を指定できます。
• リンクマップリスト (.mp1)
• セクション詳細マップリスト (.mpm)
以下のリストは -pw オプションで 1 行の桁数を指定できません。
• 絶対形式アセンブルリスト (.als)
• 外部シンボル相互参照情報リスト (.mpx)
• ローカルシンボル情報リスト (.mps)
114
CM71-00327-9, December 1, 2014
第 6 章 リンカのオプション
Support
Soft
Ma nual
リスト 1 ページの行数指定 (-pl)
6.2.17
リンカ出力のマップリスト , オブジェクト内容リストは , デフォルトではページ制御
を行わないで表示します。
このオプションは , 1 ページの表示行数を変更するときに指定します。
■ リスト 1 ページの行数指定 (-pl)
【記述形式】
<行数>
-pl
( デフォルト : 0)
【パラメータ】
<行数>
1 ページに表示する行数。0 または , 20 ~ 255 の範囲で指定します。
【説明】
リンクリストファイル , オブジェクト内容リストの 1 ページの行数指定を行います。
この指定がない場合はページ制御を行いません。
0 の指定は , ページ制御を行わないようにするものです。
【例】
flnk911s a1 a2 a3 -o a123.abs -m a123.map -dt -pl 64 -pw 100
リスト 1 ページの表示行数を 64 にします。
< 注意事項 >
以下のリストは -pl オプションで 1 ページの行数を指定できます。
• リンクリスト (.mp1)
• セクション詳細マップリスト (.mpm)
以下のリストは -pl オプションで 1 ページの行数を指定できません。
• 絶対形式アセンブルリスト (.als)
• 外部シンボル相互参照情報リスト (.mpx)
• ローカルシンボル情報リスト (.mps)
December 1, 2014, CM71-00327-9
115
第 6 章 リンカのオプション
Su pp or t
6.2.18
So ft
Manu al
ROM 領域のチェックサム指定 (-cs)
-cs オプションは , 指定した領域のチェックサム演算を行い , 結果をマップファイル
に出力するオプションです。
チェックサム演算方法には , 単純加算 (SUM) と巡回冗長検査 (CRC) があります。
■ ROM 領域のチェックサム指定 (-cs)
【記述形式】
-cs <スタートアドレス>/<エンドアドレス>[,<スタートアドレス>/<エンドアドレス>,...],
< チェックサム演算方法 >[,< フィル値 >]
【パラメータ】
< スタートアドレス >
チェックサム演算の領域の開始アドレスを指定します。このパラメータは省略できま
せん。
< エンドアドレス >
チェックサム演算の領域の終了アドレスを指定します。このパラメータは省略できま
せん。
< チェックサム演算方法 >
チェックサム演算方法は SUM16, SUM32, CRC16 または CRC32 のどれかを指定します。
このパラメータは省略できません。
SUM16: 16 ビット単純加算
SUM32: 32 ビット単純加算
CRC16: 16 ビット巡回冗長検査
CRC32: 32 ビット巡回冗長検査
SUM16 または SUM32 を指定した場合 , 補数形式として 0, 1 または 2 のどれかを = に
続けて指定できます。省略時の補数形式は 0 です。
0: 補数なし
1: 1 の補数
2: 2 の補数
CRC16 または CRC32 を指定した場合 , 生成多項式値を = に続けて指定できます。省略
時の生成多項式値は以下のとおりです。
CRC16 の場合 : 0x8005(CRC-ANSI)
CRC32 の場合 : 0x04C11DB7(CRC-32 ITU-T)
< フィル値 >
スタートアドレスとエンドアドレスで指定した領域 ( 以下 , チェックサム演算領域とよ
ぶ ) のオブジェクトデータがない箇所を埋めるフィル値を指定します。このパラメー
タは省略できます。省略時のフィル値は 0xFF です。
116
CM71-00327-9, December 1, 2014
第 6 章 リンカのオプション
Support
Soft
Ma nual
【説明】
チェックサム演算領域に対して , 指定した演算方法によるチェックサム演算を行いま
す。結果はマップファイルに出力されます。このとき , チェックサム演算領域のオブ
ジェクトデータがない箇所は , チェックサム演算の前にフィル値で埋められます。
マップファイルへの出力例を図 6.2-6 に示します。図中の S_Addr., E_Addr., Algorithm
および Value は , それぞれスタートアドレス , エンドアドレス , チェックサム演算方法
およびチェックサム演算の結果に該当します。
図 6.2-6 マップファイルへの出力例
Check Sum(s)
S_Addr.
- E_Addr.
Algorithm Value
0x00700000 - 0x00AFFFFF SUM32=1
0x92DA8F5B
複数の領域をまとめてチェックサム演算する場合は , 1 つの -cs オプションに複数の領
域を指定してください。複数の領域を指定する場合は , チェックサム演算領域をカンマ
で区切って指定してください。
複数の領域を個別にチェックサム演算する場合は , -cs オプションを複数記述してくだ
さい。
チェックサム演算領域が重なった場合 , 重なった領域は後に指定した -cs オプションの
フィル値で埋められます。
-cs オプションの値を埋める領域と -fill オプションの値を埋める領域が重なった場合 ,
重なった領域は常に -fill オプションのフィル値で埋められます。
本オプションは , 絶対形式ロードモジュール作成時に有効となります。
相対形式ロードモジュール作成時は , 以下の警告メッセージが出力され , 本オプション
の指定は無視されます。
[ 警告メッセージ ]
*** W1321L:REL モード時には (-cs) オプションは無視されます。
December 1, 2014, CM71-00327-9
117
第 6 章 リンカのオプション
Su pp or t
So ft
Manu al
【例 1】
flnk911s -cs 0x700000/0x9FFFFF,SUM32,0x7F
32 ビット単純加算で 0x700000/0x9FFFFF の領域のチェックサム演算を行います。
チェックサム演算領域でオブジェクトデータがない箇所は 0x7F で埋めます ( 図 6.27 参照 )。
図 6.2-7 チェックサム演算の例 1
チェックサム演算領域の設定
セクション配置後の
オブジェクトデータ
オブジェクトデータ
0x700000
オブジェクトデータ
オブジェクトデータがない箇所は,
0x7Fで埋められた後,チェックサム
演算が行われます。
チェックサム
演算領域
オブジェクトデータ
0x9FFFFF
マップファイル出力
Check Sum(s)
S_Addr.
- E_Addr.
Algorithm Value
0x00700000 - 0x009FFFFF SUM32=0
0x252B7378
118
CM71-00327-9, December 1, 2014
第 6 章 リンカのオプション
Support
Soft
Ma nual
【例 2】
flnk911s -fill 0x900000/0x9FFFFF,0xFF/8 -cs 0x800000/0xAFFFFF,SUM16=2,0x7F
16 ビット単純加算 ( 補数 2) で 0x800000/0xAFFFFF の領域のチェックサム演算を行
います。
-cs と -fill を同時に指定した場合 , オブジェクトデータがなくフィル指定されていな
い箇所が 0x7F で埋められた後にチェックサム演算が行われます ( 図 6.2-8 参照 )。
図 6.2-8 チェックサム演算の例 2
チェックサム演算
領域の設定
フィル領域の
設定
セクション配置後の
オブジェクトデータ
オブジェクトデータ
0x800000
オブジェクトデータ
0x8FFFFF
0x900000
チェックサム
演算領域
0x9FFFFF
0xA00000
フィル領域
オブジェクトデータがなく,
フィル指定がない箇所は,
0x7Fで埋められた後,チェック
サム演算が行われます。
オブジェクトデータ
オブジェクトデータ
0xAFFFFF
0x900000~0x9FFFFFは,-fillオプションに
より0xFFで埋められます。
マップファイル出力
Check Sum(s)
S_Addr.
- E_Addr.
Algorithm Value
0x00800000 - 0x00AFFFFF SUM16=2
0xCA64
December 1, 2014, CM71-00327-9
119
第 6 章 リンカのオプション
Su pp or t
So ft
Manu al
【例 3】
flnk911s -cs 0x800000/0x8FFFFF,0xA00000/0xAFFFFF,CRC16,0x7F
16 ビット巡回冗長検査 (CRC16) で 0x800000/0x8FFFFF と 0xA00000/0xAFFFFF の領
域のチェックサム演算を行います ( 図 6.2-9 参照 )。
図 6.2-9 チェックサム演算の例 3
チェックサム演算領域の設定
セクション配置後の
オブジェクトデータ
オブジェクトデータ
0x800000
チェックサム
演算領域
オブジェクトデータ
0x8FFFFF
0xA00000
それぞれの領域のオブジェクト
データがない箇所が0x7Fで埋めら
れた後, チェックサム演算が行わ
れます。
この2つの領域は,まとめてチェッ
クサム演算が行われます。
オブジェクトデータ
チェックサム
演算領域
0xAFFFFF
マップファイル出力
Check Sum(s)
S_Addr.
- E_Addr.
Algorithm
Value
0x00800000 - 0x008FFFFF CRC16=0x8005 0xEB83
0x00A00000 - 0x00AFFFFF
120
CM71-00327-9, December 1, 2014
第 6 章 リンカのオプション
Support
Soft
Ma nual
【例 4】
flnk911s -cs 0x800000/0x8FFFFF,CRC16,0x7F -cs 0xA00000/0xAFFFFF,CRC32,0xFF
16 ビット巡回冗長検査 (CRC16) で 0x800000/0x8FFFFF の領域のチェックサム演算を
行います。
また , 32 ビット巡回冗長検査 (CRC32) で 0xA00000/0xAFFFFF の領域のチェックサ
ム演算を行います ( 図 6.2-10 参照 )。
図 6.2-10 チェックサム演算の例 4
チェックサム演算領域の設定
セクション配置後の
オブジェクトデータ
オブジェクトデータ
0x800000
チェックサム
演算領域
オブジェクトデータ
オブジェクトデータがない箇所が
0x7Fで埋められた後,チェックサム
演算が行われます。
0x8FFFFF
0xA00000
オブジェクトデータ
チェックサム
演算領域
0xAFFFFF
オブジェクトデータがない箇所が
0xFFで埋められた後,チェックサム
演算が行われます。
マップファイル出力
Check Sum(s)
S_Addr.
- E_Addr.
Algorithm
Value
0x00800000 - 0x008FFFFF CRC16=0x8005
0xA1A9
0x00A00000 - 0x00AFFFFF CRC32=0x04C11DB7 0xF154670A
December 1, 2014, CM71-00327-9
121
第 6 章 リンカのオプション
Su pp or t
So ft
Manu al
【例 5】
flnk911s -cs 0x800000/0xAFFFFF,SUM16=1,0x7F -cs 0xA00000/
0xAFFFFF,SUM32=2,0xFF
16 ビット単純加算で 0x800000/0xAFFFFF の領域のチェックサム演算を行います。
0x800000/0x9FFFFF の領域でオブジェクトデータがない箇所は 0x7F で埋められます。
また , 32 ビット単純加算で 0xA00000/0xAFFFFF の領域のチェックサム演算を行いま
す。
0xA00000/0xAFFFFF の領域でオブジェクトデータがない箇所は 0xFF で埋められます
( 図 6.2-11 参照 )。
図 6.2-11 チェックサム演算の例 5
セクション配置後の
オブジェクトデータ
チェックサム演算領域の設定
オブジェクトデータ
0x800000
オブジェクトデータ
オブジェクトデータがない箇所が
0x7Fで埋められた後,チェックサム
演算が行われます。
チェックサム
演算領域
0xA00000
オブジェクトデータ
チェックサム
演算領域
0xAFFFFF
オブジェクトデータがない箇所が
0xFFで埋められた後,チェックサム
演算が行われます。
チェックサム演算領域が重なった場合,後で指定した
-csオプションのフィル値が有効となります。
マップファイル出力
Check Sum(s)
S_Addr.
- E_Addr.
Algorithm Value
0x00800000 - 0x00AFFFFF SUM16=1
0xBC1B
0x00A00000 - 0x00AFFFFF SUM32=2
0xFFF01C34
122
CM71-00327-9, December 1, 2014
第 6 章 リンカのオプション
Support
6.2.19
Soft
Ma nual
警告メッセージ出力レベルの指定 (-w)
警告メッセージの出力レベルを設定します。リンカの警告メッセージを完全に抑止
するときや , リンカの動作状態の確認をするときに使用します。
■ 警告メッセージ出力レベルの指定 (-w)
【記述形式】
-w
<数値>
【パラメータ】
<数値>
警告レベルとして 0, 1 または 2 を指定します。
【説明】
警告レベルのメッセージ出力を抑止したり , より詳細なメッセージ出力を行うように
得たい情報をコントロールします。
0 : 警告レベルのメッセージを出力しません。
1 : 通常のチェックです。( デフォルト )
2 : 通常無視してよいレベルのものと , 単なるリンカの動作内容を通知するメッセージ
まで出力します。
詳細は , 「付録 A リンケージキットのエラーメッセージ」を参照してください。
【例】
flnk911s a1 a2 a3 -o a123.abs -w 2 -Xm
すべてのメッセージを出力します。
December 1, 2014, CM71-00327-9
123
第 6 章 リンカのオプション
Su pp or t
6.2.20
So ft
Manu al
ROM 領域の指定 (-ro)
プログラムで使用する予定の ROM 領域を定義することにより , セクションの配置を
行うときのアドレス指定を簡略化します。
また , プログラムサイズのチェックも可能にします。
■ ROM 領域の指定 (-ro)
【記述形式】
<領域名>=<スタートアドレス> / <エンドアドレス>
-ro
[, <領域名>=<スタートアドレス> / <エンドアドレス> ] …
【パラメータ】
<領域名>
設定するアドレス領域を示す名前
<スタートアドレス>
設定するアドレス領域の先頭アドレス
<エンドアドレス>
設定するアドレス領域の最終アドレス
【説明】
ROM 領域の定義を行います。領域はいくつでも定義できます。
スタートアドレスとエンドアドレスを指定して , その領域に名前を付けます。
このオプションで定義した領域名は , セクション配置オプション (-sc) のアドレス指定
パラメータに使用できます。
自動配置機能 (-AL 2) が有効のとき , ROM 領域に配置すべきセクションをこのオプショ
ンで定義した領域に配置します。
【例】
flnk911s *.obj -o ap.abs -ro RomA=0x1000/0x2FFF -sc code=RomA …
セクション名 code のセクションを , 0x1000 ~ 0x2FFF のアドレスに配置することを
指定します。
0x1000 番地から順に配置し , 0x2FFF 番地を超えた場合には警告メッセージを出力し
ます。
124
CM71-00327-9, December 1, 2014
第 6 章 リンカのオプション
Support
6.2.21
Soft
Ma nual
RAM 領域の指定 (-ra)
プログラムで使用する予定の RAM 領域を定義することにより , セクションの配置を
行うときのアドレス指定を簡略化します。
また , プログラムサイズのチェックも可能にします。
■ RAM 領域の指定 (-ra)
【記述形式】
<領域名>=<スタートアドレス> / <エンドアドレス>
-ra
[, <領域名>=<スタートアドレス> / <エンドアドレス> ] …
【パラメータ】
<領域名>
設定するアドレス領域を示す名前
<スタートアドレス>
設定するアドレス領域の先頭アドレス
<エンドアドレス>
設定するアドレス領域の最終アドレス
【説明】
RAM 領域の定義を行います。領域はいくつでも定義できます。
スタートアドレスとエンドアドレスを指定して , その領域に名前を付けます。
このオプションで定義した領域名は , セクション配置オプション (-sc) のアドレス指定
パラメータに使用できます。
自動配置機能 (-AL 2) が有効のとき , RAM 領域に配置すべきセクションをこのオプショ
ンで定義した領域に配置します。
【例】
flnk911s *.obj -o ap.abs -ra RamD=0x0100/0x01FF -sc data=RamD …
セクション名 data のセクションを , 0x0100 ~ 0x1FF のアドレスに配置することを指
定します。
0x0100番地から順に配置し, 0x01FF番地を超えた場合には警告メッセージを出力し
ます。
December 1, 2014, CM71-00327-9
125
第 6 章 リンカのオプション
Su pp or t
6.2.22
So ft
Manu al
セクション配置順 / アドレスの指定 (-sc)
セクション配置の開始アドレスおよび配置順をリンカに指示します。
■ セクション配置順 / アドレスの指定 (-sc)
【記述形式】
<セクション名リスト> [/ <内容種別> ]
-sc
[ = { <アドレス>|<領域名> } ] [, … ]
【パラメータ】
<セクション名リスト>
セクション名 , またはセクショングループ名リストセクション名の指定には , ワイルド
カードが使えます。複数指定するときは , +記号で連結します。
<内容種別>
code, data, stack, const, IO
<アドレス>
配置先頭アドレス
<領域名>
ROM/RAM 指定オプションで指定した領域名
【説明】
セクション配置の順序指定 , および配置アドレスの指定を行います。
セクション配置の順序は , パラメータに記述された順序に従います。
アドレスまたは領域名指定がない場合は , 0 番地から配置します。
セクション名の先頭に @ マークを付けると , 実行時にデータを ROM から RAM に転送
して動作する ROM → RAM 転送セクションの ROM 側のアドレス指定になります。
ワイルドカードを使用する場合は , 以下の文字で囲んでください。ただし , オプション
ファイル中ではワイルドカードを " ( ダブルコーテーション ) で囲まないでください。
【例 1】
flnk911s *.obj -o ap.abs -sc */code=0xC1000,D=0x1000 …
図 6.2-12 にこの場合の配置例を示します。
0xC1000 番地から内容種別が code のセクションを配置し , 0x1000 番地からセクショ
ン D を配置します。
図 6.2-12 セクションの配置例 1
0x1000
D
0xC1000
内容種別がcodeの
セクション
126
CM71-00327-9, December 1, 2014
第 6 章 リンカのオプション
Support
Soft
Ma nual
【例 2】
flnk911s *.obj -o ap.abs -ro ROM=0xC1000/0xCFFFF -ra RAM=0x1000/0x13FF
-sc P+code+text1=ROM,D=RAM
図 6.2-13 にこの場合の配置例を示します。
ROM/RAM オプションを使用したセクション配置指定の場合 , 配置終了アドレスの
チェックが行えます。
図 6.2-13 セクションの配置例 2
0x1000
D
0xC1000
P
code
0xCFFFF
text1
<セクション名リスト>に使用できるワイルドカード文字は "*" のみで , 記述パターン
は以下の 4 とおりです。
パターン
*
例
-sc */code
マッチする
ab_1, code_1, XXsect など
マッチしない
~*
なし
-sc ab_*/code
マッチする
ab_1, ab_XX, ab_ など
マッチしない
*~
aab_XX, ab など
-sc *_1/code
マッチする
ab_1, XX_1, _1 など
マッチしない
ab_11, _ など
~*~
-sc ab_*_1/code
マッチする
ab_XX_1, ab_ _1 など
マッチしない
aab_XX_11, ab_1 など
説明
内容種別が code であるすべてのセク
ションとマッチします。
内容種別が code であり , セクション名
の先頭 3 文字が "ab_" であるすべての
セクションとマッチします。
内容種別が code であり , セクション名
の最後の 2 文字が "_1" であるすべての
セクションとマッチします。
内容種別が code であり , セクション名
の先頭 3 文字が "ab_" で , かつ最後の 2
文字が"_1"であるすべてのセクション
とマッチします。
<注意事項>
ワイルドカード指定に一致するセクションには , ほかの sc オプションで指定されたセク
ションや絶対アドレス ( セクションの配置属性が ABS) を持つセクションは含まれません。
-sc *=RAM -sc CODE=RAM
上記のような指定で , ワイルドカード指定は , "CODE" 以外の再配置可能なセクション
( セクションの配置属性が REL) すべてと一致します。
December 1, 2014, CM71-00327-9
127
第 6 章 リンカのオプション
Su pp or t
6.2.23
So ft
Manu al
セクショングループの指定 (-gr)
複数のセクションをユーザの目的に応じて 1 つに連結し , グループ名をつけます。
セクションの配置指定時にこのグループ名を使用することで , 複数セクションをま
とめて扱えます。
■ セクショングループの指定 (-gr)
【記述形式】
<グループ名>=<セクション名リスト> [/ <内容種別> ] [, … ]
-gr
【パラメータ】
<グループ名>
グループ化する複数セクションの総称
<セクション名リスト>
グループ化するセクション名を記述します。
ワイルドカードが使用できます。
複数指定するときは , +記号で連結します。
<内容種別>
code, data, stack, const, IO
【説明】
グループ化するセクションの指定と , グループ内でのセクションの配置の順序指定を
行います。
セクション配置の順序は , パラメータに記述された順序に従います。
グループ名は , セクション名や他のグループ名と重複しないユニークなものである必
要があります。
1 つのグループに属するセクションが , ほかのグループに属してはいけません。
ワイルドカードを使用する場合は , " ( ダブルコーテーション ) で囲んでください。た
だし , オプションファイル中ではワイルドカードを " ( ダブルコーテーション ) で囲ま
ないでください。
【例 1】
flnk911s *.obj -o ap.abs -ro ROM=0xC1000/0xCFFFF -ra RAM=0x1000/0x13FF …
-gr romG=P+CODE+text1 -sc romG=ROM,D=RAM …
グループ化オプションを使用した場合は , セクション名を幾つも指定するかわりに ,
その全体をグループ名で代表することができます。
【例 2】
flnk911s *.obj -o ap.abs -gr cdgrp=*/code -sc cdgrp=0xC1000
内容種別が code であるセクションをすべて結合して cdgrp というグループ名を付け
ます。それを -sc オプションで 0xC1000 番地に配置します。
128
CM71-00327-9, December 1, 2014
第 6 章 リンカのオプション
Support
6.2.24
Soft
Ma nual
パックリンク指定 (-pk)
セクションの配置情報のアライン指定 ( バウンダリ調整 ) を無効にし , 1 バイトバウ
ンダリでセクションの結合配置を行います。
アプリケーションプログラムの実行が正しく行われなくなる危険性があります。使
用にあたっては十分に注意をしてください。
■ パックリンク指定 (-pk)
【記述形式】
<セクション名>
-pk
【パラメータ】
<セクション名>
パックリンクしたいセクション名を記述する。
【説明】
セクションの配置情報のアライン指定 ( バウンダリ調整 ) を無効にし , 続けて ( バウン
ダリ調整数 1 で ) リンクします。
-pk 指定を行う際には , 十分注意してください。本オプションの指定によっては , プロ
グラムの動作が遅くなったり , 動作しなくなる場合もあります。
-pk オプションは構造体メンバのアライン調整を行うものではありません。
【例】
flnk911s *.obj -o ap.abs -pk code …
December 1, 2014, CM71-00327-9
129
第 6 章 リンカのオプション
Su pp or t
6.2.25
So ft
Manu al
自動配置指定 (-AL)
セクションの自動配置の指定を行います。
■ 自動配置指定 (-AL)
【記述形式】
-AL
{ 0|1|2 }
【パラメータ】
<0>
自動配置を行いません。( デフォルト )
<1>
領域内にアブソリュートセクションが存在するとき , そのセクションと重複しないよ
うに配置します。
<2>
セクションの属性から , ROM領域に配置すべきか , RAM領域に配置すべきかを判断し,
それぞれの領域内の空き領域に配置します。
【説明】
セクションの自動配置の指定を行います。
• パラメータ 1 の場合 :-ra, -ro オプションで指定した領域内へセクション配置を行う
とき , アブソリュートセクションが存在していれば , 配置ア
ドレスが重ならないように , リロケータブルセクションの配
置を行います。このとき , アライメント値およびサイズの大
きいセクションから順に配置し , 空き領域が最小となるよう
な最適配置を行います。
• パラメータ 2 の場合 :-sc オプションで配置指定が行われなかったセクションに対し
て , セクションの属性から , ROM 領域に配置すべきか , RAM
領域に配置すべきかを判断し , それぞれの領域内の空き領域
に配置します。
「5.6 セクションの自動配置」を合わせて参照してください。
130
CM71-00327-9, December 1, 2014
第 6 章 リンカのオプション
Support
Soft
Ma nual
【例】
flnk911s -AL 1 -ro ROM=0x1000/0x1FFF -sc code1+code2+code3=ROM …
ただし , 各セクションは以下のようなものであるとします。
• code1 : リロケータブル , サイズ= 0x18
• code2 : リロケータブル , サイズ= 0x10
• code3 : リロケータブル , サイズ= 0x30
• AbsSec : アブソリュート , アドレス範囲= 0x1010 ~ 0x1017
この場合の , リンクマップ例を図 6.2-14 に示します。
図 6.2-14 リンクマップ例
S_Addr. -E_Addr
00001000-0000100F
00001010-00001017
00001018-00001047
00001048-0000105F
Size
00000010
00000008
00000030
00000018
SectionType
CODE P R-XI
CODE N R-XI
CODE P R-XI
CODE P R-XI
AL
02
00
02
02
REL
ABS
REL
REL
Sec
code2
AbsSec
code3
code1
<注意事項>
-AL 1 が指定されていても , 以下の場合は自動配置を行いません。
• 領域の設定がない (-ra, -ro の指定がない ) 。
• -sc のアドレス指定で領域名を使用していない。
• 指定した領域内に配置されるアブソリュートセクションがない。
-AL 2 を指定した場合 , 以下の場合はエラーになりリンク処理を行いません。
• 領域の設定がない (-ra, -ro の指定がない ) 。
通常 , リンカは CPU 情報ファイルから -ra, -ro を自動的に設定します。
December 1, 2014, CM71-00327-9
131
第 6 章 リンカのオプション
Su pp or t
6.2.26
So ft
Manu al
検索ライブラリファイルの指定 (-l)
デフォルトライブラリ以外に検索すべきライブラリを指示します。複数のライブラ
リファイルがある場合 , 検索順に指定します。
■ 検索ライブラリファイルの指定 (-l)
【記述形式】
-l
<ライブラリファイル名> [, … ]
【パラメータ】
<ライブラリファイル名>
検索するライブラリファイル名を記述します。パス名付きの指定も可能。ワイルドカー
ド使用可能。
【説明】
指定された順に , ライブラリファイルを検索します。
デフォルトライブラリより先に , ここで指定したライブラリが検索されます。
パス名なしでライブラリファイルを指定した場合は以下の順に検索します。
1. -L オプションで指定したディレクトリ
2. 環境変数 LIB911 で指定のディレクトリ
3. 環境変数 FETOOL より導かれるシステムライブラリのディレクトリ
カレントディレクトリは検索しません。カレントディレクトリを検索対象にしたいと
きは , -L オプションまたは環境変数 LIB911 にピリオド (.) を指定してください。
-nl オプションより後で , -l オプションを指定することで -nl オプションを無効にするこ
とができます。
ワイルドカードを使用する場合は , " ( ダブルコーテーション ) で囲んでください。た
だし , オプションファイル中ではワイルドカードを " ( ダブルコーテーション ) で囲ま
ないでください。
【例】
flnk911s *.obj -o ap.abs -l ..\lib\com.lib,libu
flnk911s *.obj -o ap.abs -l p*.lib
ファイル名の先頭 1 文字が "p" であるすべてのライブラリファイルが検索対象にな
ります。
132
CM71-00327-9, December 1, 2014
第 6 章 リンカのオプション
Support
6.2.27
Soft
Ma nual
ライブラリ検索パスの指定 (-L)
ライブラリファイルを検索するパス名の指定を行います。
■ ライブラリ検索パスの指定 (-L)
【記述形式】
-L
<ライブラリパス名> [, … ]
【パラメータ】
<ライブラリパス名>
ライブラリファイルを格納したパス名
【説明】
-lオプションで指定したライブラリファイルが, どのディレクトリにあるのかをリンカ
に指示します。
通常は , 本オプションを指定しなくてもよいように環境変数 LIB911 を設定しておきま
す。
環境変数 LIB911 で指定したパスには , C コンパイラに付属の C ライブラリを格納しま
すので , 特別にユーザが作成したライブラリを別ディレクトリで管理したいような場
合に , -L オプションを使用してください。
複数のパスが指定された場合は , 指定順に検索します。
ライブラリファイルは, まずここで指定されたパスから探し, なければ環境変数LIB911
で指定されたパス , 環境変数 FETOOL より導かれるシステムライブラリパスの順で検
索します。
ライブラリファイルの指定で , パス名まで含めて指定された場合は , そのパスだけを検
索します。
-nl オプションがある場合は , ライブラリ検索を行わないので -L オプションは無効にな
ります。
【例】
flnk911s *.obj -o ap.abs -L C:\usr\usrlib -l com.lib,libu
December 1, 2014, CM71-00327-9
133
第 6 章 リンカのオプション
Su pp or t
6.2.28
So ft
Manu al
シンボル個別のライブラリの指定 (-el)
外部参照シンボルの値の解決に使用するライブラリファイルを特定できます。
■ シンボル個別のライブラリの指定 (-el)
【記述形式】
<シンボル名リスト>=<ライブラリファイル名> [, … ]
-el
【パラメータ】
<シンボル名リスト>
外部参照シンボル名を記述します。
複数シンボルを指定する場合は , / で区切ります。
<ライブラリファイル名>
検索対象とするライブラリファイル名
パス名付きの指定も可能です。なお , ワイルドカードは使用できません。
【説明】
本オプションで指定した外部参照シンボルの値の解決に使用するライブラリファイル
を特定します。
同じ外部定義シンボル名を含むモジュールが , 複数ライブラリに存在しているのが分
かっており , リンカが標準で行うライブラリ検索順では希望しないモジュールが結合
されてしまうときに使用します。
この機能を使用せざるを得ないのは , 複数のライブラリを使用するときにライブラリ
の作成方法に問題があるためです。思わぬ障害混入の原因を含んでいますので , できれ
ば使用しないことが望ましいものです。
ライブラリファイルの作り直しを検討してください。
なお , パス名指定なしでライブラリファイル名を指定した場合の検索ディレクトリは ,
-l オプションと同じです。
【例】
flnk911s *.obj -o sp.abs -L C:\usr\usrlib -l libu,sublib -el sym1=sublib
134
CM71-00327-9, December 1, 2014
第 6 章 リンカのオプション
Support
6.2.29
Soft
Ma nual
ライブラリ検索の抑止指定 (-nl)
ライブラリファイルの検索を行わないことを指示します。
■ ライブラリ検索の抑止指定 (-nl)
【記述形式】
-nl
【パラメータ】
なし
【説明】
ライブラリファイルの検索を行わないようにします。
【例 1】
flnk911s -L C:\usr\usrlib -l libu,sublib *.obj -o ap.abs -nl
先に指定した -L, -l, -el オプションを無効にし , デフォルトライブラリも含めて , ラ
イブラリの検索を行わないようにします。
【例 2】
flnk911s -l libl *.obj -o ap.abs -nl -l lib2
一度指定した lib1.lib をキャンセルして , lib2.lib を検索するように指定し直すことが
できます。
この例のように , 複数の -l オプションの間に -nl オプションを指定すると , -nl の指
定以前に指定していた -l オプションはすべてキャンセルされます。しかし , -L オプ
ション指定 , -el オプション指定 , -nd オプション指定および , デフォルトライブラリ
の検索は -nl 指定以前の設定状態になります。
したがって , この例の場合は , lib2.lib とデフォルトライブラリを検索します。
December 1, 2014, CM71-00327-9
135
第 6 章 リンカのオプション
Su pp or t
6.2.30
So ft
Manu al
デフォルトライブラリ検索の抑止指定 (-nd)
デフォルトライブラリとは , C/C++ コンパイラが使用することを仮定したライブラ
リファイルであり , オブジェクトファイル中にそのライブラリファイル名が設定さ
れています。
このデフォルトライブラリファイルの検索を行わないことを指示します。
■ デフォルトライブラリ検索の抑止指定 (-nd)
【記述形式】
-nd
【パラメータ】
なし
【説明】
デフォルトライブラリファイルの指定を無効とし , 検索しないようにします。
【例】
flnk911s -L C:\usr\usrlib -l libu,sublib *.obj -o ap.abs -nd
-l オプションで指定したライブラリのみを検索し , デフォルトライブラリの検索は
行わないようにします。
136
CM71-00327-9, December 1, 2014
第 6 章 リンカのオプション
Support
Soft
Ma nual
未使用関数削除指定 (-lnkopt)
6.2.31
-lnkopt オプションは , 未使用関数を削除するオプションです。
■ 未使用関数削除指定 (-lnkopt)
【記述形式】
-lnkopt
【パラメータ】
なし
【説明】
未使用関数を削除します。
未使用関数を削除するには ,C/C++ ソースを -K LNKOPT オプションを指定してコンパ
イルする必要があります。
コンパイル時に -K LNKOPT オプションを指定していない場合 ,-lnkopt オプションは無
視します。
アセンブラソースで記述された CODE セクションは , 削除の対象外です。
【例 1】
fcc911s sample1.c -K LNKOPT -c
fcc911s sample2.c -K LNKOPT -c
flnk911s -lnkopt sample1.obj sample2.obj
未使用関数を削除します。
【例 2】
fcc911s sample1.c -c
fcc911s sample2.c -c
flnk911s -lnkopt sample1.obj sample2.obj
未使用関数を削除しません。
<注意事項>
以下の場合 , 未使用関数削除機能は , 実際には使用している関数を削除することがありま
す。
• アセンブラソースからのみ参照される関数
• OS のタスク
• 関数ポインタから間接参照される関数
実際には使用している関数が削除された場合 , 以下のリンクエラーが発生します。
E4305L: 外部シンボルが定義されていません
プログラム中に存在する関数に対してE4305Lが発生した場合,-XdelオプションでE4305L
が発生した関数を削除対象から除外してください。
December 1, 2014, CM71-00327-9
137
第 6 章 リンカのオプション
Su pp or t
6.2.32
So ft
Manu al
C/C++ のプログラム実行開始シンボル指定 (-entryc)
-entryc オプションは ,C/C++ ソースのプログラム実行開始シンボルを指定するオプ
ションです。
-entryc オプションが省略された場合のプログラム実行開始シンボルは ,"_main" で
す。
■ C/C++ のプログラム実行開始シンボル指定 (-entryc)
【記述形式】
-entryc
<シンボル名>
【パラメータ】
< シンボル名 >
C/C++ ソースのプログラム実行開始シンボルを指定します。
【説明】
-entrycオプションはC/C++のプログラム実行開始シンボルを指定するオプションです。
リンカは ,-entryc オプションで指定されたシンボル名からのコールツリーを解析し , 未
使用関数を抽出します。
-entryc オプションが省略された場合 , プログラム実行開始シンボルには "_main" が設定
されます。
-lnkopt オプションが無効の場合 ,-entryc オプションは無視します。
【例】
flnk911s -lnkopt -entryc _start
start() を C/C++ ソースのプログラム実行開始として , 未使用関数を抽出します。
138
CM71-00327-9, December 1, 2014
第 6 章 リンカのオプション
Support
6.2.33
Soft
Ma nual
削除対象外関数指定 (-Xdel)
-Xdel オプションは , 未使用関数削除機能で削除しない関数を指定するオプションで
す。
■ 削除対象外関数指定 (-Xdel)
【記述形式】
-Xdel
<シンボル名>
【パラメータ】
< シンボル名 >
未使用関数削除機能で削除しない関数のシンボル名を指定します。
【説明】
-Xdelオプションは,未使用関数削除機能で削除しない関数を指定するオプションです。
-Xdel オプションで指定された関数は , 未使用関数削除機能により未使用の関数と判定
されても削除されません。
-Xdel オプションは , 複数指定できます。
-lnkopt オプションが無効の場合 ,-Xdel オプションは無視します。
-Xdel オプションは , 以下の場合に使用します。
• 実際には使用している関数が未使用関数削除機能で削除された場合
• OS のタスクのように C/C++ ソースのプログラム実行開始シンボルが複数ある場合
【例】
flnk911s -lnkopt -Xdel _func
func() が未使用関数削除機能で未使用関数と判定されても , 削除しません。
December 1, 2014, CM71-00327-9
139
第 6 章 リンカのオプション
Su pp or t
6.2.34
So ft
Manu al
未使用関数削除情報ファイル格納パス指定 (-ufiin)
-ufiin オプションは , 未使用関数削除情報ファイル (ufi ファイル ) の格納パスを指定
するオプションです。
-ufiin オプションが省略された場合 , オブジェクトファイルが格納されているパスに
ある ufi ファイルを使用します。
■ 未使用関数削除情報ファイル格納パス指定 (-ufiin)
【記述形式】
-ufiin
<パス>
【パラメータ】
< パス >
未使用関数削除情報ファイル (ufi ファイル ) が格納されているパスを指定します。
絶対パスと相対パスが指定できます。
【説明】
-ufiin オプションは , 未使用関数削除情報ファイルの格納パスを指定するオプションで
す。
-ufiin オプションが省略された場合 , オブジェクトファイルが格納されているパスにあ
る ufi ファイルを使用します。
-ufiin オプションを複数回指定した場合 , 最後に指定した -ufi オプションが有効になり
ます。
-lnkopt オプションが無効の場合 ,-ufiin オプションは無視します。
【例】
flnk911s -lnkopt -ufiin C:\sample\ufi
"C:\sample\ufi" に格納された未使用関数削除情報ファイル (*.ufi) を使用します。
140
CM71-00327-9, December 1, 2014
第 6 章 リンカのオプション
Support
6.2.35
Soft
Ma nual
エントリアドレスの指定 (-e)
ユーザプログラムの実行開始アドレスを , 外部定義シンボルで指定します。
■ エントリアドレスの指定 (-e)
【記述形式】
-e
<シンボル名>
【パラメータ】
<シンボル名>
エントリポイントのシンボル名
外部定義シンボル以外は指定できません。
【説明】
ユーザプログラムの実行開始アドレスを , 外部定義シンボルで指定したものに変更し
ます。
実行開始アドレスは , アセンブラの .end 疑似命令で指定できます。
エントリポイントは , シミュレータデバッガで , 実行開始時の PC ( プログラムカウン
タ ) の初期値として設定されます。
【例】
flnk911s *.obj -o ap.abs -e ProgStart
December 1, 2014, CM71-00327-9
141
第 6 章 リンカのオプション
Su pp or t
6.2.36
So ft
Manu al
外部シンボル値の仮設定 (-df)
ユーザプログラム未定義シンボルの値を強制的に定義します。
■ 外部シンボル値の仮設定 (-df)
【記述形式】
-df
<シンボル名>= { <数値>|<外部定義シンボル名> }
【パラメータ】
<シンボル名>
外部参照シンボルのシンボル名
<数値>
定義する値
<外部定義シンボル名>
値の定義されている外部シンボル名
【説明】
未定義の外部参照シンボルの値を強制的に定義します。
リンカはリロケーション解決にこの値を用いてオブジェクトデータを作成しますが ,
出力する絶対形式ロードモジュールファイル中のシンボル情報には影響を与えませ
ん。
デバッガなどでロードした場合 , ここで指定したシンボル名は未定義のままです。
【例】
flnk911s -L
\usr\usrlib -l libu,sublib *.obj -o ap.abs -df Sym1=100
Sym1 が定義されていないとき , 値を 100 とします。
142
CM71-00327-9, December 1, 2014
第 6 章 リンカのオプション
Support
Soft
Ma nual
ターゲット CPU 指定 (-cpu)
6.2.37
ターゲット CPU の指定を行います。
リンクを行うプログラムのターゲット CPU を MB 番号で指定します。
■ ターゲット CPU 指定 (-cpu)
【記述形式】
-cpu
< MB 番号>
【パラメータ】
< MB 番号>
ターゲット CPU の MB 番号
【説明】
リンクを行うプログラムのターゲット CPU を MB 番号で指定します。
【例】
flnk911s *.obj -o ap.abs -cpu MB91110
<注意事項>
リンク処理を実行する際には , 本オプションでターゲット CPU の指定が必要です。
December 1, 2014, CM71-00327-9
143
第 6 章 リンカのオプション
Su pp or t
So ft
Manu al
CPU 情報ファイル指定 (-cif)
6.2.38
リンカで使用する CPU 情報ファイルを指定します。
■ CPU 情報ファイル指定 (-cif)
【記述形式】
-cif
< CPU 情報ファイル名>
【パラメータ】
< CPU 情報ファイル名>
リンカで使用する CPU 情報ファイル
【説明】
リンカで使用する CPU 情報ファイルを指定します。
【例】
flnk911s *.obj -o ap.abs -cpu MB91110
-cif
C:\Softune6\lib\911\cpu_info\MB91110.csv
<注意事項>
SOFTUNE Tools は , CPU 情報ファイルを参照して , CPU に関する情報を取得します。
関連するツール間で異なる CPU 情報ファイルを参照した場合 , 作成するプログラムに問
題が発生する可能性があります。
SOFTUNE Tools に標準で添付されている CPU 情報ファイルは , 以下の場所にあります。
インストール先ディレクトリ \lib\911\911.csv
コンパイラとアセンブラパックを異なるディレクトリにインストールしている場合には ,
各ツールに対して同一の CPU 情報ファイルを参照するように , -cif で指定してください。
144
CM71-00327-9, December 1, 2014
第 6 章 リンカのオプション
Support
6.2.39
Soft
Ma nual
オブジェクト混在チェックレベル指定 (-omcl)
-omcl オプションは , 以下に示すオブジェクト混在が発生した場合の動作を指定しま
す。
• ターゲット CPU が FR80 または FR81 の時に ,FR 用オブジェクトが混在した場合
• ターゲット CPU が FPU 付き FR81 の時に ,FPU なしの FR81,FR80,FR 用オブ
ジェクトが混在した場合
動作は混在許可 ( メッセージ出力なし ), 警告 , エラーを指定できます。
■ オブジェクト混在チェックレベル指定 (-omcl)
【記述形式】
-omcl
<数値>
【パラメータ】
<数値>
警告レベルとして 0,1 または 2 を指定します。
警告レベルのデフォルト値は ,1 です。
【説明】
以下に示すオブジェクト混在が発生した場合の動作を指定します。
• ターゲット CPU が FR80 または FR81 の時に ,FR 用オブジェクトが混在した場合
• ターゲット CPU が FPU 付き FR81 の時に ,FPU なしの FR81,FR80,FR 用オブジェク
トが混在した場合
動作は混在許可 ( メッセージ出力なし ), 警告 , エラーを指定できます。
0 : 混在が発生してもメッセージを出力しません。( 混在許可 )
1 : 混在が発生した場合には , 警告メッセージを出力します。( 混在許可 )
2 : 混在が発生した場合には , エラーメッセージを出力します。( 混在不可 )
-cpu オプションと混在可能な CPU については ,「5.12 リンカでのオブジェクト混在」
を参照してください。
【例】
• -omcl オプション指定がない場合 ( デフォルト動作 )
混在を警告として扱います。
flnk911s -cpu MB91680 a1 a2 a3 module_fr.obj
*** W1312L: 互換性のない CPU タイプのモジュールがあります (module_fr.obj)
• -omcl 0 を指定した場合
混在を検出しません
flnk911s -cpu MB91680 a1 a2 a3 module_fr.obj -omcl 0
December 1, 2014, CM71-00327-9
145
第 6 章 リンカのオプション
Su pp or t
So ft
Manu al
• -omcl 1 を指定した場合
混在を警告として扱います。
flnk911s -cpu MB91680 a1 a2 a3 module_fr.obj -omcl 1
*** W1312L: 互換性のない CPU タイプのモジュールがあります (module_fr.obj)
• -omcl 2 を指定した場合
混在をエラーとして扱います。
flnk911s -cpu MB91680 a1 a2 a3 module_fr.obj -omcl 2
*** E4312L: 互換性のない CPU タイプのモジュールがあります (module_fr.obj)
146
CM71-00327-9, December 1, 2014
第 6 章 リンカのオプション
Support
6.2.40
Soft
Ma nual
デバッグ情報存在チェック抑止指定 (-NCI0302LIB)
ライブラリファイルのモジュールに対するデバッグ情報存在チェックを抑止します。
■ デバッグ情報存在チェック抑止指定 (-NCI0302LIB)
【記述形式】
-NCI0302LIB
【パラメータ】
なし
【説明】
デバッグ情報出力指定 (-g) と警告レベル 2(-w 2) を指定してリンカを動作させると , リ
ンカはデバッグ情報が存在しないモジュールに対して , 次のインフォメーションを出
力します。
I0302L: デバッグ情報が存在しません ( モジュール名 )
本オプションを指定すると , リンカはライブラリファイルから抽出したモジュールに
対して , 上記インフォメーションメッセージの出力を行いません。
【例】
flnk911s -cpu MB91F155 -g -w 2 test.obj -l lib911.lib
*** I0302L: デバッグ情報が存在しません (C:\Softune6\lib\911\lib911.lib)
*** I0302L: デバッグ情報が存在しません (C:\Softune6\lib\911\lib911.lib)
・
・
・
→ インフォメーション I0302L が出力されます。
flnk911s -cpu MB91F155 -g -w 2 test.obj -l lib911.lib -NCI0302LIB
→ インフォメーション I0302L は出力されません。
December 1, 2014, CM71-00327-9
147
第 6 章 リンカのオプション
Su pp or t
6.2.41
So ft
Manu al
内蔵 ROM/RAM 領域の自動設定 (-set_rora)
CPU 情報ファイルからターゲット CPU の内蔵 ROM/RAM 領域情報の設定を行いま
す。
■ 内蔵 ROM/RAM 領域の自動設定 (-set_rora)
【記述形式】
-set_rora
【パラメータ】
なし
【説明】
CPU 情報ファイルからターゲット CPU の内蔵 ROM/RAM 領域情報の設定を行います。
本オプションを指定した際リンカは , CPU 情報ファイルから該当するチップの内蔵
ROM/RAM 領域を自動的に設定します。
リンカは , ROM/RAM 領域を次の名前で設定します。
• ROM 領域の場合 : _ROM_*_
上記 * には , 低位アドレスの領域順に 1 から順番に番号が入ります。領域が 1 つし
かない場合は , "_ROM_1_" となります。
• RAM 領域の場合 : _RAM_*_
上記 * には , 低位アドレスの領域順に 1 から順番に番号が入ります。領域が 1 つし
かない場合は , "_RAM_1_" となります。
これら名前は , -sc オプションで使用可能です。
【例】
flnk911s *.obj -o ap.abs -cpu MB91110 -set_rora
148
CM71-00327-9, December 1, 2014
第 6 章 リンカのオプション
Support
6.2.42
Soft
Ma nual
内蔵 ROM/RAM 領域自動設定の抑止指定
(-Xset_rora)
CPU 情報ファイルからターゲット CPU の内蔵 ROM/RAM 領域情報の設定を抑止し
ます。
■ 内蔵 ROM/RAM 領域自動設定の抑止指定 (-Xset_rora)
【記述形式】
-Xset_rora
【パラメータ】
なし
【説明】
CPU情報ファイルからターゲットCPUの内蔵ROM/RAM領域情報の設定を抑止します。
【例】
flnk911s *.obj -o ap.abs -cpu MB91110 -Xset_rora
December 1, 2014, CM71-00327-9
149
第 6 章 リンカのオプション
Su pp or t
6.2.43
So ft
Manu al
ユーザ指定領域のチェック指定 (-check_rora)
メモリマップが変わっていないかを MB 番号指定を変更するだけでチェックできま
す。
指定した ROM 領域 , RAM 領域 (-ro, -ra オプション ) が実際の内蔵 ROM, 内蔵 RAM
のアドレスと合っているかチェックを行います。
シングルチップモードの場合にご使用ください。
■ ユーザ指定領域のチェック指定 (-check_rora)
【記述形式】
-check_rora
【パラメータ】
なし
【説明】
指定の ROM 領域 , RAM 領域 (-ro, -ra オプション ) が , 内蔵 ROM, 内蔵 RAM を超えて
いないかチェックを行います。
-ro/-ra オプションで指定した領域が内蔵 ROM, 内蔵 RAM に収まっていない場合に , 次
の警告を出力します。
W1368L: -ro オプションで内蔵 ROM 領域の範囲外が指定されています ( 領域名 )
W1369L: -ra オプションで内蔵 RAM 領域の範囲外が指定されています ( 領域名 )
シングルチップモードをご使用の場合 , このオプションと MB 番号を指定しておくと ,
その品種の内蔵 ROM, 内蔵 RAM のアドレスと合っているかチェックを行います。別品
種にプログラムを移植する場合など , MB 番号を変更するだけでメモリマップが変わっ
ていないかチェックできます。
また , 併せて -check_locate オプションを指定しておけば内蔵 ROM, 内蔵 RAM 内にプロ
グラムが収まっているかのチェックも行えます。
【例】
flnk911s -cpu MB91F155 -check_rora -ro ROM = 0x00080800/0x000fffff
-ra RAM1=0x00001000/0x00008fff, RAM2=0x00080000/0x000807ff ...
→ 正常範囲指定 警告はありません。
flnk911s -cpu MB91154 -check_rora -ro ROM = 0x00080800/0x000fffff
-ra RAM1=0x00001000/0x00008fff, RAM2=0x00080000/0x000807ff ...
W1368L: -ro オプションで内蔵 ROM 領域の範囲外が指定されています (ROM)
W1369L: -ra オプションで内蔵 RAM 領域の範囲外が指定されています (RAM1)
→下線部の指定が範囲外のため警告が出力されます。
150
CM71-00327-9, December 1, 2014
第 6 章 リンカのオプション
Support
Soft
Ma nual
flnk911s -cpu MB91154 -check_rora -ro ROM = 0x000A0000/0x000fffff
-ra RAM1=0x00001000/0x00005fff, RAM2=0x00080000/0x000807ff ...
→ 正常範囲指定 警告はありません。
<注意事項>
• ワーニング出力抑止 (-w 0) が指定されている場合でも本オプションが指定されている
場合は警告が出力されます。
• 本オプションは , 絶対形式ロードモジュール作成時のみ有効です。
リロケータブルロードモジュール作成時は , 本オプションは無視されます。
• 本オプションは CPU 情報ファイル内の内蔵 ROM 情報および内蔵 RAM 情報を用いて
います。したがって , CPU 情報ファイル内に該当情報が存在しない場合には警告は出
力されません。
-cpu オプションで正確な MB 番号指定を行ってください。
December 1, 2014, CM71-00327-9
151
第 6 章 リンカのオプション
Su pp or t
6.2.44
So ft
Manu al
ユーザ指定領域のチェック抑止指定 (-Xcheck_rora)
指定した ROM 領域 , RAM 領域 (-ro, -ra オプション ) と内蔵 ROM 領域または内蔵
RAM 領域のチェックを抑止します。
-check_rora オプションを取り消す際に用います。
■ ユーザ指定領域のチェック抑止指定 (-Xcheck_rora)
【記述形式】
-Xcheck_rora
【パラメータ】
なし
【説明】
指定の ROM 領域 , RAM 領域 (-ro, -ra オプション ) と内蔵 ROM, 内蔵 RAM のアドレス
のチェックを抑止します。
-check_rora オプションを取り消す際に用います。
【例】
flnk911s -cpu MB91154 -check_rora -ro ROM = 0x00080800/0x000fffff
-ra RAM1=0x00001000/0x00008fff, RAM2=0x00080000/0x000807ff ...
W1368L: -ro オプションで内蔵 ROM 領域の範囲外が指定されています (ROM)
W1369L: -ra オプションで内蔵 RAM 領域の範囲外が指定されています (RAM1)
→下線部の指定が範囲外のため警告が出力されます。
flnk911s -cpu MB91154 -check_rora -ro ROM = 0x00080800/0x000fffff
-ra RAM1=0x00001000/0x00008fff, RAM2=0x00080000/0x000807ff
-Xcheck_rora ...
→下線部の指定が範囲外ですが, Xcheck_roraでチェック抑止を行っているため警告
は出力されません。
152
CM71-00327-9, December 1, 2014
第 6 章 リンカのオプション
Support
6.2.45
Soft
Ma nual
セクション配置領域チェック指定 (-check_locate)
メモリ領域外に配置されていないことをチェックします。
指定の ROM 領域 , RAM 領域 (-ro, -ra オプション ) または , cpu 情報ファイル内の内
蔵 ROM 情報 , 内蔵 RAM 情報を元にセクション配置アドレスをチェックし , 領域外
の配置に対して警告を出力します。
■ セクション配置領域チェック指定 (-check_locate)
【記述形式】
-check_locate
【パラメータ】
なし
【説明】
指定の ROM 領域 , RAM 領域 (-ro, -ra オプション ) または , cpu 情報ファイル内の内蔵
ROM/RAM 情報を元にセクション配置アドレスをチェックし , 領域外の配置に対して
次の警告を出力します。
W1370L: ROM 領域外への配置です ( セクション名 )
W1371L: RAM 領域外への配置です ( セクション名 )
W1372L: RAM 領域または IO 領域外への配置です ( セクション名 )
W1373L: IO 領域外への配置です ( セクション名 )
以下にセクションタイプとチェック領域を示します。
December 1, 2014, CM71-00327-9
153
第 6 章 リンカのオプション
Su pp or t
セクション
タイプ
So ft
Manu al
チェック対象領域
-check_rora オプション指定あり
-check_rora オプション指定なし
ROM 領域に配置されるべきセクション
CODE
CONST
-ro 指定領域外かつ内蔵 ROM 領域 -ro 指定領域外に配置されているセ
外に配置されているセクションに クションに対して警告出力。
対して警告出力。
ROM → RAM
転送元
セクション
RAM 領域に配置されるべきセクション
-ra 指定領域外かつ内蔵 RAM 領域 -ra 指定領域外に配置されているセ
外に配置されているセクションに クションに対して警告出力。
ROM → RAM
対して警告出力。
転送先
セクション
STACK
RAM 領域または IO 領域に配置されるべきセクション
DATA
-ra 指定領域外かつ内蔵 RAM 領域 , -ra 指定領域外に配置されているセ
内蔵 IO 領域外に配置されているセ クションに対して警告出力。
クションに対して警告出力。
IO 領域に配置されるべきセクション
IO
内蔵 IO 領域外に配置されている
セクションに対して警告出力。
内蔵 IO 領域外に配置されているセ
クションに対して警告出力。
シングルチップモードでご使用の場合は , -check_rora と併せて指定することで , 内蔵メ
モリ領域外にプログラムが配置されていないことをチェックできます。
また , その他の場合でも ROM 領域指定 , RAM 領域指定 (-ro, -ra オプション ) と併せて
指定することでメモリ領域外にプログラムが配置されていないことをチェックできま
す。
154
CM71-00327-9, December 1, 2014
第 6 章 リンカのオプション
Support
Soft
Ma nual
【例】
下図のようなメモリマップで DATA タイプの DATA_A, DATA_B, DATA_C と CODE タ
イプの CODE_D, CODE_E, CODE_F と STACK タイプの STACK_G が配置されている
場合のチェックは次のようになります。
flnk911s -cpu MB91154 -check_locate -ro ROM = 0x000A0000/0x000fffff
-ra RAM1=0x00001000/0x00005fff, RAM2=0x00080000/0x000807ff ...
W1372L: RAM 領域または IO 領域外への配置です (DATA_A)
W1371L: RAM 領域外への配置です (STACK_G)
W1372L: RAM 領域または IO 領域外への配置です (DATA_C)
W1370L: ROM 領域外への配置です (CODE_D)
W1370L: ROM 領域外への配置です (CODE_F)
0x00000000
I/O
DATA_A
0x00000800
アクセス禁止
0x00001000
0x00006000
RAM1
内蔵RAM 20K
DATA_B
STACK_G
アクセス禁止
0x00080000
0x00080800
RAM2
内蔵RAM 2K
DATA_C
DATA_D
アクセス禁止
0x000A0000
0x00100000
ROM
内蔵ROM 384K
CODE_E
CODE_F
アクセス禁止
0xffffffff
DATA_A は内蔵 IO 領域内に配置されているので警告は出力されません。
DATA_B は -ra で指定した領域内に配置されているので警告は出力されません。
DATA_C は -ra で指定した領域外から配置されているので警告が出力されます。
CODE_D は -ro で指定した領域外に配置されているので警告が出力されます。
CODE_E は -ro で指定した領域内に配置されているので警告は出力されません。
CODE_F は -ro で指定した領域外に配置されているので警告が出力されます。
STACK_G は -ra で指定した領域外に配置されているので警告が出力されます。
<注意事項>
• ワーニング出力抑止 (-w 0) が指定されている場合でも本オプションが指定されている
場合は警告が出力されます。
• 本オプションは , 絶対形式ロードモジュール作成時のみ有効です。
リロケータブルロードモジュール作成時は , 本オプションは無視されます。
• 本オプションの使用にあたっては , -ro, -ra オプションを用いた領域指定を行う必要が
あります。
• リンカ処理対象外である ABS 属性のセクションに対してもチェックを行います。
December 1, 2014, CM71-00327-9
155
第 6 章 リンカのオプション
Su pp or t
6.2.46
So ft
Manu al
セクション配置領域チェック抑止指定
(-Xcheck_locate)
セクション配置領域チェックを抑止します。
-check_locate オプションを取り消す際に使用します。
■ セクション配置領域チェック抑止指定 (-Xcheck_locate)
【記述形式】
-Xcheck_locate
【パラメータ】
なし
【説明】
セクション配置領域チェックを抑止します。
-check_locate オプションを取り消す際に用います。
156
CM71-00327-9, December 1, 2014
第 6 章 リンカのオプション
Support
6.2.47
Soft
Ma nual
サイズ 0 のセクション配置チェック指定
(-check_size0_sec)
サイズ 0 のセクションに対して配置チェックを行います。
■ サイズ 0 のセクション配置チェック指定 (-check_size0_sec)
【記述形式】
-check_size0_sec
【パラメータ】
なし
【説明】
サイズが 0 のセクションは , プログラムとして全く意味を持たないため , 本来配置
チェックは不要です。しかし , サイズが 0 のセクションを含めたすべてのセクションの
配置をチェックしたい場合は , -check_size0_sec を指定してください。
-check_size0_sec を指定すると , サイズが 0 のセクションに対して配置が正しいかを
チェックします。
チェックする項目は以下のとおりです。
• ROM 領域に書き込み可能なセクションが配置されていないかをチェック
• RAM 領域に初期値のあるセクションを配置していないかをチェック
• ROM 配置セクションが ROM 領域以外に配置されていないかをチェック
• RAM 配置セクションが RAM 領域以外に配置されていないかをチェック
• IO 配置セクションが IO 領域以外に配置されていないかをチェック
• 配置可能なアドレスが存在するかをチェック
-check_size0_sec を指定すると , サイズ 0 のセクションに対しても以下のメッセージが
出力されます。
W1301L:ROM 領域に書き込み可能セクションが配置されました ( セクション名 )
W1303L:RAM エリアに初期値のあるセクションが配置されました ( セクション名 )
W1370L:ROM 領域外への配置です ( セクション名 )
W1371L:RAM 領域外への配置です ( セクション名 )
W1372L:RAM 領域または IO 領域外への配置です ( セクション名 )
W1373L:IO 領域外への配置です ( セクション名 )
E4365L: 配置可能なアドレスが領域 " 領域名 " に見つかりません ( セクション名 )
E4366L: 配置可能なアドレスが見つかりません ( セクション名 )
【例】
flnk911s -cpu mb91101 -check_size0_sec
December 1, 2014, CM71-00327-9
module1.obj module2.obj
157
第 6 章 リンカのオプション
Su pp or t
So ft
Manu al
<注意事項>
サイズ 0 セクションの配置チェックはデフォルトでは行われません。
サイズ 0 セクションの配置チェックを行いたい場合は , -check_size0_sec オプションを指
定してください。
158
CM71-00327-9, December 1, 2014
第 6 章 リンカのオプション
Support
6.2.48
Soft
Ma nual
サイズ 0 のセクション配置チェック抑止指定
(-Xcheck_size0_sec)
サイズ 0 のセクションの配置チェックを抑止します。
-Xcheck_size0_sec を指定してもサイズが 0 ではないセクションは , 通常どおり配
置チェックを行います。
■ サイズ 0 のセクション配置チェック抑止指定 (-Xcheck_size0_sec)
【記述形式】
( デフォルト )
-Xcheck_size0_sec
【パラメータ】
なし
【説明】
サイズが 0 のセクションは , プログラムとして全く意味を持たないため , 本来配置
チェックは不要です。サイズ 0 のセクションの配置チェックを行いたくない場合は ,
-Xcheck_size0_sec を指定してください。
-Xcheck_size0_sec を指定してもサイズが 0 ではないセクションの配置チェックは通常
どおり行います。
抑止されるチェック項目は以下のとおりです。
• ROM 領域に書き込み可能なセクションが配置されていないかをチェック
• RAM 領域に初期値のあるセクションを配置していないかをチェック
• ROM 配置セクションが ROM 領域以外に配置されていないかをチェック
• RAM 配置セクションが RAM 領域以外に配置されていないかをチェック
• IO 配置セクションが IO 領域以外に配置されていないかをチェック
• 配置可能なアドレスが存在するかをチェック
-Xcheck_size0_sec を指定することによって , サイズ 0 のセクションに対して以下のメッ
セージの出力が抑止されます。
W1301L:ROM 領域に書き込み可能セクションが配置されました ( セクション名 )
W1303L:RAM エリアに初期値のあるセクションが配置されました ( セクション名 )
W1370L:ROM 領域外への配置です ( セクション名 )
W1371L:RAM 領域外への配置です ( セクション名 )
W1372L:RAM 領域または IO 領域外への配置です ( セクション名 )
W1373L:IO 領域外への配置です ( セクション名 )
E4365L: 配置可能なアドレスが領域 " 領域名 " に見つかりません ( セクション名 )
E4366L: 配置可能なアドレスが見つかりません ( セクション名 )
【例】
flnk911s -cpu mb91101 -Xcheck_size0_sec
December 1, 2014, CM71-00327-9
module1.obj module2.obj
159
第 6 章 リンカのオプション
Su pp or t
6.2.49
So ft
Manu al
プレリンク処理の抑止指定 (-XPLNK)
テンプレート関数処理に用いるプレリンク処理を抑止します。
■ プレリンク処理の抑止指定 (-XPLNK)
【記述形式】
-XPLNK
【パラメータ】
なし
【説明】
C++ プログラムのテンプレート関数によるコードサイズの増加を抑止するため , リン
カは , リンク処理を行う前にプレリンカを起動しプレリンク処理を行います。
本オプションはプレリンク処理を抑止します。
【例】
flnk911s a1 a2 a3 -o a123.abs -m a123.abs -XPLNK
160
CM71-00327-9, December 1, 2014
第 6 章 リンカのオプション
Support
6.2.50
Soft
Ma nual
相対アセンブルリスト入力ディレクトリ指定
(-alin)
相対アセンブルリストファイルが格納されているディレクトリを指定します。
このオプションがない場合は , オブジェクトモジュールと同じ場所となります。
■ 相対アセンブルリスト入力ディレクトリ指定 (-alin)
【記述形式】
-alin
<パス名>
【パラメータ】
<パス名>
相対アセンブルリストファイルが格納されているディレクトリ
【説明】
絶対形式アセンブルリストファイルを出力するときに , 使用するオプションです。
相対アセンブルリストファイルが格納されているディレクトリを指定します。
本オプションの指定がない場合は , オブジェクトモジュールと同じ場所になります。
-alf オプションで , 相対アセンブルリストファイルをパス名付きで指定している場合に
は , -alf オプション指定のパスを優先します。
【例】
flnk911s *.obj -o ap.abs -alin d:\fr20 -alf swctr1.lst,mstdef.lst
flnk911s *.obj -o ap.abs -alsf d:\fr20\swctrl.lst,d:\fr20\mstdef.lst
上記の 2 つの例は同じ意味です。
December 1, 2014, CM71-00327-9
161
第 6 章 リンカのオプション
Su pp or t
6.2.51
So ft
Manu al
絶対形式アセンブルリスト出力ディレクトリ指定
(-alout)
絶対形式アセンブルリストファイルを出力するディレクトリを指定します。
■ 絶対形式アセンブルリスト出力ディレクトリ指定 (-alout)
【記述形式】
-alout
<パス名>
【パラメータ】
<パス名>
絶対形式アセンブルリストファイルを出力するディレクトリ
【説明】
絶対形式アセンブルリストファイルを出力するディレクトリを指定します。
本オプションの指定がない場合は , カレントディレクトリとなります。
【例】
flnk911s *.obj -o ap.abs -alin d:\fr20 -alf swctrl.lst,mstdef.lst
-alout d:\fr20\als
162
CM71-00327-9, December 1, 2014
第 6 章 リンカのオプション
Support
6.2.52
Soft
Ma nual
絶対形式アセンブルリスト出力指定 (-als)
絶対形式アセンブルリストファイルの出力を指定します。
すべてのオブジェクトモジュールに対する出力指示です。
■ 絶対形式アセンブルリスト出力指定 (-als)
【記述形式】
-als
【パラメータ】
なし
【説明】
すべてのモジュールに対して絶対形式アセンブルリストを作成することを指示しま
す。
本オプションの指定がないときは , 絶対形式アセンブルリストの作成を行いません。
前に指定した , -alsf, -Xals を無効にします。
【例】
flnk911s *.obj -o ap.abs -als
December 1, 2014, CM71-00327-9
163
第 6 章 リンカのオプション
Su pp or t
6.2.53
So ft
Manu al
絶対形式アセンブルリスト出力モジュール指定
(-alsf)
絶対形式アセンブルリストファイルを出力するモジュールを指定します。
オブジェクトモジュールに対する選択出力指示を行います。
■ 絶対形式アセンブルリスト出力モジュール指定 (-alsf)
【記述形式】
-alsf
<相対アセンブルリストファイル名>
[, … ]
【パラメータ】
<相対アセンブルリストファイル名>
絶対形式アセンブルリスト作成の元になる相対アセンブルリストファイル名
ファイル名の指定にはワイルドカードが使えます。
【説明】
絶対形式アセンブルリストを作成するモジュールを選択します。
モジュールの指定は , 相対アセンブルリストファイル名で行います。拡張子を省略した
場合には , ".lst" を仮定します。
指定されなかったモジュールは , 絶対形式アセンブルリストの作成を行いません。
本オプションは , 複数に分けて指定できます。
前に指定した , -als, -Xals を無効にします。
-alin オプションより相対アセンブルリストの格納パスを指定できますので , 本オプ
ション指定時にはパス指定を省略することが可能です。
【例】
flnk911s *.obj -o ap.abs -alsf swctrl.lst,mstdef.lst
flnk911s *.obj -o ap.abs -alsf swctrl.lst -alsf mstdef.lst
flnk911s *.obj -o ap.abs -alsf swctrl -alsf mstdef
上記の 3 つの例は同じ意味です。
164
CM71-00327-9, December 1, 2014
第 6 章 リンカのオプション
Support
6.2.54
Soft
Ma nual
絶対形式アセンブルリスト出力抑止指定 (-Xals)
すべてのモジュールに対して絶対形式アセンブルリストを , 作成しないことを指示
します。
■ 絶対形式アセンブルリスト出力抑止指定 (-Xals)
【記述形式】
-Xals
( デフォルト )
【パラメータ】
なし
【説明】
すべてのモジュールに対して絶対形式アセンブルリストを作成しないことを指示しま
す。
本オプションはデフォルトです。
前に指定した , -als, -alsf を無効にするときに使用します。
【例】
flnk911s *.obj -o ap.abs -alf sectrl.lst,mstdef.lst -nl
December 1, 2014, CM71-00327-9
165
第 6 章 リンカのオプション
Su pp or t
6.2.55
So ft
Manu al
ROM/RAM, ARRAY リスト出力指定 (-alr)
ROM/RAM, ARRAY リストを出力指定します。
コンパイル , アセンブル時にデバッグ情報が出力されていることが必要です。
■ ROM/RAM, ARRAY リスト出力指定 (-alr)
【記述形式】
-alr
【パラメータ】
なし
【説明】
すべての絶対形式アセンブルリストに ROM/RAM, ARRAY リストを付加します。
本オプションを使用する場合 , -als オプションは省略できます。
前に指定した , -alrf, -Xalr を無効にします。
ROM/RAM, ARRAY リストを出力するためには , コンパイル , アセンブル , リンク時に
デバッグ情報出力オプション (-g) を指定してください。
【例】
flnk911s *.obj -o ap.abs -als -alr -g
flnk911s *.obj -o ap.abs -alr -g
上記の 2 つの例は同じ意味です。
166
CM71-00327-9, December 1, 2014
第 6 章 リンカのオプション
Support
6.2.56
Soft
Ma nual
ROM/RAM, ARRAY リスト出力モジュール指定
(-alrf)
ROM/RAM, ARRAY リストを出力するモジュールを指定します。
コンパイル , アセンブル時にデバッグ情報が出力されていることが必要です。
■ ROM/RAM, ARRAY リスト出力モジュール指定 (-alrf)
【記述形式】
-alrf
<相対アセンブルリストファイル名>
[, … ]
【パラメータ】
<相対アセンブルリストファイル名>
ROM/RAM, ARRAY リストを出力するモジュールを相対アセンブルリストファイル名
で指定します。
ファイル名の指定にはワイルドカードが使えます。
【説明】
絶対形式アセンブルリストに ROM/RAM, ARRAY リストを付加して出力したいモ
ジュールを選択します。
モジュールの指定は , 相対アセンブルリストファイル名で行います。拡張子を省略した
場合には , ".lst" を仮定します。
指定されなかったモジュールは , ROM/RAM, ARRAY リストが作成されません。
本オプションを使用する場合 , -alsf オプションは省略できます。
本オプションは , 複数に分けて指定できます。
前に指定した , -alr, -Xalr を無効にします。
【例】
flnk911s *.obj -o ap.abs -alsf swctrl.lst,mstdef.lst
-alrf swctrl.lst,mstdef.lst
flnk911s *.obj -o ap.abs -alsf swctrl.lst
-alrf swctrl.lst,mstdef.lst
flnk911s *.obj -o ap.abs -alrf swctrl -alrf mstdef
上記の 3 つの例は同じ意味です。
December 1, 2014, CM71-00327-9
167
第 6 章 リンカのオプション
Su pp or t
6.2.57
So ft
Manu al
ROM/RAM, ARRAY リスト出力抑止指定 (-Xalr)
すべての絶対形式アセンブルリストに ROM/RAM, ARRAY リストを付加しないこと
を指定します。
■ ROM/RAM, ARRAY リスト出力抑止指定 (-Xalr)
【記述形式】
-Xalr
( デフォルト )
【パラメータ】
なし
【説明】
すべての絶対形式アセンブルリストに ROM/RAM, ARRAY リストを付加しないことを
指定します。
本オプションは , デフォルトですので特に指定する必要はありません。
前に指定した , -alr, -alrf を無効にします。
【例】
flnk911s *.obj -o ap.abs -als -alr -Xalr
flnk911s *.obj -o ap.abs -als -Xalr
上記の 2 つの例は同じ意味です。
168
CM71-00327-9, December 1, 2014
第 6 章 リンカのオプション
Support
6.2.58
Soft
Ma nual
ROM/RAM, ARRAY リストのシンボルとアドレスの
表示位置指定 (-na, -an)
ROM/RAM, ARRAY リストのシンボルとアドレスの表示位置の指定を行います。
-na が指定された場合 , シンボル (NAME) , アドレス (ADDRESS) の順に出力しま
す。
-an が指定された場合 , アドレス (ADDRESS) , シンボル (NAME) の順に出力しま
す。
■ ROM/RAM, ARRAY リストのシンボルとアドレスの表示位置指定 (-na, -an)
【記述形式】
( デフォルト )
-na
【パラメータ】
なし
【説明】
ROM/RAM, ARRAY リストのシンボルとアドレスを NAME, ADDRESS の順に出力しま
す。
シンボルはアルファベット順に出力します。
ROM/RAM, ARRAY リストが出力指定されたモジュールに対してのみ有効です。
このオプションの機能はデフォルトですので , -an オプションを取り消すときに指定し
ます。
【例】
flnk911s *.obj -o ap.abs -alr -na
flnk911s *.obj -o ap.abs -alr
上記の 2 つの例は同じ意味です。
【記述形式】
-an
【パラメータ】
なし
【説明】
ROM/RAM, ARRAY リストのシンボルとアドレスを ADDRESS, NAME の順に出力しま
す。
シンボルはアドレス順に出力します。
-na オプション ( デフォルト ) を変更するときに使用します。
ROM/RAM, ARRAY リストが出力指定されたモジュールに対してのみ有効です。
December 1, 2014, CM71-00327-9
169
第 6 章 リンカのオプション
Su pp or t
So ft
Manu al
【例】
flnk911s *.obj -o ap.abs -alr -na -an
flnk911s *.obj -o ap.abs -alr -an
上記の 2 つの例は同じ意味です。
170
CM71-00327-9, December 1, 2014
第 6 章 リンカのオプション
Support
6.2.59
Soft
Ma nual
外部シンボル相互参照情報リスト出力指定 (-xl)
外部シンボル相互参照情報リストファイルを出力指定します。
■ 外部シンボル相互参照情報リスト出力指定 (-xl)
【記述形式】
-xl
【パラメータ】
なし
【説明】
外部シンボル相互参照情報リストファイルを作成することを指示します。
本オプションの指定がないときは , 外部シンボル相互参照情報リストファイルの作成
を行いません。
【例】
flnk911s *.obj -o ap.abs -xl
December 1, 2014, CM71-00327-9
171
第 6 章 リンカのオプション
Su pp or t
6.2.60
So ft
Manu al
外部シンボル相互参照情報リストファイル名の指定
(-xlf)
外部シンボル相互参照情報リストファイルの出力先ディレクトリやファイル名を変
更したいときに使用します。
■ 外部シンボル相互参照情報リストファイル名の指定 (-xlf)
【記述形式】
-xlf
<出力ファイル名>
【パラメータ】
<出力ファイル名>
出力ファイル名を指定します。出力先のディレクトリを変更するときは前にパス名を
付けます。
【説明】
指定した名前で外部シンボル相互参照情報リストファイルを作成します。
本オプションを使用する場合 , -xl オプションは省略できます。
<出力ファイル名>指定で拡張子を省略した場合は , デフォルト拡張子 ".mpx" が付加
されます。
本オプションの指定がない場合は , 絶対形式ロードモジュールファイル名の拡張子を
".mpx" に直したものを , 出力ファイル名とします。
【例】
flnk911s *.obj -o ap.abs -xl -xlf ccp903.mpx
flnk911s *.obj -o ap.abs -xlf ccp903
上記の 2 つの例は同じ意味です。
172
CM71-00327-9, December 1, 2014
第 6 章 リンカのオプション
Support
6.2.61
Soft
Ma nual
外部シンボル相互参照情報リスト出力抑止指定
(-Xxl)
外部シンボル相互参照情報リストファイルを出力抑止指定します。
■ 外部シンボル相互参照情報リスト出力抑止指定 (-Xxl)
【記述形式】
-Xxl
( デフォルト )
【パラメータ】
なし
【説明】
外部シンボル相互参照情報リストファイルの出力抑止を指示します。
本オプションは , デフォルトですので特に指定する必要はありません。
前に指定した , -xl, -xlf を無効にします。
【例】
flnk911s *.obj -o ap.abs -xl -Xxl
flnk911s *.obj -o ap.abs -Xxl
flnk911s *.obj -o ap.abs
上記の 3 つの例は同じ意味です。
December 1, 2014, CM71-00327-9
173
第 6 章 リンカのオプション
Su pp or t
6.2.62
So ft
Manu al
ローカルシンボル情報リスト出力指定 (-sl)
ローカルシンボル情報リストファイルを出力指定します。この場合 , コンパイル , ア
センブル , リンク時にデバッグ情報が出力されていることが必要です。
■ ローカルシンボル情報リスト出力指定 (-sl)
【記述形式】
-sl
【パラメータ】
なし
【説明】
ローカルシンボル情報リストファイルを作成することを指示します。
本オプションの指定がないときは , ローカルシンボル情報リストファイルの作成を行
いません。
ローカルシンボル情報リストファイルを出力するためには , コンパイル , アセンブル ,
リンク時にデバッグ情報出力オプション (-g) を指定してください。
【例】
flnk911s *.obj -o ap.abs -sl -g
174
CM71-00327-9, December 1, 2014
第 6 章 リンカのオプション
Support
6.2.63
Soft
Ma nual
ローカルシンボル情報リストファイル名の指定
(-slf)
ローカルシンボル情報リストファイルの出力先ディレクトリやファイル名を変更し
たいときに使用します。
■ ローカルシンボル情報リストファイル名の指定 (-slf)
【記述形式】
-slf
<出力ファイル名>
【パラメータ】
<出力ファイル名>
出力ファイル名を指定します。出力先のディレクトリを変更するときは前にパス名を
付けます。
【説明】
指定した名前でローカルシンボル情報リストファイルを作成します。
本オプションを使用する場合 , -sl オプションは省略できます。
<出力ファイル名>指定で拡張子を省略した場合は , デフォルト拡張子 ".mps" が付加
されます。
本オプションの指定がない場合は , 絶対形式ロードモジュールファイル名の拡張子を
".mps" に直したものを , 出力ファイル名とします。
【例】
flnk911s *.obj -o ap.abs -sl -slf ccp903.mps -g
flnk911s *.obj -o ap.abs -slf ccp903 -g
上記の 2 つの例は同じ意味です。
December 1, 2014, CM71-00327-9
175
第 6 章 リンカのオプション
Su pp or t
6.2.64
So ft
Manu al
ローカルシンボル情報リスト出力抑止指定 (-Xsl)
ローカルシンボル情報リストファイルを出力抑止指定します。
■ ローカルシンボル情報リスト出力抑止指定 (-Xsl)
【記述形式】
-Xsl
( デフォルト )
【パラメータ】
なし
【説明】
ローカルシンボル情報リストファイルの出力抑止を指示します。
本オプションは , デフォルトですので特に指定する必要はありません。
前に指定した , -sl, -slf を無効にします。
【例】
flnk911s *.obj -o ap.abs -sl -Xsl
flnk911s *.obj -o ap.abs -Xsl
flnk911s *.obj -o ap.abs
上記の 3 つの例は同じ意味です。
176
CM71-00327-9, December 1, 2014
第 6 章 リンカのオプション
Support
6.2.65
Soft
Ma nual
セクション詳細マップリスト出力指定 (-ml)
セクション詳細マップリストファイルを出力指定します。
■ セクション詳細マップリスト出力指定 (-ml)
【記述形式】
-ml
【パラメータ】
なし
【説明】
セクション詳細マップリストファイルを作成することを指示します。
本オプションの指定がないときは , セクション詳細マップリストファイルの作成を行
いません。
【例】
flnk911s *.obj -o ap.abs -ml
December 1, 2014, CM71-00327-9
177
第 6 章 リンカのオプション
Su pp or t
6.2.66
So ft
Manu al
セクション詳細マップリストファイル名の指定
(-mlf)
セクション詳細マップリストファイルの出力先ディレクトリやファイル名を変更し
たいときに使用します。
■ セクション詳細マップリストファイル名の指定 (-mlf)
【記述形式】
-mlf
<出力ファイル名>
【パラメータ】
<出力ファイル名>
出力ファイル名を指定します。出力先のディレクトリを変更するときは前にパス名を
付けます。
【説明】
指定した名前でセクション詳細マップリストファイルを作成します。
本オプションを使用する場合 , -ml オプションは省略できます。
<出力ファイル名>指定で拡張子を省略した場合は , デフォルト拡張子 ".mpm" が付加
されます。
本オプションの指定がない場合は , 絶対形式ロードモジュールファイル名の拡張子を
".mpm" に直したものを , 出力ファイル名とします。
【例】
flnk911s *.obj -o ap.abs -ml -mlf ccp903.mpm
flnk911s *.obj -o ap.abs -mlf ccp903
上記の 2 つの例は同じ意味です。
178
CM71-00327-9, December 1, 2014
第 6 章 リンカのオプション
Support
6.2.67
Soft
Ma nual
セクション詳細マップリスト出力抑止指定 (-Xml)
セクション詳細マップリストファイルを出力抑止指定します。
■ セクション詳細マップリスト出力抑止指定 (-Xml)
【記述形式】
-Xml
( デフォルト )
【パラメータ】
なし
【説明】
セクション詳細マップリストファイルの出力をすることを抑止指示します。
本オプションは , デフォルトですので特に指定する必要はありません。
前に指定した , -ml, -mlf を無効にします。
【例】
flnk911s *.obj -o ap.abs -ml -Xml
flnk911s *.obj -o ap.abs -Xml
flnk911s *.obj -o ap.abs
上記の 3 つの例は同じ意味です。
December 1, 2014, CM71-00327-9
179
第 6 章 リンカのオプション
Su pp or t
180
So ft
Manu al
CM71-00327-9, December 1, 2014
Support
Soft
Ma nual
第7章
リンカの出力リストファイル
この章では , リンカの出力する各リストファイルの
フォーマット , 情報の見方について説明します。
7.1 リンカの出力するリストファイルの種類
7.2 リンクリストファイル
7.3 絶対形式アセンブルリストファイル
7.4 外部シンボル相互参照情報リストファイル
7.5 ローカルシンボル情報リストファイル
7.6 セクション配置詳細情報リストファイル
December 1, 2014, CM71-00327-9
181
第 7 章 リンカの出力リストファイル
Su pp or t
7.1
So ft
Manu al
リンカの出力するリストファイルの種類
リンカが出力するリストファイルは以下の 5 つです。
• リンクリストファイル
• 絶対形式アセンブルリスト
• 外部シンボル相互参照情報リスト
• ローカルシンボル情報リスト
• セクション詳細マップリスト
これらのファイルは , リンカ起動時のオプションで , 出力するかどうか選択できま
す。
■ リンクリストファイル
リンクリストファイルは , リンカ起動時のオプションや入力モジュール名 , モジュール
リンク後のセクションとメモリ使用情報 , 外部シンボルの情報が出力されます。
■ 絶対形式アセンブルリスト
絶対形式アセンブルリストは , モジュールリンク後の情報をもとに , アセンブラが出力
した相対形式のアセンブルリストを絶対形式で表示したリストです。
アセンブラ言語レベルでのデバッグを行う場合に参照でき , リンクリストではわから
ない機械語の 1 ステップ単位のアドレスを知ることができます。
■ 外部シンボル相互参照情報リスト
外部シンボル相互参照情報リストは , リンク後の各モジュールの外部定義シンボルと
外部参照シンボルのモジュール間相互参照の情報が出力されます。
■ ローカルシンボル情報リスト
ローカルシンボル情報リストは , リンク後のモジュールごとのローカルシンボルを含
んだ変数や関数などの情報を出力します。
■ セクション詳細マップリスト
セクション詳細マップリストは , リンク後のモジュールごとのセクション配置情報を
出力します。
182
CM71-00327-9, December 1, 2014
第 7 章 リンカの出力リストファイル
Support
7.2
Soft
Ma nual
リンクリストファイル
リンクリストファイルは , 情報内容により以下の 4 つに分かれています。
• コントロールリスト
• マップリスト
• メモリ使用情報リスト
• 外部シンボルリスト
ここでは , それぞれに出力される項目を説明します。
■ リンクリストファイルの構成
リンカのリストファイルは , 以下の 4 つに分かれています。
● コントロールリスト
• 指定されたオプション
• 入力オプション
• エラーメッセージ
● マップリスト
• セクション名
• セクション属性
• リンク後のセクション配置アドレス
● メモリ使用情報リスト
• ROM/RAM 使用情報
• 領域内情報
• 総合評価値情報
● 外部シンボルリスト
• 外部シンボル名
• 定義 , 参照の種別
• シンボルの値
各リストの境界には , 改ページの制御文字が出力されます。
December 1, 2014, CM71-00327-9
183
第 7 章 リンカの出力リストファイル
Su pp or t
7.2.1
So ft
Manu al
コントロールリスト
コントロールリストには , リンカを実行したときに指定したオプションと , 入力モ
ジュール名を表示します。また , リンク処理中に発見したエラーも表示します。
■ コントロールリスト部のリスト出力フォーマット
コントロールリスト部のリスト出力フォーマットを図 7.2-1 に示します。
図 7.2-1 コントロールリスト部のリスト出力フォーマット
FR/FR80 Family SOFTUNE Linker
Control List
YYYY-MM-DD hh:mm:ss
Page:
1
Option File(s)
① オプションファイル名表示エリア
Control(s)
② リンカ制御オプション表示エリア
Input Module(s)
③ 入力モジュール表示エリア
Error(s)
④ エラーメッセージ表示エリア
● ページヘッダ
先頭行にリンカ名 , リスト名 , 日時 , ページ番号を表示します。
① オプションファイル名表示エリア
オプションファイルが使用された場合に , そのファイル名を表示します。
使用されなかった場合は , 「** no use **」を表示します。
② リンカ制御オプション表示エリア
指定されたオプションおよびデフォルトで有効としたオプションを表示します。
オプションファイル内で指定されたオプションの場合 , オプションの前に@を付け
ます。
③ 入力モジュール表示エリア
1 から始まる通し番号を付けて , ファイル名とモジュール名を表示します。
④ エラーメッセージ表示エリア
処理中に検出したエラーメッセージを表示します。
エラーがない場合は , 「** Nothing **」を表示します。
184
CM71-00327-9, December 1, 2014
第 7 章 リンカの出力リストファイル
Support
Soft
Ma nual
■ コントロールリスト部のリスト表示例
コントロールリスト部のリスト表示例を図 7.2-2 に示します。
図 7.2-2 コントロールリスト部のリスト表示例
FR/FR80 Family SOFTUNE Linker Control List
2003-08-26 15:18:11 Page:
1
Option File(s)
** no use **
Control(s)
-a
-g
-l usrlb.lib
-ro prog=0x8000/0xffff
-ra data=0x0000/0x03ff
-sc P+code=prog,D+data+S=data
Input Module(s)
1 pca02.obj(pca01)
2 pcasb.obj(pcasb)
3 xccdef.obj(xccdef)
Error(s)
** Nothing **
December 1, 2014, CM71-00327-9
185
第 7 章 リンカの出力リストファイル
Su pp or t
7.2.2
So ft
Manu al
マップリスト
マップリストには , セクションの名前 , 内容種別 , 属性と結合後のセクション配置ア
ドレスを表示します。
■ マップリスト部のリスト出力フォーマット
マップリスト部のリスト出力フォーマットを図 7.2-3 に示します。
図 7.2-3 マップリスト部のリスト出力フォーマット
FR/FR80 Family SOFTUNE Linker
S_Addr. -E_Addr.
Size
Mapping List
Section Type Al
YYYY-MM-DD hh:mm:ss Page:
Sec.(Top **)
2
C
① マップ情報表示エリア
● ページヘッダ
先頭行にリンカ名 , リスト名 , 日時 , ページ番号を表示します。
① マップ情報表示エリア
マップ情報は , 開始アドレス順 , ただし , 開始アドレスが同じ場合はセクション出現
順に表示されます。
S-Addr
E-Addr
Size
Section
:セクションの開始アドレス(16 進)
未使用関数削除機能により削除されたセクションは ,"--------" と表
示します。
:セクションの終了アドレス(16 進)
未使用関数削除機能により削除されたセクションは ,"--------" と表
示します。
:セクションのサイズ(16 進)
未使用関数削除機能により削除されたセクションは ,"--------" と表
示します。
:セクション内容種別
セクションの内容種別を表示します。
CODE
プログラムセクション
DATA
データセクション
CONST
初期値付データセクション
STACK
スタックセクション
IO
IO セクション
セクション種別の後に , 結合属性を表示します。
186
P
単純連結結合
C
共有結合
N
結合なし
CM71-00327-9, December 1, 2014
第 7 章 リンカの出力リストファイル
Support
Type
Soft
Ma nual
:セクションの属性
左から順に , 以下の属性を表示します。
R/-
Read 可/不可
W/-
Write 可/不可
X/-
実行可/不可
I/-
初期値あり/なし
:セクション配置時の境界調整数(16 進)
Al
境界調整数が 0x100 以上の場合は , "**" と表示されます。
Sec.(Top **):セクション名
ROM → RAM 転送セクションで生成されたセクションには先頭
に "#" が表示されます。
"**" は , 指定されたページ幅でセクション名が何桁表示できる
かを示します。
(注意事項) セクションサイズが "0" のセクションの終了アドレスは , 「........」で表示
します。
■ マップリスト部のリスト表示例
マップリスト部のリスト表示例を図 7.2-4 に示します。
図 7.2-4 マップリスト部のリスト表示例
FR/FR80 Family SOFTUNE Linker
S_Addr. -E_Addr.
00000000-0000001F
00000020-00000039
0000003A-00000053
00000054-0000006D
00008000-00008039
0000803A-00008053
00008054-0000806D
Size
00000020
0000001A
0000001A
0000001A
0000003A
0000001A
0000001A
Mapping List 2003-08-09 20:41:12
Section Type Al
DATA P RW-- 08 REL
DATA P RW-- 02 REL
STAK P RW-- 02 REL
DATA P RW-I 02 REL
CODE P R-XI 02 REL
CODE P R-XI 02 REL
DATA P R--I 02 REL
Page:
Sec.(Top 29)
D
data
S
init
P
code
#init
2
C
■ 未使用関数削除機能により削除されたセクションのマップリスト表示例
未使用関数削除機能により削除されたセクションのマップリスト表示例を図 7.2-5 に
示します。
削除されたセクションの S_Addr., E_Addr., Size は ,"--------" と表示します。
図 7.2-5 削除されたセクションのリスト表示例
FR/FR80 Family SOFTUNE Linker
S_Addr. -E_Addr.
00070024-00070025
000F0000-000F000B
-----------------
December 1, 2014, CM71-00327-9
Size
00000002
0000000C
--------
Mapping List 2003-08-09 20:41:12
Section
CODE P
CODE P
CODE P
Type
R-XI
R-XI
R--I
Al
Sec.(Top 29)
02 REL CODE_main_func1
02 REL CODE_main_main
02 REL CODE_main_func2
Page:
2
C
187
第 7 章 リンカの出力リストファイル
Su pp or t
So ft
Manu al
メモリ使用情報リスト
7.2.3
メモリ使用情報リストには , RAM 指定領域と ROM 指定領域の , 領域名 , 空きまたは
オーバ領域サイズ , 指定領域の先頭・終端アドレスなどを表示します。
■ メモリ使用情報リスト部のリスト出力フォーマット
メモリ使用情報リスト部のリスト出力フォーマットを図 7.2-6 に示します。
図 7.2-6 メモリ使用情報リスト部のリスト出力フォーマット
FR/FR80 Family SOFTUNE Linker ROM/RAM Used Info YYYY-MM-DD hh:mm:ss
S_Addr. -E_Addr.
①
Size
Remain
Page:
Name/State
3
C
ROM/RAM使用情報
.....
②
領域内情報
③
総合評価値情報
.....
● ページヘッダ
先頭行にリンカ名 , リスト名 , 日時 , ページ番号を表示します。
① ROM/RAM 使用情報表示エリア
- ROM/RAM 使用情報表示エリア内で , 出力された行の先頭に "#" の文字が付いた
行は , -ro, -ra オプションにより指定された情報を表示しています。
- 出力された行の先頭に "#" の文字が付いていない行は , 有効エリア内のセクショ
ン群の先頭アドレス , 終端アドレス , ギャップ領域を含む使用領域サイズと使用
領域サイズに対する過不足値を表示しています。
- -ro, -ra オプションにより指定された領域に , 配置できなかったセクションのセク
ション名とセクションサイズの表示も行います。
S-Addr : 開始アドレス
(16 進)
E-Addr : 終了アドレス
(16 進)
Size
: 領域サイズ
(16 進)
Remain : メモリ内の状況領域サイズ (16 進)
先頭の記号は以下のことを示します。
+
:
空き領域サイズ
-
:
オーバ領域サイズ
スペース
:
空き / オーバ領域がゼロの場合
Name/State :
188
メモリ領域名 , セクション名
CM71-00327-9, December 1, 2014
第 7 章 リンカの出力リストファイル
Support
Soft
Ma nual
② 領域内情報エリア
領域内情報エリアは , 有効エリア内の空き領域 , 使用済領域 , ギャップ領域をマップ
イメージで表示します。
この情報エリアに表示される情報は , 指定領域に対して配置されたセクションのみ
の情報です。
S-Addr
: 領域の開始アドレス
(16 進)
E-Addr
: 領域の終了アドレス
(16 進)
Size
: 領域サイズ
(16 進)
Name/State : 領域タイプ
FREE
: 空き領域
USED
: 使用済領域
GAP
: ギャップ領域
③ 総合評価値情報
総合評価値情報は , ROM エリアの総合と RAM エリアの総合の 2 つに対して , 以下
の 3 つの情報を表示します。
- 指定領域の合計値(Total)
- 使用した領域の合計値(Used)(注意事項 ) ギャップ領域を含む
- 空きまたはオーバ領域の合計値(Remainder)
December 1, 2014, CM71-00327-9
189
第 7 章 リンカの出力リストファイル
Su pp or t
So ft
Manu al
■ メモリ使用情報リスト部のリスト表示例
メモリ使用情報リスト部のリスト表示例を図 7.2-7 に示します。
図 7.2-7 メモリ使用情報リスト部のリスト表示例
FR/FR80 Family SOFTUNE Linker
ROM/RAM Used Info List
2003-09-02 20:45:25
S-Addr.
- E-Addr.
Size
Remain
# 00001000
00001000
- 00001FFF
- 00001774
00001000
00000775
--------- RAM1
+0000088B
-
00001136
00001137
0000152B
0000152F
00001774
00001FFF
00000137
00000001
000003F4
00000004
00000245
0000088B
-------------------------------------------------
# 00002000
- 000023FF
00002000
- 00003A1E
** Not Locate **
** Not Locate **
00000400
00001A1F
00000B28
00000EF6
--------- RAM2
-0000161F
--------- data01
--------- data02
00000400
--------- FREE
00001000
00001137
00001138
0000152C
00001530
00001775
00002000
- 000023FF
Page:
Name/State
USED
GAP
USED
GAP
USED
FREE
3
C
←オプションで指定したメモリ領域
←配置したセクションに対する
メモリ状況
RAM1領域の情報
←*1
←配置できなかった
セクション情報 *2
RAM2領域の情報
Remainder(-00000D94) ←全RAM領域の情報
RAM -- Total(00001400) Used(00002194)
# 000BC000
000BBF00
- 000BCFFF
- 000BDFFF
00001000
00002100
--------- ROM1
-00001100
000BC000
- 000BCFFF
00001000
--------- USED
# 000BD000
000BD000
- 000BFFFF
- ........
00003000
00000000
--------- ROM2
+00003000
000BD000
- 000BFFFF
00003000
--------- FREE
ROM -- Total(00004000) Used(00002100)
←*3
←ROM1領域の情報
ROM2領域の情報
Remainder(+00001F00) ←全ROM領域の情報
説明
*1:自動配置オプションによりメモリ領域にセクションを配置しようとして配置でき
なかったセクションがあるメモリ領域の情報は , そのセクションのサイズを加えた
状態を示しています。
(数値表現として 0xFFFFFFFF を超えた場合 , その数値の下位
32 ビット分が表示されます。)
*2:自動配置オプションのモード2が指定された場合の配置できなかったセクション
は , (ROM 領域 , RAM 領域のどちらかの)最後に指定されたメモリ領域に対して
表示を行います。
*3:ユーザ配置指定が行われたセクションは , そのセクションの先頭アドレスが含まれ
るメモリ領域に含みます。
190
CM71-00327-9, December 1, 2014
第 7 章 リンカの出力リストファイル
Support
7.2.4
Soft
Ma nual
シンボルリスト
シンボルリストには , 外部シンボル名 , 定義 , 参照の種別 , シンボルの値を表示しま
す。
■ シンボルリスト部のリスト出力フォーマット
シンボルリスト部のリスト出力フォーマットを図 7.2-8 に示します。
図 7.2-8 シンボルリスト部のリスト出力フォーマット
FR/FR80 Family SOFTUNE Linker
Symbol Value
Type
Def.
Symbol List
YYYY-MM-DD hh:mm:ss
Page:
Symbol Name(Top **)
1
C
① シンボルリストエリア
● ページヘッダ
先頭行にリンカ名 , リスト名 , 日時 , ページ番号を表示します。
① シンボルリスト表示エリア
Symbol Value :
:
Type
シンボルアドレス or シンボル値(16 進)
未使用関数削除機能により削除された関数は ,"--------(DEL)"
と表示します。
シンボル種別
次のいずれかが表示されます。
Def.
Addr.
:
シンボルはアドレスレベルです。
EQU
:
シンボルは EQU 定義シンボルです。
bit
:
シンボルはビット属性です。
: シンボルの定義
次のいずれかが表示されます。
OM/LM :
入力オブジェクトモジュールまたは相対形式ロードモ
ジュール中で定義されています。
LIB
:
結合されたライブラリ中で定義されています。
user
:
-df オプションにより値を仮設定されたシンボルです。
Symbol Name :
シンボル名
"**" は , 指定されたページ幅でシンボル名が何桁表示できるかを示します。
( 注意事項 ) シンボルが , 参照されている場合は , そのままシンボル名を表示し , 参照
されていない場合は , シンボル名の先頭に "@" を付けて表示します。
また , C/C++ コンパイラで生成されたシンボルの場合 , マングル名とシン
ボル名が表示されます。
December 1, 2014, CM71-00327-9
191
第 7 章 リンカの出力リストファイル
Su pp or t
So ft
Manu al
■ シンボルリスト部のリスト表示例
シンボルリスト部のリスト表示例を図 7.2-9 に示します。
図 7.2-9 シンボルリスト部のリスト表示例
FR/FR80 Family SOFTUNE Linker
Symbol List
2003-08-15 15:26:32
Page:
3
Symbol Value
000000CA(ABS)
Type
Addr.
Def.
OM/LM
00001234(ABS)
Addr.
user
00000000(ABS)
Addr.
OM/LM
0000004A(ABS)
Addr.
OM/LM
Symbol Name(Top **)
C
___ct__8USDollarFUiT1
USDollar::USDollar(unsigne dint,unsigned int)
___nw__FUi
operator new(unsigned int)
___pl__FR8USDollarT1
operator +(USDollar &,USDollar &)
_main
main
■ 削除された関数のシンボルリスト表示例
未使用関数削除機能により削除された関数のシンボルリスト表示例を図 7.2-10 に示し
ます。
削除された関数の Symbol Value は ," --------(DEL)" と表示します。
図 7.2-10 シンボルリスト部のリスト表示例
FR/FR80 Family SOFTUNE Linker
192
Symbol Value
00070024(ABS)
Type
Addr.
--------(DEL)
Addr.
000F0000(ABS)
Addr.
Symbol List
2003-08-15 15:26:32
Def.
Symbol Name(Top **)
OM/LM @_func1
func1
OM/LM @_func2
func2
OM/LM @_main
main
Page:
3
C
CM71-00327-9, December 1, 2014
第 7 章 リンカの出力リストファイル
Support
7.3
Soft
Ma nual
絶対形式アセンブルリストファイル
リンカが出力する絶対形式アセンブルリストは , 以下により構成されています。
• ヘッダ
• インフォメーションリスト
• ROM/RAM, ARRAY リスト
• アセンブルソースリスト
• セクション情報リスト
• クロスリファレンスリスト
ここでは , それぞれに出力される項目を説明します。
■ 絶対形式アセンブルリストの形式
● ヘッダ
各ページの先頭に出力されます。
● インフォメーションリスト
アセンブラが出力したインフォメーションリストをそのまま出力します。
● ROM/RAM, ARRAY リスト
• ROM/RAM リスト
ROM/RAM 領域に配置されているグローバルシンボルの名前 , 絶対アドレス情報な
どが出力されます。
• ARRAY リスト
配列要素の名前 , 構造体のメンバ名 , 絶対アドレス情報などが出力されます。
オプション -alr を指定すると , ROM/RAM, ARRAY リストを表示します。-Xalr を指
定すると ROM/RAM, ARRAY リストは表示されません。
● アセンブルソースリスト
アセンブルソースリストは , ソースプログラムをアセンブルしたときの様々な情報を
行単位に表示したものです。エラー情報 , ロケーション , オブジェクトコードなどが表
示されます。
● セクション情報リスト
ソースプログラム内で定義されたセクションの名前 , 属性などが表示されます。
December 1, 2014, CM71-00327-9
193
第 7 章 リンカの出力リストファイル
Su pp or t
So ft
Manu al
● クロスリファレンスリスト
ソースプログラム内で使用しているシンボル名の定義 , 参照関係を行番号で示します。
リストの構成は , 図 7.3-1 のようになっています。
図 7.3-1 アセンブルリストの構成
インフォメーションリスト
(ROM/RAMリスト)
-alr指定
(ARRAYリスト)
アセンブルソースリスト
セクション情報リスト
クロスリファレンスリスト
■ アセンブルリスト内のエラーメッセージ
アセンブル時に発生したエラーが , もし , アセンブルリスト上にあれば , エラーメッ
セージがそのまま表示されます。
194
CM71-00327-9, December 1, 2014
第 7 章 リンカの出力リストファイル
Support
7.3.1
Soft
Ma nual
ヘッダ , インフォメーションリスト
ヘッダは 4 行で構成されています。
また , リストの 1 ページ目には , ヘッダに続いてインフォメーションリストが表示さ
れます。
インフォメーションリストには次の情報が表示されます。
• アセンブル時のオプション指定内容
• エラー数とワーニング数
• ソースファイル名
• インクルードファイル名
• オプションファイル名
• 他
■ ヘッダ形式
ヘッダは 4 行より構成されています。各ページの先頭に表示されます。1 ~ 2 行目はア
センブルリスト全体を通じて共通の形式をもち , 3 行目は各ソースプログラムで異なり
ます。ヘッダの形式を図 7.3-2 に示します。
図 7.3-2 ヘッダの形式
[1~2行目]
FR/FR80 Family SOFTUNE Linker
ツール名
VxxLxx
YYYY-MM-DD
hh:mm:ss
絶対アセンブルリスト作成年月日
Page: xxxx
ページ番号
[3行目]
- 各リスト名 - ( モジュール名 )
元のアセンブルリストの内容がそのまま表示されます。
[4行目]
空白行が出力されます。
December 1, 2014, CM71-00327-9
195
第 7 章 リンカの出力リストファイル
Su pp or t
7.3.2
So ft
Manu al
ROM/RAM, ARRAY リスト
ROM/RAM, ARRAY リストは , C/C++ ソースプログラム内で記述されるシンボルに
ついての情報を示すものです。
ROM/RAM, ARRAY リストを出力するには , コンパイル , アセンブル時にデバッグ情
報が出力指定されていることが必要です。
■ ROM/RAM, ARRAY リスト
ROM/RAM, ARRAY リストの形式を図 7.3-3 に示します。
図 7.3-3 ROM/RAM, ARRAY リストの形式
・ROM/RAMリストの形式
- ROM/RAM LISTING - (モジュール名)
NAME
ADDRESS
VALUE
KIND
MEMORY
--- 名前 ---
xxxxxxxx
xxxxxxxx
x
xxx
*1
*2
*3
*4
*5
・ARRAYリストの形式
- ARRAY LISTING - (モジュール名)
NAME
ADDRESS
VALUE
--- 名前 ---
xxxxxxxx
xxxxxxxx
*1
*2
*3
*1 : シンボル名
プログラム内で記述されているシンボルの名前を表示します。
ARRAY リストの場合は配列 , 構造体の要素すべてを表示します。
*2 : アドレス
絶対アドレスを 16 進で表示します。
未使用関数削除機能により削除された関数は ,"--------" と表示します。
シンボル名とアドレスの表示位置はオプションで変更できます。-na を指定すると
シンボル名 , アドレスの順で , -an を指定するとアドレス , シンボル名の順に表示し
ます。
詳細は , 「6.2.58 ROM/RAM, ARRAY リストのシンボルとアドレスの表示位置指定
(-na, -an) 」を参照してください。
*3 : 値
シンボルに初期値が代入されている場合はその値を 10 進で表示します。
196
CM71-00327-9, December 1, 2014
第 7 章 リンカの出力リストファイル
Support
Soft
Ma nual
*4 : シンボルの種別
以下があります。
L : 変数値
F : 関数名
T : タグ名参照
*5 : メモリ配置
シンボルが配置されているメモリ領域を表示します。
ROM : ROM 領域
RAM : RAM 領域
【例 1】
図 7.3-4 ROM/RAM リスト例
- ROM/RAM LISTING - (sample1)
NAME
_Line
_Nameleng
_symref
_Tflg
ADDRESS
000002B8
0000004C
00005592
00000763
VALUE
00000100
00000016
00000002
KIND
L
L
T
L
MEMORY
ROM
RAM
ROM
RAM
【例 2】
未使用関数削除機能により削除された関数の ROM/RAM リスト表示例を図 7.3-5 に
示します。
削除された関数の ADDRESS は ,"--------" と表示します。
図 7.3-5 削除された関数の ROM/RAM リスト例
- ROM/RAM LISTING - (sample1)
NAME
_func1
_func2
_main
December 1, 2014, CM71-00327-9
ADDRESS
00070024
-------000F0000
VALUE
KIND
F
F
F
MEMORY
ROM
ROM
ROM
197
第 7 章 リンカの出力リストファイル
Su pp or t
So ft
Manu al
【例 3】
図 7.3-6 ARRAY リスト例
- ARRAY LISTING - (sample1)
NAME
_symref[0].val
_symref[0].nam
_symref[0].atr
_symref[1].val
_symref[1].nam
_symref[1].atr
_Xpcr[0][0]
_Xpcr[0][1]
198
ADDRESS
00005592
00005596
00005598
0000559A
0000559E
000055A0
00001066
000010A0
VALUE
00000100
00000002
00000016
00012000
00000002
00000016
00000400
00000120
CM71-00327-9, December 1, 2014
第 7 章 リンカの出力リストファイル
Support
7.3.3
Soft
Ma nual
アセンブルソースリスト
アセンブルソースリストはロケーション部分が絶対アドレス , オブジェクトコード
部分がリンク後の確定したコードで表示されます。
■ アセンブルソースリストの形式
アセンブルソースリストの形式を図 7.3-7 に示します。
図 7.3-7 アセンブルソースリストの形式
- SOURCE LISTING - ( モジュール名 )
SN
xx
*1
LOC
OBJ
LLINE
SOURCE
xxxxxxxx xxxxxxxxxxxxxxxxxxxxxx x xxxxxxxxxxxx x -------------*2
*3
*4 *5
*6 *7
上に示す形式の 1 行目の部分をソースリストヘッダとよびます。ソースリストヘッダ
はページごとに表示されます。
*1: セクション頭文字
セクション名の先頭 2 文字までを表示します。
*2: ロケーション
32 ビットのロケーション値を 16 進で表示します。
未使用関数削除機能により削除された関数は ,"--------" と表示します。
*3: オブジェクトコード
リンク後の決定したオブジェクトコードを 16 進で表示します。1 行にすべて表示で
きないときは複数行で表示します。
*4: オブジェクトコードの種類
オブジェクトコードに含まれる値の属性を次の優先順位で表示します。
I
: 外部参照値
S
: セクション値
空白 : 絶対値
相対アセンブルリストに表示されている "R" は絶対形式アセンブルリストでは絶対
値に変換されるため表示されません。
*5: 行番号
行番号を 10 進 10 桁で表示します。
December 1, 2014, CM71-00327-9
199
第 7 章 リンカの出力リストファイル
Su pp or t
So ft
Manu al
*6: プリプロセッサおよび最適コードチェックの処理状況表示
プリプロセッサ
X
: アセンブル対象外となった行
&
: マクロ展開行
最適コードチェック
x
: 最適化で削除された命令
C
: 最適化で別の命令に置き換えたことを示す
O
: 最適化で新たに生成した命令
V
: 最適化で下方の命令と入れ替えたことを示す (A と対 )
A
: 最適化で情報の命令と入れ替えたことを示す (V と対 )
*7: ソース行
ソースプログラムの 1 行を表示します。リスト 1 行におさまらない場合 , 複数行で
表示します。
【例 1】
図 7.3-8 アセンブルソースリスト例
- SOURCE LISTING - (sample1)
SN LOC
OBJ
IN
IN
IN
CO
CO
--------<INIT>------[2] 02
0020 0010
--------<CODE>------9F840000043C
002CE724
002CE724
002CE726
0000A280
0000A280
LLINE
SOURCE
1025
1026
1027
1028
1029
label
.DATAB.B
.DATA.H
.SECTION
LDI:32
行番号
2, 2
32,16
CODE, CODE
#LS1,R4
ソースプログラム
オブジェクトコード:リンク後の確定した値で表示します。
ロケーションカウンタ:32ビットの絶対アドレスで表示します。
セクション頭文字:セクション名の先頭2文字までを表示します。
【例 2】
未使用関数削除機能により削除された関数のアセンブルソースリスト表示例を図
7.3-9 に示します。
削除された関数の Loc は ,"--------" と表示します。
図 7.3-9 削除された関数のアセンブルソースリスト例
SN LOC
OBJ
LLINE
CO -------- --<CODE_main_func2>-- 13
14
CO -------15
CO -------- 1781
16
17 x
CO -------- 07200000
I
O
CO -------- 0781
18
CO -------- 9720
19
200
SOURCE
.section CODE_main_func2, CODE, align=2
.global _func2
_func2:
ST RP,@-SP
CALL21 _func3
"LCALL"
LD @SP+,RP
RET
CM71-00327-9, December 1, 2014
第 7 章 リンカの出力リストファイル
Support
7.3.4
Soft
Ma nual
セクション情報リスト
セクション情報リストは , プログラム内で定義されるセクションについての情報を
示しているものです。
セクション情報リストは , 改ページを行い , 新しいページから表示します。
■ セクション情報リスト
セクション情報リストの形式を図 7.3-10 に示します。
図 7.3-10 セクション情報リストの形式
FR/FR80 Family SOFTUNE Linker VxxLxx
YYYY-MM-DD
hh:mm:ss
Page: xxxx
- SECTION LISTING - ( モジュール名 )
NO
xx
*1
SECTION-NAME
SIZE
ATTRIBUTES
-------- セクション名 -------- xxxxxxxx xxx xxx xxxx=xxxx
*2
*3
*4
*5
*1:セクション出現番号
0 から始まります。オブジェクトファイル中のセクション番号に相当します。
*2:セクション名
定義されたセクション名を出現順に表示します。
*3:セクションサイズ
セクションのサイズを 16 進 32 ビット長で表示します。
*4:セクションタイプ
セクションの種別を表示します。種別には次があります。
CODE
:コードセクション
DATA
:データセクション
CONST
:初期値付きデータセクション
COMMON :共有セクション
STACK
:スタックセクション
IO
:IO セクション
*5:セクション配置形式
相対アセンブルリストの表示をそのまま出力します。
アセンブル時に相対セクションならば ALIGN 値を表示します。絶対セクションな
らば LOCATE 値を表示します。
December 1, 2014, CM71-00327-9
201
第 7 章 リンカの出力リストファイル
Su pp or t
So ft
Manu al
【例】
図 7.3-11 セクション情報リスト例
FR/FR80 Family SOFTUNE Linker V60L04
2003-08-23
10:04:51
Page:
78
- SECTION LISTING - (sample1)
NO
0
1
2
3
202
SECTION-NAME
DATA ....................
INIT ....................
CONST ....................
CODE ....................
SIZE
00000004
0000001C
00000020
00000038
ATTRIBUTES
DATA REL
DATA REL
CONST REL
CODE REL
ALIGN=4
ALIGN=4
ALIGN=4
ALIGN=2
CM71-00327-9, December 1, 2014
第 7 章 リンカの出力リストファイル
Support
7.3.5
Soft
Ma nual
クロスリファレンスリスト
クロスリファレンスリストは , プログラム内で記述される名前についての情報とそ
の定義と参照の関係を示すものです。
クロスリファレンスリストは , 改ページを行い , 新しいページから表示します。
■ クロスリファレンスリスト
クロスリファレンスリストの形式を図 7.3-12 に示します。
図 7.3-12 クロスリファレンスリストの形式
FR/FR80 Family SOFTUNE Linker VxxLxx
YYYY-MM-DD
hh:mm:ss
Page: XXXX
- CROSSREFERENCE LISTING - ( モジュール名 )
NAME
-------- 名前 -------*1
ATTRIB.
xxxx/xxxx
*2
VALUE
xxxxxxxx
*3
DEFINITION/REFERENCE
xxx xxx xxx
*4
*1:名前
シンボル名 , セクション名を , 大文字 , 小文字 , アルファベット順に表示します。
*2:シンボル種別
シンボルの種別を以下の形式で表示します。
ABS
:絶対シンボル
REL
:相対シンボル
ABS/EXP
:絶対シンボル(外部定義指定)
REL/EXP
:相対シンボル(外部定義指定)
IMP
:外部参照シンボル
SECT/ABS :絶対セクション
SECT/REL :相対セクション
UNDEFINED:未定義シンボル
REGLIST
:レジスタシンボル
*3:値
シンボルが値を持つ場合 , その値を 32 ビットの絶対アドレスで表示します。
未使用関数削除機能により削除された関数は ,"--------" と表示します。
*4:定義 , 参照行番号
シンボルを定義している行と参照している行を示します。
シンボルが定義されている行番号の後ろにシャープ記号 "#" が付けられます。
December 1, 2014, CM71-00327-9
203
第 7 章 リンカの出力リストファイル
Su pp or t
So ft
Manu al
【例 1】
図 7.3-13 クロスリファレンスリスト例
FR/FR80 Family SOFTUNE Linker V60L04
2003-08-23
13:58:00
Page:
86
- CROSSREFERENCE LISTING - (sample)
NAME
ARRSY
BINCOL
DATAC
IROAS
ATTRIB.
SECT/REL
REL/EXP
REL
ABS
VALUE
000021C2
00000308
00006D58
00000101
DEFINITION/REFERENCE
266 #
40 #
92
13
437 #
79 #
10
4
【例 2】
未使用関数削除機能により削除された関数クロスリファレンスリスト表示例を図
7.3-14 に示します。
削除された関数は ,”--------“と表示します。
図 7.3-14 クロスリファレンスリスト例
FR/FR80 Family SOFTUNE Linker V60L11
2014-01-01
13:58:00
Page:
86
- CROSSREFERENCE LISTING - (sample)
NAME
ATTRIB.
CODE_main_func1 . . SECT/REL
CODE_main_func2 . . SECT/REL
CODE_main_main . . . SECT/REL
204
VALUE
00070024
-------000F0000
DEFINITION/REFERENCE
20 #
13 #
24 #
CM71-00327-9, December 1, 2014
第 7 章 リンカの出力リストファイル
Support
7.4
Soft
Ma nual
外部シンボル相互参照情報リストファイル
外部シンボル相互参照情報リストファイルは , リンク後の各オブジェクトモジュー
ルの外部定義シンボルと外部参照シンボルのモジュール間の相互参照情報を表示し
ます。
■ 外部シンボル相互参照情報リストファイル
外部シンボル相互参照情報リストの出力形式を図 7.4-1 に示します。
図 7.4-1 外部シンボル相互参照情報リストの出力形式
External Symbol Cross Reference List
YYYY-MM-DD
hh:mm:ss
Page:
1
YYYY-MM-DD
hh:mm:ss
Page:
2
Module(s)
1. Module01
2. Module02
.
.
.
15. Module15
External Symbol Cross Reference List
--- symbol --extsym1
extsym2
extsym3
--- type/value --Addr. 0x000012E8
Addr. 0x000C3F34
Addr. 0x000012E6
operator new(unsigned int)
operator new[](unsigned int)
extsymunresolved
n1p
main
func2
Addr.
Addr.
????
EQU
Addr.
Addr.
0x00000AAA
0x00000B1E
0x00000000
0x00000001
0x00000314
0x00000000
--- module (No.) --1# 2 3 4 5 6 8 11 12 14
2 3 4# 5 6 8 11 12 14
1# 2 3 4 5 6 8 11 12 13
14 15
1 2 3 4 7# 8
4 8#
10 15
4 5 6 11 12 14#
3# 5
2#
● Module(s)
1 から始まる通し番号を付けて , モジュール名を示します。
● symbol
シンボル名または関数名を表示します。(最大 50 文字)
December 1, 2014, CM71-00327-9
205
第 7 章 リンカの出力リストファイル
Su pp or t
So ft
Manu al
● type/value
type には以下があります。
• Addr. :アドレス
• EQU :EQU シンボル
• Bit
:ビットシンボル
• ????
:未定義
valueは, 値を示します。ビットシンボルの場合, 括弧内にビットポジションを示します。
未使用関数削除機能により削除された関数は ,"0x00000000" と表示します。
● module (No.)
定義 / 参照のあったモジュールを番号で示します。# 記号は定義モジュールです。
206
CM71-00327-9, December 1, 2014
第 7 章 リンカの出力リストファイル
Support
7.5
Soft
Ma nual
ローカルシンボル情報リストファイル
ローカルシンボル情報リストファイルは , 絶対形式ロードモジュールを構成する
個々のモジュールごとのローカルシンボルを含んだ変数や関数などの情報を表示し
ます。
このリストはデバッグ情報をもとに作成されますので , コンパイル , アセンブル時
に , -g オプションを指定してください。
■ ローカルシンボル情報リストファイル
ローカルシンボル情報リストの出力形式を図 7.5-1 に示します。
図 7.5-1 ローカルシンボル情報リストの出力形式
Local Symbol List
YYYY-MM-DD
hh:mm:ss
Page:
1
YYYY-MM-DD
hh:mm:ss
Page:
2
Module(s)
1. Module01
2. Module02
.
.
15. Module15
Local Symbol List
=== Module No.1(module01) ===
--- symbol --func1(int)
localstatic1
localstatic2
.
.
=== Module No.15(module015) ===
--- symbol --operator+(USDollar &,USDollar &)
main
USDollar::USDollar(unsigned int)
Atable
Extsym
--- Kind --Func.
g
Var.
s
Var.
s
--- Kind --Func.
g
Func.
g
Func.
g
loc.
s
Var.
g
--- val ---------0x000012EE
0x000012F0
--- val --0x00000000
0x0000004A
0x000000CA
0xFFFFFFFC
0x00001342
● Module(s)
1 から始まる通し番号を付けて , モジュール名を示します。
● symbol
シンボル名または関数名を表示します。
関数内で使用しているシンボルは , 3 カラム目から表示します。
シンボル名の先頭から最大 50 文字迄がリストの 1 行に表示されます。
December 1, 2014, CM71-00327-9
207
第 7 章 リンカの出力リストファイル
Su pp or t
So ft
Manu al
● Kind
以下のシンボル種別を表示します。
Var.
:変数(C/C++)
Func. :関数(C/C++)
loc.
:ローカル(C/C++)
Addr. :アドレス(ASM)
EQU :EQU シンボル(ASM)
bit
:bit シンボル(ASM)
???? :未定義
s
:static(C/C++)
g
:global(C/C++)
●val
シンボルの値を示します。
( 注意事項 ) 構造体の詳細情報(メンバ名)や , typedef 定義などは表示しません。
未使用関数削除機能により削除された関数は ,"--------" と表示します。
208
CM71-00327-9, December 1, 2014
第 7 章 リンカの出力リストファイル
Support
7.6
Soft
Ma nual
セクション配置詳細情報リストファイル
セクション配置詳細リストファイルは , 絶対形式ロードモジュールを構成する個々
のモジュールごとのセクション配置の情報を作成します。
マップリストファイルに 1 つにまとまったセクション全体のマップリストが表示さ
れますが , さらに詳しいセクション配置情報を知ることができます。
■ セクション配置詳細情報リストファイル
セクション配置詳細情報リストの出力形式を図 7.6-1 に示します。
図 7.6-1 セクション配置詳細情報リストの出力形式
Section Mapping List
Module(s)
1. Module01
2. Module02
.
.
15. Module15
YYYY-MM-DD
Section Mapping List
S.Addr. -E.Addr.
00000000-00000048
0000004A-000003E1
000003E4-........
000003E4-00000643
00000644-00000743
Size
Section
00000049 DATA
00000348 DATA
00000000 DATA
00000260 DATA
00000100 STACK
P
P
P
P
P
Type
RW-RW-RW-RW-I
RW--
Al
04
04
04
04
04
000C0000-000C0441
000C0442-000C148B
*000C148C-000C201D
*000C2000-000C2203
----------------000C3000-000C325F
00000442
0000104A
00000B92
00000204
-------00000260
P
P
P
P
P
P
R-XI
R-XI
R-XI
R-XI
R--I
R--I
02
02
02
02
02
04
CODE
CODE
CODE
CODE
CODE
DATA
hh:mm:ss
Page:
1
YYYY-MM-DD hh:mm:ss Page: 2
M.No. Sec.(Top 18)
1
data
2
data
3
data
4
init
4
sectionnametoolong+
toolong
1
code
3
code
4
code
5
subprog1
6
code_Module06_func
4
#init
● Module(s)
1 から始まる通し番号を付けて , モジュール名を示します。
● S.Addr.-E.Addr.
セクションの開始と終了アドレスです。
アドレスが他と重なっているセクションは , 開始アドレスの前に(*)が付加されます。
サイズ 0 のセクションの場合 , 終了アドレスの表示は「........」になります。
未使用関数削除機能により削除された関数のセクションの場合,"--------"と表示します。
● Size
許されるアドレス空間をオーバフローしているセクションは, サイズの最大値+1を表
示します。
未使用関数削除機能により削除された関数のセクションの場合,"--------"と表示します。
December 1, 2014, CM71-00327-9
209
第 7 章 リンカの出力リストファイル
Su pp or t
So ft
Manu al
● Section
セクションの内容種別を表示します。
CODE
:プログラムセクション
DATA
:データセクション
CONST :初期値付きデータセクション
STACK :スタックセクション
IO
:IO セクション
セクション種別の後に , 結合属性を表示します。
P
:単純連結結合
C
:共有結合
N
:結合なし
● type
左から順に , 以下の属性を表示します。
R/-
:Read 可 / 不可
W/-
:Write 可 / 不可
X/-
:実行可 / 不可
I/-
:初期値あり / なし
● Al
セクション配置の境界調整数を 16 進で表示します。
● M.No.
モジュール番号を表示します。Module(s) で表示のモジュール番号を示します。
● Sec.(Top xx)
セクション名を表示します。
(Top xx)の xx は , セクション名を行の折り返しなしで表
示できる文字数です。
セクション名の前に # がついているセクションは , 実行前に RAM へ転送される初期値
付きデータの配置されたセクションであることを示します。
210
CM71-00327-9, December 1, 2014
Support
Soft
Ma nual
第8章
リンカの制限事項および
Q&A
この章では , リンカの制限事項や使用上の Q &A に
ついて述べます。
8.1 リンカの制限事項
8.2 リンカの使用上の Q&A
December 1, 2014, CM71-00327-9
211
第 8 章 リンカの制限事項および Q&A
Su pp or t
8.1
So ft
Manu al
リンカの制限事項
リンカを使用する上で , 処理可能な入力ファイル数やセクション数 , シンボル数など
に表 8.1-1 に示す制限があります。
■ リンカの制限事項
リンカは , 入力ファイル数やセクション数 , シンボル数などに表 8.1-1 に示す制限があ
ります。
ただし , 最大限界値まで処理が可能なわけではありません。
リンカは動的にメモリ獲得を行いながら処理を行います。
処理に必要なメモリ獲得ができなくなった場合には , メモリ不足のエラーメッセージ
を通知し , 処理を中断します。
表 8.1-1 リンカの制限一覧
項目
制限値
備考
オプションファイル数
オプションファイル内の行数
オプションファイル内の 1 行の文字数
無制限
無制限
無制限
メモリ依存
メモリ依存
メモリ依存
オプションファイルのネスト
不可
入力ファイル数
4,294,967,295 個
メモリ依存
入力モジュール数
4,294,967,295 個
メモリ依存
入出力ファイルサイズ
無制限
OS 依存
モジュール名 / セクション名 / シンボル名文字数
無制限
メモリ依存
ファイル名文字数
無制限
OS 依存
セクション数
4,294,967,295 個
メモリ依存
最大セクションサイズ
4G バイト
外部定義シンボル数
4,294,967,295 個
外部参照シンボル数
4,294,967,295 個
メモリ依存
外部定義シンボル参照数
最大ソース数
無制限
4,294,967,295 個
メモリ依存
メモリ依存
最大ソース行数
4,294,967,295 行
メモリ依存
メモリ依存
■ リンカの予約名
リンカは , ROM → RAM 転送機能を用いたセクションごとに "_ROM_ セクション名 ",
"_RAM_ セクション名 " でシンボルの自動生成を行います。
したがって , 同名のシンボルがユーザプログラム内で定義されていると , "W1327L : こ
のシンボルは既に定義されています ( シンボル名 )" が発生します。
ユーザは "_ROM_ セクション名 ", "_RAM_ セクション名 " でシンボル定義を行わない
でください。
また , 同様に ROM/RAM 領域名の "_ROM_ 数値 _", "_RAM_ 数値 _" は CPU 情報ファイ
ルから自動的に設定されます。
ユーザは "_ROM_ 数値 _", "_RAM_ 数値 _" で領域名定義 (-ro, -ra 指定 ) を行わないでく
ださい。
212
CM71-00327-9, December 1, 2014
第 8 章 リンカの制限事項および Q&A
Support
8.2
Soft
Ma nual
リンカの使用上の Q&A
リンカの使用に関する Question と Answer を示します。
■ リンカの使用上の Q&A
● ワイルドカードの使用
Q.
入力するオブジェクトモジュールファイル数が非常に多いのですが , ワイルドカード
は使用できますか ?
A.
コマンドライン上では, 入力ファイルの指定にワイルドカードを使用すると, リンカが
展開して実行します。オプションファイル中にも入力ファイル名の指定ができますが ,
ここでもワイルドカードが利用できます。下記の例を参考にして , 使用してください。
例
flnk911s *.obj -o outfile.abs
flnk911s mactrl.obj xz???.obj
Q.
セクション配置指定時, セクション名にワイルドカードが使用できますが, どのように
使用したらよいですか ?
A.
内容種別が同じセクションをまとめたいとき , または多数のセクション名を用いてプ
ログラムを作成したときに使用すると便利な場合があります。セクション名を命名する
ときに, リンカでワイルドカードが使用できることを考慮して, キーワードとなる文字を
決めておくことが必要になるかもしれません。
例
内容種別が data のセクションとして , DTdata1, DTdata2, DTdata3, DTdata4 ...
内容種別が code のセクションとして , CDprog1, CDprog2, CDprog3, CDprog4, ...
のような名前でセクション名定義をしているとします。この場合 , 下記のような指定方
法が選択できます (-sc オプションの部分のみ示します )。
-sc DTdata1+DTdata2+Dtdata3+DTdata4=0x1000,
CDprog1+CDprog2+Cdprog3+CDprog4=0x3000
-sc DT*=0x1000,CD*=0x3000
-sc */data=0x1000,*/code=0x3000
December 1, 2014, CM71-00327-9
213
第 8 章 リンカの制限事項および Q&A
Su pp or t
So ft
Manu al
● 初期値付変数の扱い
Q.
C/C++ コンパイラを使用した組み込み用のプログラム開発においては , 初期値付変数
が生成されますが , このデータはプログラム実行時に書換えられるため , 実行時は RAM
上になくてはなりません。
プログラム作成時の手順と注意事項を教えてください。
A.
組み込み用のプログラムでは , 初期値付変数は最初 ROM にあり , 参照するときには
RAM になくてはなりません。したがって , プログラムでの参照アドレスは RAM にし ,
アプリケーション実行前に ROM から RAM への初期値データを転送するしくみを実現
しておかないとプログラムの実行ができないことになります。
リンカがサポートする ROM → RAM 転送セクション機能を用いることでこのしくみが
実現されています。
C/C++ コンパイラが生成する初期値付変数は , 名前が INIT のセクションにまとめられ
ます。
プログラム作成中は , 初期値付変数の総バイト数と RAM のサイズに注意する以外は特
に気を付けることはありません。
ROM → RAM 転送セクション機能については「5.9 ROM → RAM 転送セクション」を
参照してください。
ユーザは , 初期値データの転送プログラムをアセンブラなどで記述する必要がありま
す。
例に「初期値データ転送のプログラム例」を示します。
例
[初期値データ転送のプログラム例: (2バイトずつデータを転送しています。
)]
.import _ROM_INIT,_RAM_INIT…… ①
.section INIT,data,align=4…… ②
.section start,code,align=2
LDI
#(sizeof INIT+1) & ~0x1,R13
CMP
#0, R13
BEQ
NOT_INIT
LDI #_ROM_INIT, R2
LDI #_RAM_INIT, R3
LOOP:
ADD
LDUH
BGT:D
STH
NOT INIT:
#-2, R13
@(R13, R2), R0
LOOP
R0, @(R13, R3)
① _ROM_INIT は , ROM 上の INIT セクション ( 転送元 ) の先頭アドレスを示すシンボ
ルです。_RAM_INIT は , RAM 上の INIT セクション ( 転送先 ) の先頭アドレスを示
すシンボルです。これらのシンボルは , リンカの ROM → RAM 転送セクション機能
で自動的に生成されます。.import 命令を使用して宣言しておいてください。
② セクションサイズ ( 転送サイズ ) の抽出のため , 内容のない INIT セクションを定義
します。
214
CM71-00327-9, December 1, 2014
Support
第3部
Soft
Ma nual
ライブラリアン編
ライブラリアンの仕様 , オプション , 出力リストなどについて説明します。
第 9 章 ライブラリアンの仕様
第 10 章 ライブラリアンのオプション
第 11 章 ライブラリアンのリストフォーマット
第 12 章 ライブラリアンの制限事項および Q&A
December 1, 2014, CM71-00327-9
215
Su pp or t
216
So ft
Manu al
CM71-00327-9, December 1, 2014
Support
Soft
Ma nual
第9章
ライブラリアンの仕様
ライブラリアンの機能と各機能概要を説明します。
ライブラリファイルを作成するツールです。
9.1 ライブラリアンの機能
9.2 ライブラリアンの機能分類
9.3 ライブラリファイルの作成編集
9.4 ライブラリファイル内のモジュール抽出
9.5 ライブラリのデバッグ情報の削除
9.6 ライブラリファイルの内容チェックと表示
9.7 SOFTUNE V3/V5 言語ツールで作成されたオブジェクト
9.8 SOFTUNE V3/V5 言語ツールで作成されたライブラリ
9.9 ライブラリアンでのオブジェクト混在
December 1, 2014, CM71-00327-9
217
第 9 章 ライブラリアンの仕様
Su pp or t
9.1
So ft
Manu al
ライブラリアンの機能
ライブラリアンは , アセンブラが出力した複数のオブジェクトモジュールをまとめ
て , 1 つのライブラリファイルを作成するツールです。
■ ライブラリアンの役割
プログラムを開発する場合は , ソースプログラムを機能単位などによりモジュール分
割し , モジュールごとにコンパイル , アセンブルを行います。
コンパイルおよびアセンブルした結果は, リンカによって1つに結合し目的とするプロ
グラムを作成します。
ライブラリアンは , アセンブラが出力した複数のオブジェクトモジュールをまとめて
ライブラリファイルを作成するツールです。
プログラムを構成する複数のモジュールを , そのプログラム専用のライブラリファイ
ルに登録することにより , 一括して管理できます。
よく利用するモジュールをまとめて登録し , 汎用ライブラリファイルを作成しておけ
ば , ほかのプログラムへの流用が容易に行えます。C のライブラリは , このようにして
利用されている良い例です。
ライブラリファイルは , ライブラリアンによってモジュール単位に追加 , 削除 , 置換な
どの編集が行えるため , 各モジュールを最新の状態で保管できます。
図 9.1-1 に , ライブラリアンの役割を示します。
図 9.1-1 ライブラリアンの役割
アセンブラ
相対形式
オブジェクト
(.obj)
ライブラリアン
ライブラリ
(.lib)
リンカ
絶対形式
オブジェクト
(.abs)
218
CM71-00327-9, December 1, 2014
第 9 章 ライブラリアンの仕様
Support
9.2
Soft
Ma nual
ライブラリアンの機能分類
ライブラリアンには , 次の 6 つの機能があります。
• ライブラリファイルの新規作成
• ライブラリファイルの編集
• ライブラリファイル内のモジュール抽出
• デバッグ情報の削除
• ライブラリファイルの内容チェック
• ライブラリファイルの内容表示
■ ライブラリファイルの新規作成
オブジェクトモジュールファイルを入力ファイルとして , 新規にライブラリファイル
を作成する機能です。
■ ライブラリファイルの編集
既に作成されているライブラリファイルに , 新たにオブジェクトモジュールを追加し
たり , 不要になったオブジェクトモジュールを削除したりする機能です。
また , ライブラリファイルに登録したモジュールに障害があることが判ったり , 機能の
変更を行う場合 , 修正して差し替える必要があります。この作業は削除と追加でもでき
ますが , 置換を行う機能もあります。
■ ライブラリファイル内のモジュール抽出
ライブラリファイルに登録されているオブジェクトモジュールを抽出し , オブジェク
トモジュールファイルの形式に戻す機能です。
■ デバッグ情報の削除
デバッグ情報付のオブジェクトモジュールが登録されているとき , デバッグ情報のみ
を取り除いて登録しなおします。
■ ライブラリファイルの内容チェック
ライブラリファイルを作っているオブジェクトモジュールの集まりの中で , 外部シン
ボルの定義 / 参照関係がきちんと解決されているかを調べます。
デバッグ情報付のオブジェクトモジュールが登録されているか否かを調べます。
■ ライブラリファイルの内容表示
ライブラリファイルに登録されているモジュール名や , 外部シンボルなどの情報をリ
ストファイルまたは標準出力に出力します。
December 1, 2014, CM71-00327-9
219
第 9 章 ライブラリアンの仕様
Su pp or t
9.3
So ft
Manu al
ライブラリファイルの作成編集
アセンブラが出力した ( 複数の ) オブジェクトモジュールを 1 つにまとめ , ライブラ
リファイルとして登録できます。
また , 既に作成済のライブラリファイルに対して , モジュールの追加 , 削除 , 置換が
できます。
■ ライブラリファイルの新規作成
アセンブラが出力した ( 複数の ) オブジェクトモジュールを 1 つにまとめライブラリ
ファイルとして登録できます ( 図 9.3-1 を参照 ) 。
図 9.3-1 ライブラリファイルの新規作成
登録対象オブジェクト
モジュールファイル
新規ライブラリ
ファイル
モジュールA
モジュールA
作成
モジュールB
モジュールB
モジュールC
モジュールC
■ ライブラリファイルの編集
すでに作成済のライブラリファイルに対して , モジュールの追加 , 削除 , 置換ができま
す。
● モジュールの追加
既存のライブラリファイルにモジュールを追加します ( 図 9.3-2 を参照 ) 。
図 9.3-2 モジュールの追加
編集後のライブラリ
ファイル
既存ライブラリ
ファイル
モジュールD
モジュールA
モジュールA
追加
更新
+
モジュールB
モジュールB
モジュールC
モジュールC
モジュールD
220
CM71-00327-9, December 1, 2014
第 9 章 ライブラリアンの仕様
Support
Soft
Ma nual
● モジュールの削除
既存のライブラリファイルから不要になったモジュールを削除します ( 図 9.3-3 を参
照)。
図 9.3-3 モジュールの削除
既存ライブラリ
ファイル
編集後のライブラリ
ファイル
モジュールA
モジュールA
更新
モジュールB
モジュールB
モジュールC
モジュールD
削除
モジュールD
● モジュールの置換
既存のライブラリファイル内のモジュールを , 新しいモジュールと置き換えます ( 図
9.3-4 を参照 ) 。
図 9.3-4 モジュールの置換
既存ライブラリ
ファイル
編集後のライブラリ
ファイル
置換
モジュールA
モジュールA
モジュールB
モジュールB
モジュールC
December 1, 2014, CM71-00327-9
更新
モジュールB
モジュールC
221
第 9 章 ライブラリアンの仕様
Su pp or t
9.4
So ft
Manu al
ライブラリファイル内のモジュール抽出
ライブラリファイルからモジュールを抽出し , オブジェクトモジュール形式ファイ
ルに戻します。
■ ライブラリファイル内のモジュール抽出
ライブラリファイルからモジュールを抽出し , オブジェクトモジュール形式ファイル
に戻します ( 図 9.4-1 を参照 ) 。
図 9.4-1 モジュールの抽出
既存ライブラリ
ファイル
オブジェクト
ファイル
モジュールA
モジュールB
B.obj
抽出
モジュールB
モジュールC
222
CM71-00327-9, December 1, 2014
第 9 章 ライブラリアンの仕様
Support
9.5
Soft
Ma nual
ライブラリのデバッグ情報の削除
ライブラリに登録されているオブジェクトモジュールにデバッグ情報ブロック付き
のものがある場合 , デバッグ情報部を取り除いて登録しなおします。
■ デバッグ情報の削除
ライブラリに登録されているオブジェクトモジュールにデバッグ情報ブロック付きの
ものがある場合 , デバッグ情報部を取り除いて登録しなおします ( 図 9.5-1 を参照 ) 。
図 9.5-1 デバッグ情報の削除
LHD
LHD
LMD1
LMD1
LMD2
LMD2
LMD3
LMD3
LED1
LED1
LED2
LED2
LED3
LED3
OM1
OM1
OM1デバッグ情報
OM2
OM2
OM3
OM3
LTR
OM3デバッグ情報
LTR
December 1, 2014, CM71-00327-9
デバッグ情報付きで登録されたOM1とOM3
からデバッグ情報部を取り除く。
223
第 9 章 ライブラリアンの仕様
Su pp or t
9.6
So ft
Manu al
ライブラリファイルの内容チェックと表示
次の 2 項目のチェックをします。
• ライブラリ内未解決外部参照シンボルの有無
• デバッグ情報付きモジュールの有無
また , ライブラリファイルの作成 / 更新日時 , モジュールの登録日時 , および各モ
ジュールで定義されている外部定義シンボルの名前などの情報を知ることができま
す。
■ ライブラリファイルの内容チェック
次の 2 項目のチェックをします。
● ライブラリ内未解決外部参照シンボルの有無
リンカでは , ライブラリから取り込んだモジュールに外部参照シンボルが含まれてい
た場合 , まず始めに同じライブラリファイル中で定義シンボルを探します。
したがって , 1 つのライブラリファイル中では , あるモジュール中に外部参照シンボル
がある場合 , 該当する外部定義シンボルを含むモジュールが同じライブラリファイル
内に必ず登録されていることが推奨されます。
1 つのライブラリファイル中での , 外部参照・定義シンボルの対応関係を調べ , 定義の
ない参照シンボルが残っている場合に , 診断メッセージを出力します。
● デバッグ情報付モジュールの有無
デバッグ情報付のオブジェクトモジュールが含まれている場合に , 診断メッセージを
出力します。
-g オプション指定でのライブラリファイルへのモジュール登録処理では , オブジェク
トモジュール中にデバッグ情報が含まれていても , 取り除くことなくそのままライブ
ラリに登録します。
これは , ライブラリに登録したモジュールのデバッグを行うことを考慮したためです
が , 動作確認が済めばデバッグ情報は必要がなくなります。
■ ライブラリファイルの内容表示
ライブラリファイルのモジュール情報および外部定義シンボル情報などを , リスト
ファイルまたは標準出力へ編集出力します。
このリストにより , ライブラリファイルの作成 / 更新日時 , モジュールの登録日時 , お
よび各モジュールで定義されている外部定義シンボルの名前などの情報を知ることが
できます。
表示内容については ,「第 11 章 ライブラリアンのリストフォーマット」で説明します。
224
CM71-00327-9, December 1, 2014
第 9 章 ライブラリアンの仕様
Support
9.7
Soft
Ma nual
SOFTUNE V3/V5 言語ツールで作成されたオブジェクト
ライブラリアンは , SOFTUNE V3 または V5 言語ツールで作成されたオブジェクト
も入力可能です。
■ SOFTUNE V3/V5 言語ツールで作成されたオブジェクト
ライブラリアン (flibs) は , SOFTUNE V3 または V5 用言語ツールで作成されたオブジェ
クトもライブラリ内に混在させることが可能です。
SOFTUNE V3 または V5 用言語ツールで作成されたオブジェクトの処理を行った場合
に , ライブラリアンは , インフォメーションを出力します。
December 1, 2014, CM71-00327-9
225
第 9 章 ライブラリアンの仕様
Su pp or t
9.8
So ft
Manu al
SOFTUNE V3/V5 言語ツールで作成されたライブラリ
ライブラリアンは , SOFTUNE V3 または V5 言語ツールで作成されたライブラリの
編集を行うことができます。
■ SOFTUNE V3/V5 言語ツールで作成されたライブラリ
ライブラリアンは, SOFTUNE V3 または V5用言語ツールで作成されたライブラリの編
集を行うことができます。
SOFTUNE V3 または V5 用言語ツールで作成されたライブラリの編集を行った場合に ,
ライブラリアンは , インフォメーションを出力します。
さらに , 自動的に編集前のライブラリファイルの拡張子を .bak に変更したバックアッ
プファイルを作成します。
226
CM71-00327-9, December 1, 2014
第 9 章 ライブラリアンの仕様
Support
9.9
Soft
Ma nual
ライブラリアンでのオブジェクト混在
ライブラリアン (flibs) は , オブジェクトと -cpu で指定したターゲット CPU に互換
性があるかチェックします。
ターゲット CPU と互換性のあるオブジェクトは混在が可能です。
オブジェクトがターゲット CPU と互換性がない場合 , ライブラリアンはエラーを出
力します。
■ ライブラリ編集時に指定される -cpu オプションと混在可能な CPU の関係
表 9.9-1 に ,-cpu オプションと混在可能なオブジェクトを示します。
表 9.9-1 -cpu オプションと混在可能な CPU 一覧
ライブラリ編集時
の -cpu オプション
指定
オブジェクト作成時の -cpu オプション指定
FPU なし FPU 付き 全 FR 共通
FR81 共通
FR81
FR81 オブジェクト オブジェクト
FR
FR80
FR
◎
×
×
×
○
×
FR80
◇
◎
×
×
○
×
FPU なしの FR81
◇
△
◎
×
○
○
FPU 付き FR81
◇
◇
◇
◎
○
○
◎ : 同一ターゲットです。混在ではありません。
○ : 共通オブジェクトのため , 混在可能です。
△ : 下位 CPU 用のオブジェクトのため , 混在可能です。
ライブラリアンはインフォメーションを出力します。
◇ : ライブラリ編集時に警告が出力されます。オブジェクトの混在は可能です。
-omcl オプションで , エラー出力または混在許可 ( メッセージ出力なし ) に設定す
ることも可能です。
- o m c l オ プ シ ョ ン の 詳 細 は , 「10.2.18 オブジェクト混在チェックレベル指定
(-omcl)」を参照してください。
× : 混在できません。
ライブラリアンはエラーを出力します。
December 1, 2014, CM71-00327-9
227
第 9 章 ライブラリアンの仕様
Su pp or t
So ft
Manu al
■ 下位 CPU 用オブジェクトの混在
ライブラリアン (flibs) では ,-cpu オプションで指定したターゲット CPU と互換性があ
る場合 , 下位 CPU 用のオブジェクトを混在できます。
このとき , ライブラリアンは , インフォメーションを出力します。
■ FR 用オブジェクトと FR80,FR81 用オブジェクトの混在
ライブラリアン (flibs) は , ターゲット CPU が FR80 または FR81 の場合 ,FR 用オブジェ
クトが混在すると警告を出力します。
警告は , オブジェクト混在チェックレベル指定オプション (-omcl) でエラー , または混
在許可 ( メッセージ出力なし ) に変更できます。
-omcl オプションの詳細は 「
, 10.2.18 オブジェクト混在チェックレベル指定 (-omcl)」を
参照してください。
<注意事項>
以下の命令は ,FR 専用の命令のため , ターゲット CPU が FR80 または FR81 の時には使
用できません。
LDRES @Ri+,#u4
STRES #u4,@Ri
COPOP #u4,#CC,CRj,CRi
COPLD #u4,#CC,Rj,CRi
COPST #u4,#CC,CRj,Ri
COPSV #u4,#CC,CRj,Ri
■ FPU付きFR81用オブジェクトとFPUなしのFR81,FR80,FR用オブジェクトの混在
ライブラリアン (flibs) は , ターゲット CPU が FPU 付き FR81 の場合 , FPU なしの
FR81,FR80,FR 用オブジェクトが混在すると警告を出力します。
警告は , オブジェクト混在チェックレベル指定オプション (-omcl) でエラー , または混
在許可 ( メッセージ出力なし ) に変更できます。
-omcl オプションの詳細は 「
, 10.2.18 オブジェクト混在チェックレベル指定 (-omcl)」を
参照してください。
228
CM71-00327-9, December 1, 2014
第 9 章 ライブラリアンの仕様
Support
Soft
Ma nual
■ 全 FR 共通オブジェクト
全 FR 共通オブジェクトは , 表 9.9-2 に示す命令がないオブジェクトです。
FR ファミリの全てのターゲット CPU で使用することができます。
共通オブジェクト作成方法の詳細は ,『FR ファミリ SOFTUNE アセンブラマニュアル
V6 対応』を参照してください。
表 9.9-2 全 FR 共通オブジェクトで使用できない命令
COPLD #u4,#CC,Rj,CRi
FLD @R15+, FRi
FSUBS FRk,FRj,FRi
COPOP #u4,#CC,CRj,CRi
FLD @Ri, FRi
LCALL label21
COPST #u4,#CC,CRj,Ri
FLDM (frlist)
LCALL:D label21
COPSV #u4,#CC,CRj,Ri
FMADDS FRk,FRj,FRi
LD @(BP,udisp18), Ri
FABSS FRj,FRi
FMOVS FRj,FRi
LDRES @Ri+,#u4
FADDS FRk,FRj,FRi
FMSUBS FRk,FRj,FRi
LDUB @(BP,udisp16), Ri
FBA label17
FMULS FRk,FRj,FRi
LDUH @(BP,udisp17), Ri
FBA:D label17
FNEGS FRj,FRi
MOV FRi, Ri
FBcc label17
FSQRTS FRj,FRi
MOV Ri, FRi
FBcc:D label17
FST FRi, @(BP,udisp18)
SRCH0 Ri
FCMPS FRk,FRj
FST FRi, @(R13,Ri)
SRCH1 Ri
FDIVS FRk,FRj,FRi
FST FRi, @(R14,disp16)
SRCHC Ri
FITOS FRj,FRi
FST FRi, @(R15,udisp16)
ST Ri, @(BP,udisp18)
FLD @(BP,udisp18), FRi
FST FRi, @-R15
STB Ri, @(BP,udisp16)
FLD @(R13,Ri), FRi
FST FRi, @Ri
STH Ri, @(BP,udisp17)
FLD @(R14,disp16), FRi
FSTM (frlist)
STRES #u4,@Ri
FLD @(R15,udisp16), FRi
FSTOI FRj,FRi
December 1, 2014, CM71-00327-9
229
第 9 章 ライブラリアンの仕様
Su pp or t
So ft
Manu al
■ FR81 共通オブジェクト
FR81 共通オブジェクトは , 表 9.9-3 に示す命令がないオブジェクトです。
ターゲット CPU が FPU なしの FR81 と FPU 付きの FR81 のどちらの場合でも使用する
ことができます。
FR81 共通オブジェクト作成方法の詳細は ,『FR ファミリ SOFTUNE アセンブラマニュ
アル V6 対応』を参照してください。
表 9.9-3 FR81 共通オブジェクトで使用できない命令
COPLD #u4,#CC,Rj,CRi
FLD @(R14,disp16), FRi
FST FRi, @(R13,Ri)
COPOP #u4,#CC,CRj,CRi
FLD @(R15,udisp16), FRi
FST FRi, @(R14,disp16)
COPST #u4,#CC,CRj,Ri
FLD @R15+, FRi
FST FRi, @(R15,udisp16)
COPSV #u4,#CC,CRj,Ri
FLD @Ri, FRi
FST FRi, @-R15
FABSS FRj,FRi
FLDM (frlist)
FST FRi, @Ri
FADDS FRk,FRj,FRi
FMADDS FRk,FRj,FRi
FSTM (frlist)
FBcc label17
FMOVS FRj,FRi
FSTOI FRj,FRi
FBcc:D label17
FMSUBS FRk,FRj,FRi
FSUBS FRk,FRj,FRi
FCMPS FRk,FRj
FMULS FRk,FRj,FRi
LDRES @Ri+,#u4
FDIVS FRk,FRj,FRi
FNEGS FRj,FRi
MOV FRi, Ri
FITOS FRj,FRi
FSQRTS FRj,FRi
MOV Ri, FRi
FLD @(BP,udisp18), FRi
FST FRi, @(BP,udisp18)
STRES #u4,@Ri
FLD @(R13,Ri), FRi
230
CM71-00327-9, December 1, 2014
Support
Soft
Ma nual
第 10 章
ライブラリアンのオプション
この章では , ライブラリアンの各オプションの形式 ,
パラメータ , 注意事項などについて説明します。
10.1 ライブラリアンのオプション一覧
10.2 ライブラリアンのオプション詳細
December 1, 2014, CM71-00327-9
231
第 10 章 ライブラリアンのオプション
Su pp or t
10.1
So ft
Manu al
ライブラリアンのオプション一覧
ライブラリアンの動作を細かく指示するために , オプションがあります。
■ オプション一覧
オプション名と機能概要を , 表 10.1-1 に示します。
オプションに必要なパラメータや機能の詳細は , 各オプションの説明を参照してくだ
さい。
表 10.1-1 ライブラリアンのオプション一覧
機能
ライブラリ
の作成 , 編集
に関するオ
プション
出力リスト
に関するオ
プション
ファイル検
索 , 保護に関
す る オ プ
ション
その他のオ
プション
共 通 オ プ
ション
232
オプション
備考
モジュールの追加 ( 登録 )
-a
モジュールの置換 ( 登録 )
-r
モジュールの削除
-d
モジュールの抽出
-x
リストファイルの出力指定
-m
リストファイルの出力抑止指定
-Xm
デフォルト
リストファイルの詳細情報の出力指定
-dt
s, d, r, a
リスト 1 ページの行数指定
-pl
デフォルト 60
リスト 1 行の桁数指定
-pw
デフォルト 80
バックアップファイルの作成
-b
バックアップファイルの作成抑止
-Xb
ライブラリファイルの内容検査
-c
ファイル内容の最適化
-O
デバッグ情報の未削除指定
-g
デバッグ情報の削除指定
-Xg
ターゲット CPU 指定
-cpu
CPU 情報ファイル指定
-cif
オブジェクト混在チェックレベル指定
-omcl
デフォルトオプションファイル読み込み抑止指定
-Xdof
オプションファイル読み込み指定
-f
ヘルプメッセージ表示指定
-help
版数 / メッセージ出力指定
-V
版数 / メッセージ出力抑止指定
-XV
終了メッセージ出力指定
-cmsg
終了メッセージ出力抑止指定
-Xcmsg
ワーニング発生時の終了コードを 1 にする指定
-cwno
ワーニング発生時の終了コードを 0 にする指定
-Xcwno
デフォルト
必須
デフォルト 1
デフォルト
デフォルト
デフォルト
CM71-00327-9, December 1, 2014
第 10 章 ライブラリアンのオプション
Support
10.2
Soft
Ma nual
ライブラリアンのオプション詳細
ここでは , ライブラリアンの各オプションについて説明します。
なお , リンケージキットで共通のオプションは , 「第 3 章 共通オプション」で説明
しています。
■ ライブラリの作成 , 編集に関するオプション
ライブラリの作成 , 編集に関するオプションの詳細を「10.2.1 モジュールの追加 ( 登
録 ) (-a) 」~「10.2.4 モジュールの抽出 (-x) 」で説明します。
■ 出力リストに関するオプション
出力リストに関するオプションの詳細を「10.2.5 リストファイルの出力指定 (-m) 」~
「10.2.9 リスト 1 行の桁数指定 (-pw) 」で説明します。
■ ファイル検索 , 保護に関するオプション
ファイル検索 , 保護に関するオプションの詳細を「10.2.10 バックアップファイルの作
成 (-b) 」~「10.2.13 ファイル内容の最適化 (-O) 」で説明します。
■ その他のオプション
その他のオプションの詳細を「10.2.14 デバッグ情報の未削除指定 (-g) 」~「10.2.17
ターゲット CPU 指定 (-cpu) 」で説明します。
December 1, 2014, CM71-00327-9
233
第 10 章 ライブラリアンのオプション
Su pp or t
So ft
Manu al
モジュールの追加 ( 登録 ) (-a)
10.2.1
ライブラリファイルを新規に作成する場合 , 既にあるライブラリファイルにモ
ジュールの追加を行う場合には -a オプションを使用します。
■ モジュールの追加 ( 登録 ) (-a)
【記述形式】
-a
<オブジェクトモジュールファイル名> [, … ]
【パラメータ】
<オブジェクトモジュールファイル名>
アセンブラが出力したオブジェクトモジュールファイル名
【説明】
ライブラリファイルへ登録するモジュールを内容とするファイル名を指定します。
ファイル名に拡張子の指定がないときは , ".obj" を拡張子とします。
登録しようとするモジュールと同じ名前のモジュールが既に登録されている場合 , エ
ラーメッセージを出力しモジュールの登録処理は行いません。
同名の外部定義シンボルがある場合も同様に登録処理は行いません。
<オブジェクトモジュールファイル名>の指定には , ワイルドカードが使用できます。
【例 1】
flibs syslib.lib -a mod1.obj,mod2.obj,modx.obj
オブジェクトモジュールファイル mod1.obj, mod2.obj, modx.obj をライブラリファイル
syslib.lib に登録します。
• syslib.lib がないとき : 新規作成
• syslib.lib があるとき : 追加登録
【例 2】
flibs syslib -a mod*.obj -a chksw
カレントディレクトリ中の拡張子 .obj のオブジェクトモジュールファイルの内先頭 3
文字が mod であるものと , chksw.obj を登録します。
<注意事項>
ワイルドカードを使用する場合は , <オブジェクトモジュールファイル名>をカンマで区
切って指定できません。上述の例のように複数の -a オプションに分けて指定してくださ
い。
ワイルドカード指定時は拡張子の補完は行いませんので , 必ず拡張子まで指定してくださ
い。
ファイル名のワイルドカードの展開は , OS に依存しますので , 「付録 G OS による仕様
の相違点」を参考にしてください。
234
CM71-00327-9, December 1, 2014
第 10 章 ライブラリアンのオプション
Support
Soft
Ma nual
モジュールの置換 ( 登録 ) (-r)
10.2.2
既に作成しているライブラリファイル中のモジュールを新しい同名のモジュールと
置き換えます。
■ モジュールの置換 ( 登録 ) (-r)
【記述形式】
-r
<オブジェクトモジュールファイル名> [, … ]
【パラメータ】
<オブジェクトモジュールファイル名>
アセンブラが出力したオブジェクトモジュールファイル名
【説明】
指定したファイル内のモジュールと同名のモジュールが編集中のライブラリファイル
に存在する場合はモジュールの置換を行い , 存在しない場合には指定モジュールを登
録します。
ファイル名に拡張子の指定がないときは ".obj" が拡張子となります。
<オブジェクトモジュールファイル名>の指定には , ワイルドカードが使用できます。
【例 1】
flibs syslib.lib -r loadx.obj,loady.obj
loadx.obj および loady.obj 内の 2 つのモジュールを , 編集中のライブラリファイル内の
同名モジュールと置換えます。
ライブラリファイル中に同名モジュールがない場合には , 追加登録されます。
【例 2】
flibs syslib.lib -r load?.obj
カレントディレクトリ中の拡張子 .obj のオブジェクトモジュールファイルのうち先頭
4 文字が load であり , その後ろに任意の 1 文字が付くファイル内のモジュールを置換え
の対象とします。
<注意事項>
ワイルドカードを使用する場合は , < オブジェクトモジュールファイル名 > をカンマで区
切って指定できません。複数の -r オプションに分けて指定してください。
ワイルドカード指定時は拡張子の補完は行いませんので , 必ず拡張子まで指定してくださ
い。
ファイル名のワイルドカードの展開は , OS に依存しますので , 「付録 G OS による仕様
の相違点」を参考にしてください。
December 1, 2014, CM71-00327-9
235
第 10 章 ライブラリアンのオプション
Su pp or t
So ft
Manu al
モジュールの削除 (-d)
10.2.3
ライブラリファイルから不要になったモジュールを取り除きます。
■ モジュールの削除 (-d)
【記述形式】
-d
<モジュール名>
[, … ]
【パラメータ】
<モジュール名>
削除するモジュール名
【説明】
指定したモジュールをライブラリファイルから削除します。
ここでの指定は , ファイル名ではなくモジュール名ですので注意してください。
【例】
flibs syslib.lib -d inchar,outchar
syslib.lib から , 2 つのモジュール inchar と outchar を削除します。
<注意事項>
アセンブラの疑似命令でモジュール名の指定ができますが , 特別な理由がない限りオブ
ジェクトモジュールファイル名とモジュール名は同じにしてください。異なる名前にする
と , ライブラリの編集作業においては誤りの原因になります。
ファイル名とモジュール名を同じにするためには , 英数字とアンダバーだけを使用した
ファイル名を用います。
モジュール名を確認したい場合は , リスト出力オプション (-m) を使用してリストファイ
ルの先頭部分に出力されるモジュール名を参照してください。
236
CM71-00327-9, December 1, 2014
第 10 章 ライブラリアンのオプション
Support
Soft
Ma nual
モジュールの抽出 (-x)
10.2.4
ライブラリファイルからモジュールを抽出し , 登録前のオブジェクトモジュール
ファイルに戻します。
■ モジュールの抽出 (-x)
【記述形式】
-x
<モジュール名> [, <オブジェクトモジュールファイル名> ]
【パラメータ】
<モジュール名 >
抽出するモジュール名
<オブジェクトモジュールファイル名>
抽出モジュールの出力ファイル名
【説明】
指定したモジュールをライブラリファイルから抽出します。
抽出したモジュールは , 登録前と同じ形式のオブジェクトモジュールファイルになり
ます。
<オブジェクトモジュールファイル名>の指定を省略すると , <モジュール名>に拡
張子 ".obj" を付けた名前でファイルを作ります。
【例】
flibs syslib -x add
flibs syslib.lib -x add,add.obj
既存ライブラリファイルから , モジュール add を抽出し add.obj ファイルを作成します。
flibs syslib -x add,add.o
既存ライブラリファイルから , モジュール add を抽出し add.o ファイルを作成します。
<注意事項>
-x オプションは , 抽出したいモジュールの数だけ指定できます。
同じモジュール名が指定された場合は , 後に指定した方が有効になります。以下の例では ,
add.obj は作成されず , addfunc.obj のみ作成されます。
flibs syslib -x add -x add,addfunc.obj
SOFTUNE V3 用言語ツールで作成されたモジュールは , 従来のオブジェクト形式で取り
出されます。
December 1, 2014, CM71-00327-9
237
第 10 章 ライブラリアンのオプション
Su pp or t
10.2.5
So ft
Manu al
リストファイルの出力指定 (-m)
ライブラリファイルに登録されているモジュール名や外部定義シンボル名などの情
報リスト出力を行います。
■ リストファイルの出力指定 (-m)
【記述形式】
-m
{ <リストファイル名>| - }
【パラメータ】
<リストファイル名>
出力するライブラリアンリストのファイル名を指定。リストを標準出力に出力する場
合にはハイフン (-) を指定。
【説明】
ライブラリファイルに登録されているモジュール名や外部定義シンボル名などの情報
リスト出力を行います。
<リストファイル名>に拡張子指定がない場合 , ".mp2" を付加します。
このオプションにより出力される情報は登録されているモジュール名だけですが , 後
述の -dt オプションで , より詳しい情報を表示させることができます。
リスト内容は , ライブラリアンの処理終了時の状態を示します。
ほかに編集作業に関するオプションがない場合には , 指定したライブラリファイルの
内容がリストされます。
ライブラリファイルの内容をリストに残さずに画面上で確認したい場合には , パラ
メータにハイフンを指定します。
【例 1】
flibs syslib.lib -m libx.mp2
syslib.lib に登録されているモジュール名リストを libx.mp2 に出力します。
【例 2】
flibs syslib -a obj1,obj2 -m libx.lis
obj1.obj と obj2.obj のモジュールを追加した結果作成された syslib.lib の内容を libx.lis に
出力します。
【例 3】
flibs syslib -m syslib.lib に登録されているモジュール名リストを標準出力に出力します。
238
CM71-00327-9, December 1, 2014
第 10 章 ライブラリアンのオプション
Support
10.2.6
Soft
Ma nual
リストファイルの出力抑止指定 (-Xm)
ライブラリアンにリストファイルを出力しないことを指示します。
■ リストファイルの出力抑止指定 (-Xm)
【記述形式】
-Xm
【パラメータ】
なし
【説明】
リストファイルの出力の抑止を行います。
-m オプションの後に -Xm オプションを指定すると , -m オプションを無効にすること
ができます。
【例】
flibs syslib.lib -m libx.mp2 -Xm
リストファイルの作成は行わないようにします。
December 1, 2014, CM71-00327-9
239
第 10 章 ライブラリアンのオプション
Su pp or t
10.2.7
So ft
Manu al
リストファイルの詳細情報の出力指定 (-dt)
-m オプションでリスト出力を行いますが , 登録モジュール名の一覧を表示するだけ
です。
ライブラリに登録されている個々のモジュールごとにセクションや外部シンボルの
情報を得たいとき , あるいはライブラリ全体の外部定義 / 外部参照シンボル情報を得
たいときは , -dt オプションを使用します。
■ リストファイルの詳細情報の出力指定 (-dt)
【記述形式】
-dt <情報種別>
[, <情報種別> ] •••
【パラメータ】
<情報種別>
s : モジュールごとにセクション名とそのサイズを出力します。
d : モジュールごとに外部定義シンボルを出力します。
r : モジュールごとに外部参照シンボルを出力します。
a : ライブラリ全体の外部定義シンボルと , ライブラリ内で未解決の外部参照シンボル
を出力します。
【説明】
このオプション指定がないとき , リストファイルには登録されているモジュール名だ
けが出力されます。このオプションは , さらに詳しい情報を得たいときに使用します。
<情報種別>の指定は省略できません。
<情報種別>指定は , 複数のキーワードをカンマで区切って指定できます。
-m オプションが指定されていない場合 , 本オプション指定は無効になります。
【例 1】
flibs syslib.lib -m libx.mp2 -dt r,s
外部参照シンボルおよびセクション名を含むリストを libx.mp2 に出力します。
【例 2】
flibs syslib -m libx.lis -dt s,d,r,a
ライブラリアンが出力可能なすべての情報を libx.lis に出力します。
240
CM71-00327-9, December 1, 2014
第 10 章 ライブラリアンのオプション
Support
10.2.8
Soft
Ma nual
リスト 1 ページの行数指定 (-pl)
リスト 1 ページの出力行数をデフォルト (60 行 ) から変更するときに使用します。
■ リスト 1 ページの行数指定 (-pl)
【記述形式】
<行数>
-pl
( デフォルト : 60)
【パラメータ】
<行数>
0, 20 ~ 255 の範囲で指定する。
【説明】
リストファイルの 1 ページに印字する行数を指定します。
0 指定は , リストファイル出力時 , ページ制御を行わないようにします。
-m オプションが指定されていない場合 , 本オプション指定は無効になります。
【例 1】
flibs syslib.lib -m libx.mp2 -pl 40
リスト 1 ページの行数を , 40 にします。
【例 2】
flibs syslib.lib -m - -dt s -pl 0
改ページなしで , セクション情報を付加したリストを標準出力に出力します。
December 1, 2014, CM71-00327-9
241
第 10 章 ライブラリアンのオプション
Su pp or t
So ft
Manu al
リスト 1 行の桁数指定 (-pw)
10.2.9
リスト 1 行の出力桁数をデフォルト (80 文字 ) から変更するときに使用します。
■ リスト 1 行の桁数指定 (-pw)
【記述形式】
<桁数>
-pw
( デフォルト : 80)
【パラメータ】
<桁数>
80 ~ 1023 の範囲で指定する。
【説明】
リストファイルの 1 行に印字する桁数を指定します。
長いシンボル名 , セクション名 , モジュール名がデフォルト桁数では 2 行以上になって
見にくい場合に使用してください。
デフォルト表示桁数 (80) のとき , 1 行内で表示できる文字数は以下のとおりです。
• モジュール名 : 21 文字
• セクション名 : 19 文字
• シンボル名
: 34 文字
-m オプションが指定されていない場合 , 本オプション指定は無効になります。
【例】
flibs syslib.lib -m libx.mp2 -pw 90
リスト 1 行の桁数を , 90 に変更します。
この場合 , 1 行内で表示できる各名称の文字数は以下のようになります。
• モジュール名 : 31 文字
• セクション名 : 29 文字
• シンボル名
: 39 文字
<注意事項>
ライブラリアンのリストは , -pw オプションでの桁数指定により , 1 行内で表示するモ
ジュール名 , セクション名 , シンボル名の文字数が変わります。
シンボル名は , 1 行を左右 2 つのフィールドに分けて表示しますので , 最も長いシンボル
名の 2 倍+ 12 が見やすいリストになります。
242
CM71-00327-9, December 1, 2014
第 10 章 ライブラリアンのオプション
Support
Soft
Ma nual
バックアップファイルの作成 (-b)
10.2.10
ライブラリファイルの編集処理を行うと , ライブラリファイルの内容が変更されま
す。
編集前のライブラリファイルのバックアップを残したい場合に -b オプションを指定
します。
■ バックアップファイルの作成 (-b)
【記述形式】
-b
【パラメータ】
なし
【説明】
ライブラリアンは , モジュールの追加や削除など編集作業を行うと , ファイル内容が変
更されますので元の内容は失われます。
このオプションにより , 元のファイルのバックアップファイルを作成します。
バックアップファイルの拡張子は , ".bak" になります。
バックアップは1世代分しか行いませんので, 大事なライブラリファイルを編集する場
合は , ユーザ自身でバックアップをとってからライブラリアンを使用してください。
【例】
flibs syslib -a putc.obj -b
編集前の syslib.lib を編集後 syslib.bak として残します。
編集後の syslib.lib は , putc.obj と getc.obj が追加されます。
<注意事項>
入力ライブラリが SOFTUNE V3 ツールで作成されたファイルの場合 , バックアップされ
るファイルも SOFTUNE V3 用ファイルのまま , ".bak" ファイルとして保存されます。
また , 入力ライブラリが SOFTUNE V5 ツールで作成されたファイルの場合 , バックアッ
プされるファイルも SOFTUNE V5 用ファイルのまま , ".bak" ファイルとして保存されま
す。
December 1, 2014, CM71-00327-9
243
第 10 章 ライブラリアンのオプション
Su pp or t
10.2.11
So ft
Manu al
バックアップファイルの作成抑止 (-Xb)
バックアップ取得オプションである -b を取り消すときに -Xb オプションを使用しま
す。
■ バックアップファイルの作成抑止 (-Xb)
【記述形式】
( デフォルト )
-Xb
【パラメータ】
なし
【説明】
ライブラリアンは , デフォルト設定で編集対象のライブラリファイルのバックアップ
は作成しません。これは , -Xb オプションを指定したのと同じです。
このオプションは , -b オプションの指定を無効にする場合に指定します。
【例】
次の 3 つの指定は , すべて同じ処理を行います。
flibs syslib
-a putc.obj,getc.obj
flibs syslib
-a putc.obj,getc.obj -Xb
flibs syslib -b -a putc.obj,getc.obj -Xb
編集前の syslib.lib は , 編集後削除されます。
編集後の syslib.lib には , putc.obj と getc.obj が付加されています。
244
CM71-00327-9, December 1, 2014
第 10 章 ライブラリアンのオプション
Support
Soft
Ma nual
ライブラリファイルの内容検査 (-c)
10.2.12
ライブラリファイルの内容の簡単な検査を行うオプションです。
■ ライブラリファイルの内容検査 (-c)
【記述形式】
-c
【パラメータ】
なし
【説明】
次の 2 項目の検査を行います。
● ライブラリ内未解決外部参照シンボルの有無
リンカは , ライブラリ内に未解決の外部参照シンボルが含まれる場合 , 同じライブラリ
内に含まれる定義シンボルモジュールのリンクを優先します。
1 つのライブラリファイル中での , 外部参照 / 定義シンボルの対応関係を調べ , 該当す
る外部定義シンボルのない外部参照シンボルが含まれる場合に , メッセージを出力し
ます。
● デバッグ情報付モジュールの有無
-g オプションを指定したライブラリファイルへのモジュール登録処理では , オブジェ
クトモジュール中のデバッグ情報を取り除くことなくそのままライブラリに登録しま
す。
これは , ライブラリに登録したモジュールのデバッグを行うことを考慮したためです。
動作確認が済めばデバッグ情報は必要がなくなります。
ライブラリ中にデバッグ情報付のモジュールが登録されているか否かを調べ , もしあ
ればメッセージを出力します。
【例】
flibs syslib.lib -c
syslib.lib の内容をチェックします。
<注意事項>
ライブラリファイルの内容検査 (-c) オプションは, ほかのオプションと共に指定すること
はできません。
上記の指定例のように , 単独で指定してください。
December 1, 2014, CM71-00327-9
245
第 10 章 ライブラリアンのオプション
Su pp or t
So ft
Manu al
ファイル内容の最適化 (-O)
10.2.13
ライブラリに登録されているオブジェクトモジュールにデバッグ情報があれば取り
除きます。
■ ファイル内容の最適化 (-O)
【記述形式】
-O
【パラメータ】
なし
【説明】
ライブラリに登録されているオブジェクトモジュールにデバッグ情報ブロック付のも
のがある場合 , デバッグ情報部を取り除いて登録しなおします。
オブジェクトモジュールファイル中では , デバッグ情報がかなり大きな部分を占めて
いますので , デバッグ情報を削除することでライブラリファイルのサイズをかなり小
さくすることができます。
【例】
flibs syslib -O
syslib.lib ファイルから , デバッグ情報を削除します。
<注意事項>
ファイル内容の最適化 (-O) オプションは , 他のオプションと共に指定できません。
上記の指定例のように , 単独で指定してください。
246
CM71-00327-9, December 1, 2014
第 10 章 ライブラリアンのオプション
Support
10.2.14
Soft
Ma nual
デバッグ情報の未削除指定 (-g)
ライブラリファイルにオブジェクトモジュールを登録するときに , デバッグ情報を
削除しないようにするときに指定します。
■ デバッグ情報の未削除指定 (-g)
【記述形式】
-g
【パラメータ】
なし
【説明】
ライブラリアンは , 通常 , デバッグ情報を取り去ってライブラリファイルに登録しま
す。
本オプションが指定された場合には , デバッグ情報の削除は行わず , そのままライブラ
リファイルに登録します。
ライブラリ作成後にデバッグ情報を削除したい場合には , 最適化オプション -O を使用
してライブラリファイルを作り直すことができます。
【例】
flibs syslib.lib -a inchar,outchar -g
inchar.obj,outchar.obj に , デバッグ情報が含まれていても削除せずにライブラリファイ
ルに登録します。
December 1, 2014, CM71-00327-9
247
第 10 章 ライブラリアンのオプション
Su pp or t
10.2.15
So ft
Manu al
デバッグ情報の削除指定 (-Xg)
デバッグ情報の未削除指定オプションである -g を取り消すときに -Xg オプションを
使用します。
■ デバッグ情報の削除指定 (-Xg)
【記述形式】
( デフォルト )
-Xg
【パラメータ】
なし
【説明】
ライブラリアンは , 通常オブジェクトモジュールにデバッグ情報が含まれている場合 ,
デバッグ情報を取り去ってライブラリファイルに登録します。これは , この -Xg オプ
ションを指定したのと同じです。
オプションは , -g オプションの指定を打ち消すために指定します。
最適化オプション -O を使用すれば , ライブラリ作成後にデバッグ情報を一括して削除
できます。
【例】
次の 3 つの指定は , すべて同じ処理を行います。
flibs syslib.lib
-a inchar,outchar
flibs syslib.lib
-a inchar,outchar -Xg
flibs syslib.lib -g -a inchar,outchar -Xg
inchar.obj,outchar.obj に含まれているデバッグ情報は , ライブラリファイルに登録しま
せん。
248
CM71-00327-9, December 1, 2014
第 10 章 ライブラリアンのオプション
Support
Soft
Ma nual
CPU 情報ファイル指定 (-cif)
10.2.16
ライブラリで使用する CPU 情報ファイルを指定します。
■ CPU 情報ファイル指定 (-cif)
【記述形式】
-cif
< CPU 情報ファイル名>
【パラメータ】
< CPU 情報ファイル名>
ライブラリで使用する CPU 情報ファイル
【説明】
ライブラリで使用する CPU 情報ファイルを指定します。
【例】
flibs syslib.lib -a inchar,outchar -cpu MB91100A
-cif C:\Softune6\lib\911\cpu_info\MB91100A.csv
flibs syslib.lib -a inchar,outchar -cpu MB91130
-cif C:\Softune6\lib\911\911.csv
<注意事項>
SOFTUNE Tools は , CPU 情報ファイルを参照して , CPU に関する情報を取得します。
関連するツール間で異なる CPU 情報ファイルを参照した場合 , 作成するプログラムに問
題が発生する可能性があります。
SOFTUNE Tools に標準で添付されている CPU 情報ファイルは , 以下の場所にあります。
インストール先ディレクトリ \lib\911\911.csv
コンパイラとアセンブラパックを異なるディレクトリにインストールしている場合には ,
各ツールに対して同一の CPU 情報ファイルを参照するように , -cif で指定してください。
December 1, 2014, CM71-00327-9
249
第 10 章 ライブラリアンのオプション
Su pp or t
So ft
Manu al
ターゲット CPU 指定 (-cpu)
10.2.17
ターゲット CPU の指定を行います。
ライブラリファイル化を行うプログラムのターゲット CPU を MB 番号で指定しま
す。
■ ターゲット CPU 指定 (-cpu)
【記述形式】
-cpu
< MB 番号>
【パラメータ】
< MB 番号>
ターゲット CPU の MB 番号
【説明】
ライブラリファイル化を行うプログラムのターゲット CPU を MB 番号で指定します。
【例】
flibs syslib.lib -a inchar,outchar -cpu MB91100A
flibs syslib.lib -a inchar,outchar -cpu MB91130
<注意事項>
ライブラリ化処理を実行する際には , 本オプションでターゲット CPU の指定が必要です。
本オプションの省略はできません。
250
CM71-00327-9, December 1, 2014
第 10 章 ライブラリアンのオプション
Support
10.2.18
Soft
Ma nual
オブジェクト混在チェックレベル指定 (-omcl)
-omcl オプションは , 以下に示すオブジェクト混在が発生した場合の動作を指定しま
す。
• ターゲット CPU が FR80 または FR81 の時に ,FR 用オブジェクトが混在した場合
• ターゲット CPU が FPU 付き FR81 の時に ,FPU なしの FR81,FR80,FR 用オブ
ジェクトが混在した場合の動作を指定します。動作は混在許可 ( メッセージ出力
なし ), 警告 , エラーを指定できます。
■ オブジェクト混在チェックレベル指定 (-omcl)
【記述形式】
-omcl
<数値>
【パラメータ】
<数値>
警告レベルとして 0,1 または 2 を指定します。
警告レベルのデフォルト値は ,1 です。
【説明】
以下に示すオブジェクト混在が発生した場合の動作を指定します。
• ターゲット CPU が FR80 または FR81 の時に ,FR 用オブジェクトが混在した場合
• ターゲット CPU が FPU 付き FR81 の時に ,FPU なしの FR81,FR80,FR 用オブジェク
トが混在した場合
動作はメッセージ出力なし , 警告 , エラーを指定できます。
0 : 混在が発生してもメッセージを出力しません。( 混在許可 )
1 : 混在が発生した場合には , 警告メッセージを出力します。( 混在許可 )
2 : 混在が発生した場合には , エラーメッセージを出力します。( 混在不可 )
-cpu オプションと混在可能な CPU については 「9.9
,
ライブラリアンでのオブジェクト
混在」を参照してください。
【例】
• -omcl オプション指定がない場合 ( デフォルト動作 )
混在を警告として扱います。
flibs -cpu MB91680 -a module_fr.obj fr80.lib
*** W1412U: 互換性のない CPU タイプのモジュールがあります (module_fr.obj)
• -omcl 0 を指定した場合
混在を検出しません
flibs -cpu MB91680 -a module_fr.obj fr80.lib -omcl 0
• -omcl 1 を指定した場合
December 1, 2014, CM71-00327-9
251
第 10 章 ライブラリアンのオプション
Su pp or t
So ft
Manu al
混在を警告として扱います。
flibs -cpu MB91680 -a module_fr.obj fr80.lib -omcl 1
*** W1412U: 互換性のない CPU タイプのモジュールがあります (module_fr.obj)
• -omcl 2 を指定した場合
混在をエラーとして扱います。
flibs -cpu MB91680 -a module_fr.obj fr80.lib -omcl 2
*** E4412U: 互換性のない CPU タイプのモジュールがあります (module_fr.obj)
252
CM71-00327-9, December 1, 2014
Support
Soft
Ma nual
第 11 章
ライブラリアンのリスト
フォーマット
この章では , ライブラリアンのリストファイルの構
成について説明します。
11.1 リストファイルの情報内容
11.2 モジュール名リスト
11.3 モジュールごとの詳細情報
11.4 ライブラリ内の外部定義 / 参照シンボル情報
December 1, 2014, CM71-00327-9
253
第 11 章 ライブラリアンのリストフォーマット
Su pp or t
11.1
So ft
Manu al
リストファイルの情報内容
ライブラリアンのリストファイルは , ライブラリファイルの内容を以下の 5 つの分
類で出力します。
• モジュール名
• モジュールごとのセクション情報
• モジュールごとの外部定義シンボル情報
• モジュールごとの外部参照シンボル情報
• モジュール全体の外部定義 / 参照シンボル情報
リスト出力を行うためには , -m オプションおよび -dt オプションの指定が必要です。
■ リストファイルの構成
図 11.1-1 にリストファイルの構成を示します。
図 11.1-1 リストファイルの構成
<リストヘッダ>
-mのみ
・ライブラリファイル名
・登録モジュール数/外部定義シンボル数
・CPU情報など
<モジュール数>
-mのみ
・登録モジュール名
<モジュール毎のセクション情報>
-dt s指定
<モジュール毎の外部参照シンボル名情報>
-dt r指定
<モジュール毎の外部定義シンボル名情報>
-dt d指定
.
.
.
<モジュール全体の外部定義/参照シンボル名情報>
254
-dt a指定
CM71-00327-9, December 1, 2014
第 11 章 ライブラリアンのリストフォーマット
Support
Soft
Ma nual
モジュール名リスト
11.2
ライブラリアンのデフォルトリスト出力 (-dt オプション指定なしのとき ) では , ラ
イブラリファイル中の登録モジュール名だけを表示します。
■ リスト出力概要
-m オプションが指定された場合 , ライブラリファイルの内容を表示します。
ライブラリアンリストの形式は , 図 11.2-1 のとおりです。
図 11.2-1 ライブラリアンリストの形式 ( デフォルト )
*1
*2
*3
*4
*5
*6
Library File Name
Number of Modules
Number of Symbols
CPU information
Library Creation Date
Library Revision Date
[ Module Name ]
*7 ModuleA
ModuleB
ModuleC
: sample.lib
: 3
: 9
: MB91101
1999-03-01 14:23:50
1999-04-17 09:41:15
[ Entry Date ]
1999-03-01 14:23:50
1997-04-17 09:41:15
1999-03-01 14:23:50
[ Creation
1999-03-19
1996-10-07
1999-02-23
Date ]
10:03:21
20:18:58
15:15:00
[OMF]
*
*1:ライブラリファイル名
*2:ライブラリファイルに登録されているモジュールの数(10 進数)
*3:ライブラリファイルに登録されている外部定義シンボルの数(10 進数)
*4:CPU の情報 (MB 番号 )
*5:ライブラリファイルを最初に作成した日時
*6:ライブラリファイルの最新更新日時……新規作成時は *5 と同じ
*7:[ Module Name ]
登録モジュール名(アルファベット順)
モジュール名は(ページ幅 - 59)文字を 1 行に表示します。デフォルト(-pw 80)
の場合は , 21 文字です。
[ Entry Date ]
モジュールがライブラリファイルに登録された日時
[ Creation Date ]
モジュールが作成された日時
[ OMF ]
OMF 種別
Softune V3 用言語ツールで作成されたモジュールに * が表示されます。
December 1, 2014, CM71-00327-9
255
第 11 章 ライブラリアンのリストフォーマット
Su pp or t
11.3
So ft
Manu al
モジュールごとの詳細情報
モジュールごとの詳細情報には以下の 3 つがあり , 出力指示は -dt オプションで行い
ます。
• セクション情報 (-dt s)
• 外部定義シンボル情報 (-dt d)
• 外部参照シンボル情報 (-dt r)
■ リスト出力概要
図 11.3-1 にライブラリアンリストの形式 ( 詳細指定時 ) を示します。
図 11.3-1 ライブラリアンリストの形式 ( 詳細指定時 )
Library File Name
Number of Modules
Number of Symbols
CPU information
Library Creation Date
Library Revision Date
: sample.lib
: 3
: 3
: MB91101
1999-03-01 14:23:50
1999-04-17 09:41:15
[ Module Name ]
[ Entry Date ]
ModuleA
1999-03-01 14:23:50
-- Type -*1 -- Section code
code
data
data
*2 -- Ext_Ref Symbol(s) -p_text
tx_len
-Ext_Def
Symbol(s)
-*3
prtext
[ Module Name ]
[ Entry Date ]
.
.
.
[ Creation Date ]
1999-03-19 10:03:21
-- Size -0x000002E8
0x0000006A
[OMF]
*
[ Creation Date ]
[OMF]
*1:-dt オプションの s パラメータにより出力されます。
モジュール内のセクションの情報です。
セクション名 , セクション属性 , サイズを表示します。
セクション名は , (ページ幅 - 61)文字を 1 行に表示します。
*2:-dt オプションの r パラメータにより出力されます。
モジュール内の外部参照シンボル名を 1 行に 2 シンボルずつ表示します。
*3:-dt オプションの d パラメータにより出力されます。
モジュール内の外部定義シンボル名を1行に 2 シンボルずつ表示します。
外部シンボル名は((ページ幅 - 12)/2)文字を 1 行に表示します。
256
CM71-00327-9, December 1, 2014
第 11 章 ライブラリアンのリストフォーマット
Support
11.4
Soft
Ma nual
ライブラリ内の外部定義 / 参照シンボル情報
ライブラリファイルに登録されているすべてのモジュールに関する , 外部定義シン
ボルおよび外部参照シンボルの情報を表示できます。出力指示は -dt オプションで行
います。(-dt a)
■ リスト出力概要
図 11.4-1 にライブラリアンリストの形式 ( 詳細指定時 ) を示します。
図 11.4-1 ライブラリアンリストの形式 ( 詳細指定時 )
Library File Name
Number of Modules
Number of Symbols
CPU information
Library Creation Date
Library Revision Date
: sample.lib
: 3
: 3
: MB91101
1999-03-01 14:23:50
1999-04-17 09:41:15
[ Module Name ]
ModuleA
[ Entry Date ]
1999-03-01 14:23:50
.
.
.
*1 [ ALL Ext_Def Symbol(s) ]
chr1get
prtext
*2 [ ALL Ext_Ref Symbol(s) ]
chr_get
[ Creation Date ]
1999-03-19 10:03:21
[OMF]
*
p_text
tx_len
*1:-dt オプションの a パラメータにより出力されます。
ライブラリファイル内全体の外部定義シンボル名の一覧を , 1 行に 2 シンボルずつ
表示します。
*2:ライブラリファイル内で対応する外部定義シンボルのない外部参照シンボルの一
覧を , 1 行に 2 シンボルずつ表示します。
外部シンボル名は((ページ幅 - 12)/2)文字を 1 行に表示します。
December 1, 2014, CM71-00327-9
257
第 11 章 ライブラリアンのリストフォーマット
Su pp or t
258
So ft
Manu al
CM71-00327-9, December 1, 2014
Support
Soft
Ma nual
第 12 章
ライブラリアンの制限事項
および Q&A
この章では , ライブラリアンの制限事項や使用上の
Q&A について述べます。
12.1 ライブラリアンの制限事項
12.2 ライブラリアンの使用上の Q&A
December 1, 2014, CM71-00327-9
259
第 12 章 ライブラリアンの制限事項および Q&A
Su pp or t
12.1
So ft
Manu al
ライブラリアンの制限事項
ライブラリアンを使用する上で , 1 つのライブラリファイルに登録可能なモジュール
数や外部シンボル数の制限や , 注意しなくてはならない事柄を説明します。
■ ライブラリアンの制限事項
ライブラリアンには , 表 12.1-1 に示す制限があります。
ただし , 最大限界値まで処理が可能なわけではありません。
ライブラリアンは動的にメモリ獲得を行いながら処理を行います。
処理に必要なメモリ獲得ができなくなった場合には , メモリ不足のエラーメッセージ
を通知し , 処理を中断します。
表 12.1-1 ライブラリアンの制限一覧
項目
制限値
備考
オプションファイル数
無制限
メモリ依存
オプションファイル内の行数
無制限
メモリ依存
オプションファイル内の 1 行の文字数
4,095 文字
オプションファイルのネスト
不可
入力ファイル数
4,294,967,295 個
メモリ依存
入力モジュール数
4,294,967,295 個
メモリ依存
入出力ファイルサイズ
無制限
OS 依存
モジュール名 / セクション名 / シンボル名文字数
無制限
メモリ依存
ファイル名文字数
無制限
OS 依存
セクション数
4,294,967,295 個
メモリ依存
最大セクションサイズ
4G バイト
外部定義シンボル数
4,294,967,295 個
メモリ依存
外部参照シンボル数
4,294,967,295 個
メモリ依存
外部定義シンボル参照数
無制限
メモリ依存
■ 必要なディスク容量についての注意
既存のライブラリファイルの編集を行い , バックアップファイルを作成する際は , 以下
の点にご注意ください。
• 新しく作成するライブラリファイルと既存のバックアップファイルが格納できる
空き容量がある。
260
CM71-00327-9, December 1, 2014
第 12 章 ライブラリアンの制限事項および Q&A
Support
Soft
Ma nual
■ オプションの指定に関する注意
ライブラリファイルの内容検査 (-c) およびファイル内容の最適化 (-O) の両オプション
は , それぞれ単独で指定してください。
ほかのオプションとの併用はできません。
December 1, 2014, CM71-00327-9
261
第 12 章 ライブラリアンの制限事項および Q&A
Su pp or t
12.2
So ft
Manu al
ライブラリアンの使用上の Q&A
ライブラリアンの使用上に関する Question と Answer を示します。
■ ライブラリファイルの作成に関する Q&A
Q.
ライブラリファイルに登録できるファイル形式は何ですか ?
A.
アセンブラが出力する , オブジェクトモジュールです。
これは , デフォルト拡張子が , (.obj) で作成されるファイルです。
例
fasm911s file1
→ file1.obj 出力
fasm911s file2
→ file2.obj 出力
flibs libfile -a file1.obj,file2.obj
Q.
自作したライブラリファイルからの取り込みモジュールに障害があるようなので ,
デバッグしたいのですがシンボル情報が使えません。
A.
デバッグ情報付きのオブジェクトモジュールでないと , デバッグ時にシンボル情報
の使用はできません。
デバッグ情報付きで作成したオブジェクトモジュールに差し替える必要がありま
す。
デバッグの必要がありそうなオブジェクトモジュールをライブラリ化して使用す
る場合には , あらかじめデバッグ情報付で登録 (-g オプション ) しておくと良いで
しょう。
デバッグが終了した時点で , デバッグ情報を削除 (-O オプション ) することができ
ます。
例
fasm911s file1 -g
flibs libfile -r file1 -g
flibs libfile -O
→ デバッグ情報付 file1.obj 出力
→ デバッグ情報付 libfile.lib 出力
→ デバッグ情報無 libfile.lib 出力
Q.
汎用に作成したサブルーチンをライブラリにまとめたいと思っていますがオブ
ジェクトモジュールの数が非常に多く , 全部のファイル名を指定するのが面倒で
す。
A.
オブジェクトモジュールのライブラリへの追加 (-a オプション ) と置換 (-r オプショ
ン ) には , ワイルドカード指定ができます。
例
flibs libfile -a "*.obj" → 拡張子 ".obj" のファイルをすべて登録
Q.
以前に作成したライブラリファイルの内容がわからなくなってしまいました。ど
んなモジュールが登録されているか調べる方法がありますか ?
A.
ライブラリファイルの内容は , -m オプションで見ることができます。"-m ファイ
ル名 " を指定すれば , デフォルト拡張子が (.mp2) のリストファイルが作成されま
す。
-m オプションで出力される内容では情報不足の場合 , -dt オプションを併用してよ
り詳細な情報を得ることができます。
例
flibs libfile -m libdoc → リストファイルlibdoc.mp2 出力
flibs libfile -m libdoc -dt a,s
→ 詳細情報を含んだリストファイル libdoc.mp2 出力
262
CM71-00327-9, December 1, 2014
第 12 章 ライブラリアンの制限事項および Q&A
Support
Soft
Ma nual
Q.
ライブラリファイルの内容を確認したいのですが , ファイルにとるほどではないの
で , 画面上に出力できますか ?
A.
-m オプションのファイル名指定のかわりにハイフン ( - ) を指定すると標準出力へ
の表示になります。
例
flibs libfile -m flibs libfile -m - -dt a,s
flibs libfile -a file3.obj -m -
Q.
ライブラリファイルの内容をリスト出力したところ , 文字数の多いシンボル名の表
示が 2 行に渡ってしまい見にくいのですが ?
A.
-pw オプションで , 1 行に表示する桁数を増やしてください。デフォルトは 80 桁な
ので , 2 行目に表示された部分が 4 文字ならその倍の 8 を加えた 88 桁以上を指定す
れば 1 行に収まります。
例
flibs libfile -m libdoc -pw 90
Q.
ライブラリファイル中のモジュールを新しいモジュールと入替えたところ幾つか
間違えて登録してしまったことに気づきました。置換前のライブラリファイルも
バックアップをとっておらず , 復旧するのに苦労しました。
A.
ライブラリアンでは , -b オプションの指定により 1 世代分のバックアップファイル
( 拡張子 "".bak") を作成できます。
ライブラリファイルの編集を行う場合は , 予め元のライブラリのバックアップを
とっておくことが望ましいですが , 必要に応じて -b オプションを指定してくださ
い。
例
flibs libfile -r file1,file2 -d mod4 -b
December 1, 2014, CM71-00327-9
263
第 12 章 ライブラリアンの制限事項および Q&A
Su pp or t
264
So ft
Manu al
CM71-00327-9, December 1, 2014
Support
第4部
Soft
Ma nual
オブジェクト形式コンバータ編
オブジェクト形式コンバータの種類 , オプション一覧 , 機能説明 , オブジェクト形式
の変換について説明します。
第 13 章 オブジェクト形式 コンバータの仕様
第 14 章 オブジェクト形式 コンバータの共通オプション
第 15 章 ロードモジュールコンバータ (f2ms, f2hs, f2is, f2es)
第 16 章 フォーマットアジャスタ (m2ms, h2hs)
第 17 章 バイナリコンバータ (m2bs, h2bs)
第 18 章 その他のコンバータ
第 19 章 オブジェクト形式コンバータの制限事項および Q&A
December 1, 2014, CM71-00327-9
265
Su pp or t
266
So ft
Manu al
CM71-00327-9, December 1, 2014
Support
Soft
Ma nual
第 13 章
オブジェクト形式
コンバータの仕様
この章では , オブジェクト形式コンバータの概要と
種類を説明します。
オブジェクト形式コンバータはオブジェクト形式
を変換するツールです。
13.1 オブジェクト形式コンバータの概要
13.2 オブジェクト形式コンバータの種類
13.3 オブジェクト形式コンバータの実行
December 1, 2014, CM71-00327-9
267
第 13 章 オブジェクト形式 コンバータの仕様
Su pp or t
13.1
So ft
Manu al
オブジェクト形式コンバータの概要
オブジェクト形式コンバータは以下のファイル形式を処理の対象としています。
• リンカ出力の絶対形式ロードモジュール
• S フォーマット
• HEX フォーマット
• バイナリデータファイル
■ オブジェクト形式コンバータの概要
オブジェクト形式コンバータには , ロードモジュールコンバータ , アジャスタ ( 整形
ツール ) , バイナリコンバータ , コンバータの 4 種類があります。
● ロードモジュールコンバータ
ロードモジュールコンバータはリンカ出力の絶対形式ロードモジュールを汎用フォー
マットに変換する際に用います。
図 13.1-1 に , ロードモジュールコンバータの入出力を示します。
図 13.1-1 ロードモジュールコンバータの入出力
絶対形式
ロードモジュール
(.abs)
f2ms
f2hs
f2is
f2es
Sフォーマット
S1/S2/S3
HEXフォーマット
HEX8/HEX16/HEX32
HEX8フォーマット
(HEX8形式のみ)
HEX16フォーマット
(HEX16形式のみ)
(.ihx)
(.ehx)
(.mhx)
268
(.hex)
CM71-00327-9, December 1, 2014
第 13 章 オブジェクト形式 コンバータの仕様
Support
Soft
Ma nual
● アジャスタ , バイナリコンバータ
アジャスタは S フォーマットや HEX フォーマットの整形をする際に , バイナリコン
バータは S フォーマットや HEX フォーマットをバイナリに変換する際に用います。
図 13.1-2 に , アジャスタ , バイナリコンバータの入出力を示します。
図 13.1-2 アジャスタ , バイナリコンバータの入出力
Sフォーマット
HEXフォーマット
(.mhx)
(.hex)
m2ms
m2bs
h2hs
h2bs
整形済み
Sフォーマット
バイナリ
フォーマット
整形済み
HEXフォーマット
バイナリ
フォーマット
(.ahx)
(.bin)
(.ahx)
(.bin)
● コンバータ
コンバータは S フォーマットと HEX8/HEX16 フォーマットの相互変換する際に用いま
す。
図 13.1-3 に , コンバータの入出力を示します。
図 13.1-3 コンバータの入出力
Sフォーマット
HEX8フォーマット
(.mhx)
HEX8/HEX16
フォーマット
(.ihx)
(.ehx)
m2is
m2es
i2ms
e2ms
HEX8フォーマット
HEX16フォーマット
Sフォーマット
Sフォーマット
(.ihx)
(.ehx)
December 1, 2014, CM71-00327-9
(.mhx)
(.mhx)
269
第 13 章 オブジェクト形式 コンバータの仕様
Su pp or t
13.2
So ft
Manu al
オブジェクト形式コンバータの種類
オブジェクト形式コンバータの各コマンド名は , x2ys のように命名されており , 2
の前の x が入力ファイルのオブジェクト形式を , 後の y が出力ファイルのオブジェ
クト形式を示しています。
x と y の部分のアルファベット 1 文字は , 次の形式を示しています。
• f : リンカ出力の絶対形式ロードモジュール
• m : S フォーマット
• h : HEX フォーマット (HEX8/HEX16/HEX32)
• b : バイナリデータ形式
• i : HEX8 フォーマット (HEX8)
• e : HEX16 フォーマット (HEX16)
■ ロードモジュールコンバータの種類
オブジェクト形式の変換は , 表 13.2-1 のコマンドで行います。
S フォーマットへの変換には f2ms を用います。
また , HEX フォーマットへの変換には f2hs を用います。
f2is を用いれば HEX8 フォーマットへ , f2es を用いれば HEX16 フォーマットへ変換可
能ですが , HEX8/HEX16/HEX32 に対応した f2hs を用いることを推奨します。
表 13.2-1 ロードモジュールコンバータのコンバート内容
コマンド名
コンバ―ト内容
f2ms
絶対形式ロードモジュール
→
S フォーマット
f2hs
絶対形式ロードモジュール
→
HEX8/HEX16/HEX32 フォーマット
f2is
絶対形式ロードモジュール
→
HEX8 フォーマット
f2es
絶対形式ロードモジュール
→
HEX16 フォーマット
■ フォーマットアジャスタ
フォーマットアジャスタは, SフォーマットのオブジェクトファイルやHEXフォーマッ
トのオブジェクトファイルを整形します。詳しくは ,「第 16 章 フォーマットアジャス
タ (m2ms, h2hs)」を参照してください。
■ バイナリコンバータ
S フォーマットや HEX フォーマットのオブジェクトファイルをバイナリデータ ( メモ
リイメージ ) へ変換しファイルへ出力します。詳しくは「第 17 章 バイナリコンバー
タ (m2bs, h2bs)」を参照してください。
270
CM71-00327-9, December 1, 2014
第 13 章 オブジェクト形式 コンバータの仕様
Support
Soft
Ma nual
■ その他のコンバータの種類
オブジェクト形式の変換は , 表 13.2-2 のコマンドで行います。
表 13.2-2 その他のコンバータのコンバート内容
コマンド名
コンバ―ト内容
m2is
S フォーマット
→
HEX8 フォーマット
m2es
S フォーマット
→
HEX16 フォーマット
i2ms
HEX8 フォーマット
→
S フォーマット
e2ms
HEX16 フォーマット
→
S フォーマット
December 1, 2014, CM71-00327-9
271
第 13 章 オブジェクト形式 コンバータの仕様
Su pp or t
13.3
So ft
Manu al
オブジェクト形式コンバータの実行
オブジェクト形式コンバータの実行は , コマンド名の後に , 入力ファイル名を指定す
るだけで実行できます。
■ オブジェクト形式コンバータのコマンド実行
各コマンドとも , コマンド名の後に , 入力ファイル名を指定するだけで実行できます。
x2ys
<入力ファイル名> [ オプション ]
指定された<入力ファイル名>を x 形式として処理し , y 形式ファイルを作成します。
各オブジェクト形式をファイル名から識別できるように , オブジェクト形式コンバー
タでは次に示すデフォルト拡張子を使用します。
絶対形式ロードモジュール
: .abs
S フォーマット
: .mhx, .ahx
HEX8/HEX16/HEX32
: .hex, .aix
バイナリデータ形式
: .bin
HEX8
: .ihx
HEX16
: .ehx
バイナリコンバータおよびアジャスタの実行の際は , 必ず -ran オプションが必要です。
詳しくは「17.3.1 出力範囲指定 (-ran) 」を参照してください。
【例】
f2ms sample
リンカ出力の絶対形式ロードモジュール sample.abs を入力して , S フォーマットの
sample.mhx ファイルを出力します。
272
CM71-00327-9, December 1, 2014
Support
Soft
Ma nual
第 14 章
オブジェクト形式
コンバータの共通オプション
この章では , オブジェクト形式コンバータの各共通
オプションについて詳しく説明します。
14.1 オブジェクト形式コンバータのオプション一覧
14.2 出力ファイル名の変更 (-o)
14.3 パディング (-p)
December 1, 2014, CM71-00327-9
273
第 14 章 オブジェクト形式 コンバータの共通オプション
Su pp or t
14.1
So ft
Manu al
オブジェクト形式コンバータのオプション一覧
オブジェクト形式コンバータは , コマンド名の後に入力ファイル名を指定するだけ
で実行できますが , それに加えて幾つかのオプションが使用できます。
■ オブジェクト形式コンバータの共通オプションの種類
オブジェクト形式コンバータの各コマンドでは , 以下のオプションが共通で使用でき
ます。
表 14.1-1 にオブジェクト形式コンバータの共通オプション一覧を示します。
表 14.1-1 オブジェクト形式コンバータの共通オプション一覧
機能
オプション
出力ファイル名の変更
-o
パディングデータ指定
-p
デフォルトオプションファイル読み込み抑止指定
備考
-Xdof
* 共通オプション
-f
* 共通オプション
ヘルプメッセージ表示指定
-help
* 共通オプション
版数 / メッセージ出力指定
-V
* 共通オプション
版数 / メッセージ出力抑止
-XV
* 共通オプション
-cmsg
* 共通オプション
-Xcmsg
* 共通オプション
ワーニング発生時の終了コードを 1 にする指定
-cwno
* 共通オプション
ワーニング発生時の終了コードを 0 にする指定
-Xcwno
* 共通オプション
オプションファイル読み込み指定
終了メッセージ表示指定
終了メッセージ表示抑止指定
オプションに関する簡単な説明は , コマンド名のみの入力 , もしくは -help オプション
で表示できます。
x2ys
x2ys
274
-help
CM71-00327-9, December 1, 2014
第 14 章 オブジェクト形式 コンバータの共通オプション
Support
14.2
Soft
Ma nual
出力ファイル名の変更 (-o)
コンバート後の出力ファイルの作成ディレクトリおよびファイル名をデフォルトか
ら変更します。
■ 出力ファイル名の変更 (-o)
【記述形式】
-o
<オブジェクトファイル名>
【パラメータ】
<オブジェクトファイル名>
出力ファイルの名前
【説明】
コンバート後の出力ファイル名を変更したいときに指定します。
パス名付きで指定することで , 出力先ディレクトリも変更できます。
本オプションを省略した場合は , 入力ファイル名の拡張子を変換後のフォーマットの
デフォルト拡張子に直したものを出力ファイル名とします。
<オブジェクトファイル名>指定で拡張子を省略した場合も , デフォルト拡張子を付
加します。
各フォーマットのデフォルト拡張子は , 以下の 6 つです。
絶対形式ロードモジュール
: .abs
S フォーマット
: .mhx .ahx
HEX8/HEX16/HEX32
: .hex .aix
バイナリデータファイル
: .bin
HEX8
: .ihx
HEX16
: .ehx
【例 1】
f2ms ccp903
(-o オプションを使用しない例 )
絶対形式ロードモジュール ccp903.abs を入力し , S フォーマットの ccp903.mhx を出力
します。上記と同等の指定例を 4 つ示します。
f2ms ccp903.abs -o ccp903.mhx
f2ms ccp903.abs -o ccp903
f2ms ccp903
-o ccp903.mhx
f2ms ccp903
-o ccp903
【例 2】
f2ms ccp903 -o ccp903.hex
出力ファイル名を , ccp903.hex に変更します。
December 1, 2014, CM71-00327-9
275
第 14 章 オブジェクト形式 コンバータの共通オプション
Su pp or t
So ft
Manu al
【例 3】
f2ms ccp903 -o ..\hex\ccp903m.hex
出力先ディレクトリを , カレントから ..\hex に変更し , 出力ファイル名を , ccp903m.hex
に変更します。
<注意事項>
バイナリコンバータで , -sp オプションを指定した場合は , <オブジェクトファイル名>
の評価が異なります。<オブジェクトファイル名>の指定には , 拡張子は含まれないもの
とし , <オブジェクトファイル名>で指定したファイル名に無条件に拡張子を付加しま
す。
例えば , オブジェクトファイル名に "binary.bin" と指定されていれば出力ファイル名は
"binary.bin.b01", "binary.bin.b02", …, "binary.bin.bxx" となります。
276
CM71-00327-9, December 1, 2014
第 14 章 オブジェクト形式 コンバータの共通オプション
Support
14.3
Soft
Ma nual
パディング (-p)
任意のアドレス範囲を , 指定した値のデータで埋めます。
ロードモジュールコンバータ (f2ms, f2hs) の整形オプション指定時 , バイナリコン
バータ , アジャスタでは , ファイルにデータの存在しない箇所が指定した値のデータ
で埋まります。
■ パディング (-p)
【記述形式】
-p
<値> , [ <開始アドレス> , <終了アドレス> ]
【パラメータ】
<値>
1 バイトのデータ
<開始アドレス>
<値>を設定する開始アドレス。
* f2ms, f2hsの整形指定(-adjust)時, バイナリコンバータ, アジャスタでは指定しません。
<終了アドレス>
<値>を設定する終了アドレス。
* f2ms, f2hsの整形指定(-adjust)時, バイナリコンバータ, アジャスタでは指定しません。
【説明】
指定したアドレス範囲を , 指定した値のデータで埋めます。
ロードモジュールコンバータ (f2ms, f2hs) で整形指定 (-adjust) 時やバイナリコンバータ
およびアジャスタでは < 値 > の設定のみを行います。
ロードモジュールコンバータ (f2ms, f2hs) で整形指定 (-adjust) 時やバイナリコンバータ
およびアジャスタでは , ファイルにデータの存在しない箇所が指定した値のデータで
埋まります。
【例 1】
f2ms ccp903 -p 0xEF,0x1FE4,0x1FFF
絶対形式ロードモジュールから , S フォーマットにコンバートします。
その際 , 0x1FE4 番地から 0x1FFF 番地までを , 0xEF というデータで S フォーマットファ
イルの最後尾に追加作成します。
【例 2】
f2ms ccp903 -p 0xEF,0x1FE4,0x1FFF -adjust
整形指定 (-adjust) 時に , パディングオプション (-p) で開始 / 終了アドレスが指定されて
いるのでエラーになります。
f2ms ccp903 -p 0xEF -adjust
絶対形式ロードモジュールから , S フォーマットにコンバートします。
その際 , データが存在しない箇所を , 0xEF というデータで埋めます。
December 1, 2014, CM71-00327-9
277
第 14 章 オブジェクト形式 コンバータの共通オプション
Su pp or t
So ft
Manu al
【例 3】
m2bs ccp903 -ran 0x0,0x1FFF -p 0xEF
S フォーマットから , 0x0 番地から 0x1FFF 番地までの範囲をバイナリイメージにコン
バートします。
その際 , S フォーマットにデータが存在しない箇所を , 0xEF というデータで埋めます。
278
CM71-00327-9, December 1, 2014
Support
Soft
Ma nual
第 15 章
ロードモジュールコンバータ
(f2ms, f2hs, f2is, f2es)
この章では , ロードモジュールコンバータについて
説明します。
15.1 ロードモジュールコンバータの概要
15.2 ロードモジュールコンバータのオプション一覧
15.3 ロードモジュールコンバータのオプション詳細
15.4 f2ms( 絶対形式ロードモジュール→ S フォーマット
変換 )
15.5 f2hs( 絶対形式ロードモジュール→ HEX フォーマット
変換 )
15.6 f2is( 絶対形式ロードモジュール→ HEX8 フォーマット
変換 ), f2es( 絶対形式ロードモジュール→ HEX16
フォーマット変換 )
December 1, 2014, CM71-00327-9
279
第 15 章 ロードモジュールコンバータ (f2ms, f2hs, f2is, f2es)
Su pp or t
15.1
So ft
Manu al
ロードモジュールコンバータの概要
ロードモジュールコンバータは , 絶対形式ロードモジュールを汎用フォーマットで
ある S フォーマットや HEX フォーマットに変換します。
■ ロードモジュールコンバータの概要
ロードモジュールコンバータは , 絶対形式ロードモジュールを汎用フォーマットであ
る S フォーマットや HEX フォーマットに変換します。
S フォーマットに変換するには f2ms を用います。また , HEX フォーマットに変換する
には f2hs を用います。
f2is は HEX8 フォーマットに , f2es は HEX16 フォーマットに変換しますが , f2hs を用い
れば HEX8/HEX16/HEX32 のすべての HEX フォーマットに変換可能です。
図 15.1-1 に示すように , f2ms, f2hs では整形指定オプション (-adjust) を指定することで ,
アジャスタと連携動作し出力ファイルの整形を行うことが可能です。
図 15.1-1 ロードモジュールコンバータの概要
絶対形式
ロードモジュール
絶対形式
ロードモジュール
(.abs)
f2ms
f2hs
連携
連携
m2ms
h2hs
整形済み
Sフォーマット
整形済み
HEXフォーマット
(.mhx)
280
(.abs)
(.hex)
CM71-00327-9, December 1, 2014
第 15 章 ロードモジュールコンバータ (f2ms, f2hs, f2is, f2es)
Support
15.2
Soft
Ma nual
ロードモジュールコンバータのオプション一覧
ここでは , ロードモジュールコンバータのオプション名と , 機能概要を一覧で示しま
す。
■ ロードモジュールコンバータのオプション一覧
表 15.2-1 に , ロードモジュールコンバータのオプション一覧を示します。
表 15.2-1 ロードモジュールコンバータのオプション一覧
機能
オプション
備考
出力ファイル名の変更
-o
*コンバータ共通オプション
パディングデータ指定
-p
*コンバータ共通オプション
S1 フォーマット出力指定
-S1
f2ms のみ
S2 フォーマット出力指定
-S2
f2ms のみ
S3 フォーマット出力指定
-S3
f2ms のみ
HEX8 フォーマット出力指定
-I16
f2hs のみ
HEX16 フォーマット出力指定
-I20
f2hs のみ
HEX32 フォーマット出力指定
-I32
f2hs のみ
-entry
f2hs のみ
スタートアドレスレコード出力抑止指定
-Xentry
f2hs のみ
整形指定
-adjust
f2ms, f2hs のみ
デフォルトオプションファイル読み込み抑止指定
-Xdof
* 共通オプション
-f
* 共通オプション
ヘルプメッセージ表示指定
-help
* 共通オプション
版数 / メッセージ出力指定
-V
* 共通オプション
版数 / メッセージ出力抑止
-XV
* 共通オプション
-cmsg
* 共通オプション
-Xcmsg
* 共通オプション
ワーニング発生時の終了コードを 1 にする指定
-cwno
* 共通オプション
ワーニング発生時の終了コードを 0 にする指定
-Xcwno
* 共通オプション
スタートアドレスレコード出力指定
オプションファイル読み込み指定
終了メッセージ表示指定
終了メッセージ表示抑止指定
December 1, 2014, CM71-00327-9
281
第 15 章 ロードモジュールコンバータ (f2ms, f2hs, f2is, f2es)
Su pp or t
15.3
So ft
Manu al
ロードモジュールコンバータのオプション詳細
ここでは , ロードモジュールコンバータの各オプションについて説明します。
なお , リンケージキットで共通のオプションは「第 3 章 共通オプション」で , コン
バータで共通のオプションは「第 14 章 オブジェクト形式 コンバータの共通オプ
ション」で , 説明しています。
■ 出力 S フォーマット指定 (-S1/-S2/-S3)
S フォーマットで出力する際に使用するレコードを指定します。詳細は「15.3.1 出力
S フォーマット指定 (-S1/-S2/-S3) 」の説明を参照してください。
■ 出力 HEX フォーマット指定 (-I16/-I20/-I32)
HEX フォーマットで出力する際に使用するレコードを指定します。詳細は「15.3.2 出
力 HEX フォーマット指定 (-I16/-I20/-I32) 」の説明を参照してください。
■ スタートアドレス出力指定 (-entry)
HEX フォーマットで出力する際にスタートセグメントアドレスレコードやスタートリ
ニアアドレスレコードを出力します。詳細は「15.3.3 スタートアドレスレコード出力
指定 (-entry) 」の説明を参照してください。
■ スタートアドレス出力抑止指定 (-Xentry)
スタートアドレスレコード出力指定を取り消す際に指定します。詳細は「15.3.4 スター
トアドレスレコード出力抑止指定 (-Xentry) 」の説明を参照してください。
■ 整形指定 (-adjust)
S フォーマットや HEX フォーマットを出力した後にアジャスタの起動を指定します。
詳細は「15.3.5 整形指定 (-adjust) 」の説明を参照してください。
282
CM71-00327-9, December 1, 2014
第 15 章 ロードモジュールコンバータ (f2ms, f2hs, f2is, f2es)
Support
Soft
Ma nual
出力 S フォーマット指定 (-S1/-S2/-S3)
15.3.1
データを出力する際に使用するフォーマットを指定します。
■ 出力 S フォーマット指定 (-S1/-S2/-S3)
【記述形式】
-S1
-S2
-S3
【パラメータ】
なし
【説明】
データ内容を出力する際に使用するフォーマットを指定します。
f2ms は , データ内容を S1 レコード , S2 レコード , S3 レコードのどれか 1 つを用いて出
力します。
S1 レコードと S2 レコードの両方を用いて出力を行うようなことはありません。
-S1, -S2, -S3 の指定は後指定が有効になります。また , -S1, -S2, -S3 のオプションが指定
されない場合 , f2ms はデータのアドレスに合わせ , S1/S2/S3 の混在で出力します。
<注意事項>
本オプションによる指定と, 出力範囲が矛盾する場合, エラーを出力し処理を行いません。
本オプションの指定により , 出力に使用するターミネータレコード (S9 レコード , S8 レ
コード , S7 レコード ) も変化します ( 表 15.3-1 参照 ) 。
表 15.3-1 出力 S フォーマット指定一覧
指定
出力可能範囲
ターミネータレコード
備考
-S1
0x00000000 ~ 0x0000FFFF
S9 レコード
16bit address
-S2
0x00000000 ~ 0x00FFFFFF
S8 レコード
24bit address
-S3
0x00000000 ~ 0xFFFFFFFF
S7 レコード
32bit address
December 1, 2014, CM71-00327-9
283
第 15 章 ロードモジュールコンバータ (f2ms, f2hs, f2is, f2es)
Su pp or t
So ft
Manu al
出力 HEX フォーマット指定 (-I16/-I20/-I32)
15.3.2
データを出力する際に使用する HEX フォーマットを指定します。
■ 出力 HEX フォーマット指定 (-I16/-I20/-I32)
【記述形式】
-I16
-I20
-I32
【パラメータ】
なし
【説明】
データ内容を出力する際に使用する HEX フォーマットを指定します。
f2hs は , データ内容を HEX8, HEX16, HEX32 のどれか 1 つの形式を用いて出力します。
-I16, -I20, -I32 の指定は後指定が有効になります。また , -I16, -I20, -I32 のオプションが
指定されない場合 , f2hs はデータのアドレスに合わせ , HEX8/HEX16/HEX32 の混在で
出力します。
<注意事項>
本オプションによる指定と, 出力範囲が矛盾する場合, エラーを出力し処理を行いません。
表 15.3-2 出力 HEX フォーマット指定一覧
284
指定
出力可能範囲
フォーマット
備考
-I16
0x00000000 ~ 0x0000FFFF
HEX8 フォーマット
16bit address
-I20
0x00000000 ~ 0x000FFFFF
HEX16 フォーマット
20bit address
-I32
0x00000000 ~ 0xFFFFFFFF
HEX32 フォーマット
32bit address
CM71-00327-9, December 1, 2014
第 15 章 ロードモジュールコンバータ (f2ms, f2hs, f2is, f2es)
Support
15.3.3
Soft
Ma nual
スタートアドレスレコード出力指定 (-entry)
データを出力する際にスタートセグメントアドレスレコードまたはスタートリニア
アドレスレコードを出力します。
本オプションは f2hs でのみ指定できます。
■ スタートアドレスレコード出力指定 (-entry)
【記述形式】
-entry
【パラメータ】
なし
【説明】
スタートセグメントアドレスレコードまたは , スタートリニアアドレスレコードの出
力を行います。
入力ファイルにスタートアドレス情報がない場合は , 警告 (W1504U: 入力ファイルにス
タートアドレス情報がありません ) を出力します。
スタートアドレスレコードは , 出力 HEX フォーマット指定オプション (-I16/-I20/-I32)
の指定と , 入力データ範囲によって以下の表 15.3-3 のように出力されます。
表 15.3-3 HEX フォーマットスタートアドレスレコードの出力
出力 HEX
フォーマット指定
入力データ範囲
出力するスタートアドレスレコード
警告 (W1503U:-I16 指定時に -entry オプション
が指定されました ) が出力され , スタートアド
-I16
レスレコードは出力しません。
-I20
-I32
0x0 ~ 0xFFFFF
スタートセグメントアドレスレコード
0x0 ~ 0xFFFFF
スタートセグメントアドレスレコード
0x100000 ~
0xFFFFFFFF
スタートリニアアドレスレコード
出力 HEX フォーマット指定オプションを省略した場合は , HEX32 フォーマット出力指
定オプション (-I32) 指定時と同じ処理になります。
December 1, 2014, CM71-00327-9
285
第 15 章 ロードモジュールコンバータ (f2ms, f2hs, f2is, f2es)
Su pp or t
So ft
Manu al
【例】
f2hs ccp903.abs -entry -I16
HEX8 フォーマット出力オプション (-I16) が指定されているため , 警告 (W1503U:-I16 指
定時に -entry オプションが指定されました ) が出力され , スタートアドレスレコードは
出力されません。
f2hs ccp903.abs -entry -I20
スタートセグメントアドレスレコードを出力します。
f2hs ccp903.abs -entry -I32
入力ファイルのデータ範囲が 0x0 ~ 0xFFFFF のとき , スタートセグメントアドレスレ
コードを出力します。
入力ファイルのデータ範囲が 0x100000 ~ 0xFFFFFFFF のとき , スタートリニアアドレ
スレコードを出力します。
286
CM71-00327-9, December 1, 2014
第 15 章 ロードモジュールコンバータ (f2ms, f2hs, f2is, f2es)
Support
15.3.4
Soft
Ma nual
スタートアドレスレコード出力抑止指定 (-Xentry)
スタートセグメントアドレスレコードまたはスタートリニアアドレスレコードの出
力を抑止します。
本オプションは f2hs でのみ指定できます。
■ スタートアドレスレコード出力抑止指定 (-Xentry)
【記述形式】
-Xentry
【パラメータ】
なし
【説明】
スタートセグメントアドレスレコードまたは , スタートリニアアドレスレコードの出
力を抑止します。
本オプションは , スタートアドレスレコード出力指定 (-entry) を取り消すときに使用し
ます。
【例】
f2hs -entry ccp903.abs -I20 -Xentry
スタートアドレスレコード出力指定 (-entry) を取り消し , スタートアドレスレコードは
出力されません。
December 1, 2014, CM71-00327-9
287
第 15 章 ロードモジュールコンバータ (f2ms, f2hs, f2is, f2es)
Su pp or t
15.3.5
So ft
Manu al
整形指定 (-adjust)
フォーマット変換後にフォーマットアジャスタを自動的に呼び出し , データ出力形
式を整形します。
■ 整形指定 (-adjust)
【記述形式】
-adjust
【パラメータ】
なし
【説明】
ロードモジュールをフォーマット変換後にフォーマットアジャスタを自動で呼び出し
整形を行います。
整形対象となる開始 / 終了アドレスは , 自動的に設定されます。
本オプションを指定した場合には , パディング (-p) オプションで開始 / 終了アドレスの
パラメータ指定を行うとエラーになります。
本オプションを指定した場合には , フォーマットアジャスタのオプションも指定可能
となります。
【例】
f2ms ccp903 -p 0xEF,0x1FE4,0x1FFF -adjust
パディングオプションに開始 / 終了アドレスが指定されているためエラーになります。
f2ms ccp903 -p 0xEF -adjust
絶対形式ロードモジュールから , 整形済み S フォーマットにコンバートします。
その際 , データが存在しない箇所を 0xEF というデータで埋めます。
288
CM71-00327-9, December 1, 2014
第 15 章 ロードモジュールコンバータ (f2ms, f2hs, f2is, f2es)
Support
15.4
Soft
Ma nual
f2ms( 絶対形式ロードモジュール→ S フォーマット変換 )
リンカ出力の絶対形式ロードモジュールを S フォーマットに形式変換します。
0 ~ 0xFFFFFFFF 番地のデータが変換対象になります。
f2ms コマンドは , SOFTUNE V3/V5 系の絶対形式ロードモジュールも処理できま
す。
■ f2ms( 絶対形式ロードモジュール→ S フォーマット変換 )
【機能】
f2ms コマンドは , リンカ出力の絶対形式ロードモジュールからオブジェクトデータ部
を読み込み , S フォーマットファイルに形式変換します。
図 15.4-1 f2ms( 絶対形式ロードモジュール→ S フォーマット変換 )
絶対形式
ロードモジュール
f2ms
(.abs)
Sフォーマット
(.mhx)
【アドレス】
S フォーマットで表現できるアドレスの最大値を示します。
S1 タイプ
0xFFFF
S2 タイプ
0xFFFFFF
S3 タイプ
0xFFFFFFFF
リンカ出力の絶対形式ロードモジュールは , 0 ~ 0xFFFFFFFF の範囲のアドレスを表せ
ます。
S フォーマットも同様のアドレス範囲をサポートしていますので , データの欠落なくコ
ンバートを行うことができます。
f2ms は , 入力データの割り付けアドレスに応じて , 以下のレコードを出力します。
0x00000000 ~ 0x0000FFFF : S1
0x00010000 ~ 0x00FFFFFF : S2
0x01000000 ~ 0xFFFFFFFF : S3
December 1, 2014, CM71-00327-9
289
第 15 章 ロードモジュールコンバータ (f2ms, f2hs, f2is, f2es)
Su pp or t
15.5
So ft
Manu al
f2hs( 絶対形式ロードモジュール→ HEX フォーマット
変換 )
リンカ出力の絶対形式ロードモジュールを HEX フォーマットに形式変換します。
0 ~ 0xFFFFFFFF 番地のデータが変換対象になります。
f2hs コマンドは , SOFTUNE V3/V5 系の絶対形式ロードモジュールも処理できます。
■ f2hs( 絶対形式ロードモジュール→ HEX フォーマット変換 )
【機能】
f2hsコマンドは, リンカ出力の絶対形式ロードモジュールからオブジェクトデータ部を
読み込み , HEX フォーマットファイルに形式変換します。
図 15.5-1 f2hs( 絶対形式ロードモジュール→ HEX フォーマット変換 )
絶対形式
ロードモジュール
f2hs
(.abs)
HEXフォーマット
(.hex)
【アドレス】
HEX フォーマットで表現できるアドレスの最大値を示します。
HEX8
0xFFFF
HEX16
0xFFFFF
HEX32
0xFFFFFFFF
リンカ出力の絶対形式ロードモジュールは , 0 ~ 0xFFFFFFFF の範囲のアドレスを表せ
ます。
HEX フォーマットも同様のアドレス範囲をサポートしていますので , データの欠落な
くコンバートを行うことができます。
f2hs は , 入力データの割り付けアドレスに応じて , 以下の形式で出力します。
0x00000000 ~ 0x0000FFFF : HEX8
0x00010000 ~ 0x000FFFFF : HEX16
0x00100000 ~ 0xFFFFFFFF : HEX32
290
CM71-00327-9, December 1, 2014
第 15 章 ロードモジュールコンバータ (f2ms, f2hs, f2is, f2es)
Support
15.6
Soft
Ma nual
f2is( 絶対形式ロードモジュール→ HEX8 フォーマット
変換 ), f2es( 絶対形式ロードモジュール→ HEX16
フォーマット変換 )
f2is はリンカ出力の絶対形式ロードモジュールを HEX8 フォーマットに , f2es はリ
ンカ出力の絶対形式ロードモジュールを HEX16 フォーマットに変換します。
f2is では 0 ~ 0xFFFF 番地のデータが変換対象に , f2es では 0 ~ 0xFFFFF 番地の
データが変換対象になります。
f2is, f2es コマンドは , SOFTUNE V3/V5 系の絶対形式ロードモジュールも処理でき
ます。
f2is, f2es は , 旧版との互換性維持のためリンケージキットに含まれています。
HEX フォーマットへの変換には f2hs を使用されることを推奨いたします。
■ f2is( 絶対形式ロードモジュール→ HEX8 フォーマット変換 )
【機能】
f2is コマンドは , リンカ出力の絶対形式ロードモジュールからオブジェクトデータ部を
読み込み , HEX8 フォーマットファイルに形式変換します。
図 15.6-1 f2is( 絶対形式ロードモジュール→ HEX8 フォーマット変換 )
絶対形式
ロードモジュール
(.abs)
f2is
HEX8フォーマット
(.ihx)
【説明】
f2is では「第 14 章 オブジェクト形式 コンバータの共通オプション」で示す共通オプ
ションが使用可能です。
【アドレス】
HEX8 フォーマットで表現できるアドレスの最大値は , 0xFFFF です。
<注意事項>
リンカ出力の絶対形式ロードモジュールは , 0 ~ 0xFFFFFFFF のアドレスを表せますが ,
HEX8 フォーマットへコンバートすると 0x10000 以上のアドレスに割り付けられたデー
タは切捨てられます。
コンバート元のアドレス範囲に気をつけて使用してください。
HEX8 フォーマットファイルは , データレコードとトレーラレコードで構成されます。
December 1, 2014, CM71-00327-9
291
第 15 章 ロードモジュールコンバータ (f2ms, f2hs, f2is, f2es)
Su pp or t
So ft
Manu al
■ f2es( 絶対形式ロードモジュール→ HEX16 フォーマット変換 )
【機能】
f2esコマンドは, リンカ出力の絶対形式ロードモジュールからオブジェクトデータ部を
読み込み , HEX16 フォーマットファイルに形式変換します。
図 15.6-2 f2es( 絶対形式ロードモジュール→ HEX16 フォーマット変換 )
絶対形式
ロードモジュール
(.abs)
f2es
HEX16フォーマット
(.ehx)
【説明】
f2es では「第 14 章 オブジェクト形式 コンバータの共通オプション」で示す共通オプ
ションが使用可能です。
【アドレス】
HEX16 フォーマットで表現できるアドレスの最大値は , 0xFFFFF です。
<注意事項>
リンカ出力の絶対形式ロードモジュールは , 0 ~ 0xFFFFFFFF のアドレスを表せますが ,
HEX16フォーマットへコンバートすると0x100000以上のアドレスに割り付けられたデー
タは切捨てられます。
コンバート元のアドレス範囲に気をつけて使用してください。
HEX16 フォーマットでは , 0x10000 以上のアドレスを表現するために拡張セグメントア
ドレスレコードを使用します。
ファイル中の拡張セグメントアドレスレコードは , 次の拡張セグメントアドレスレコード
が現れるまで有効です。拡張セグメントアドレスレコードなしにデータが現れたときに
は , 拡張セグメントアドレス指定が 0 であったとしてアドレス計算を行います。
HEX16 フォーマットのファイルの先頭には , スタートアドレスレコードが作成されます。
292
CM71-00327-9, December 1, 2014
Support
Soft
Ma nual
第 16 章
フォーマットアジャスタ
(m2ms, h2hs)
この章では , フォーマットアジャスタについて説明
します。
16.1 フォーマットアジャスタの概要
16.2 フォーマットアジャスタのオプション一覧
16.3 フォーマットアジャスタのオプション詳細
December 1, 2014, CM71-00327-9
293
第 16 章 フォーマットアジャスタ (m2ms, h2hs)
Su pp or t
16.1
So ft
Manu al
フォーマットアジャスタの概要
フォーマットアジャスタは , S フォーマットや HEX フォーマットで作成したデータ
をアドレス昇順に並び替え , 1 レコードに含むデータの数を指定した値に揃える働き
をします。
■ フォーマットアジャスタの概要
フォーマットアジャスタは, フォーマットのファイル1レコードに含むデータの数を指
定の値に揃え , 形式を整えます。図 16.1-1 にフォーマットアジャスタの概念図を示し
ます。
図 16.1-1 フォーマットアジャスタの概要
Sフォーマット
ファイル
m2ms
(.ahx)
(.mhx)
HEXフォーマット
ファイル
(.hex)
整形済み
Sフォーマット
ファイル
h2hs
整形済み
HEXフォーマット
ファイル
(.aix)
入力するフォーマット中にデータが存在しない箇所は , 0xFF ( デフォルト値 ) で埋めら
れます。
出力するファイルはメモリ内容をそのまま S フォーマットや HEX フォーマットに変換
したものと同じです。
入力ファイル中にデータが存在しない箇所を特定の値で埋めるには , パディングオプ
ション (-p オプション ) を用います。オプションの使用方法については , 「14.3 パディ
ング (-p) 」をご参照ください。
294
CM71-00327-9, December 1, 2014
第 16 章 フォーマットアジャスタ (m2ms, h2hs)
Support
Soft
Ma nual
■ 動作例
本ツールは, 以下のように作成したフォーマットファイルの1レコードあたりのデータ
長が一定でないような場合に , 1 レコードに含むデータ長を統一できます。
図 16.1-2 フォーマットアジャスタの動作例
変換前
S007000054455354B8
S20CFF00000109572C160C2D2CEC
S209FF0008020406080AD1
S20FFF000D020406080A0C0E1012141660
S20CFF00180109572C160C2D2CD4
S209FF0020020406080AB9
S20FFF0025020406080A0C0E1012141648
S20CFF00300109572C160C2D2CBC
S209FF0038020406080AA1
S20FFF003D020406080A0C0E1012141630
S20CFF00480109572C160C2D2CA4
S209FF0050020406080A89
S20FFF0055020406080A0C0E1012141618
S804000000FB S007000054455354B8
S31500FF00000109572C160C2D2C020406080A020406B9
S31500FF0010080A0C0E101214160109572C160C2D2C5B
S31500FF0020020406080A020406080A0C0E1012141629
S31500FF00300109572C160C2D2C020406080A02040689
S31500FF0040080A0C0E101214160109572C160C2D2C2B
S31500FF0050020406080A020406080A0C0E10121416F9
変換後
■ フォーマットアジャスタの機能
フォーマットアジャスタには以下の機能があります。
• データをアドレス昇順に並び替えます。
• 指定したアドレス範囲内にデータの欠落がある場合 , そこの部分は起動時に指定し
たデータを埋め込みます ( デフォルト値は 0xff) 。
• レコードの開始アドレスは , 起動時に指定した出力データ長で整合をとった値を使
用します。
出力指定の開始アドレスが , 起動時のデータ長の指定値の倍数でない場合
( レコード内データ長が 16 バイトで開始アドレスが 16 の倍数と異なるような場合 )
- 出力情報の最初に表れるレコードは , 指定開始アドレスからデータ長の指定値で
整合を取ったアドレスまでのデータを格納します。
- 2 番目以降のレコード開始アドレスが , 指定長で整合を取ったアドレスとなりま
す。
• 入力するフォーマット情報中に , 複数のエントリアドレスが存在する場合 , 最後に
表れたエントリアドレスを変換して出力します。それ以外のエントリアドレスは無
視されます。
• 変換元データに設定してあるエントリアドレスの値が , 変換後のデータのアドレス
範囲に含まれない場合 , 変換後のターミネータレコードには 0 を設定します。
December 1, 2014, CM71-00327-9
295
第 16 章 フォーマットアジャスタ (m2ms, h2hs)
Su pp or t
So ft
Manu al
図 16.1-3 にアドレス範囲 0xff0008 ~ 0xff004a を , レコード長 16 で変換した例を示しま
す。
図 16.1-3 フォーマットアジャスタの変換例
変換前
S007000054455354B8
S20CFF00000109572C160C2D2CEC
S209FF0008020406080AD1
S20FFF000D020406080A0C0E1012141660
S20CFF00180109572C160C2D2CD4
S209FF0020020406080AB9
S20FFF0025020406080A0C0E1012141648
S20CFF00300109572C160C2D2CBC
S209FF0038020406080AA1
S20FFF003D020406080A0C0E1012141630
S20CFF0048010957 2C160C2D2CA4
S209FF0050020406080A89
S20FFF0055020406080A0C0E1012141618
S804000000FB S007000054455354B8
S30D00FF0008020406080A020406C1
S31500FF0010080A0C0E101214160109572C160C2D2C5B
S31500FF0020020406080A020406080A0C0E1012141629
S31500FF00300109572C160C2D2C020406080A02040689
S31500FF0040080A0C0E10121416010957D7
S70500000000FA
変換後
296
CM71-00327-9, December 1, 2014
第 16 章 フォーマットアジャスタ (m2ms, h2hs)
Support
16.2
Soft
Ma nual
フォーマットアジャスタのオプション一覧
ここでは , フォーマットアジャスタのオプション名と , 機能概要を一覧で示します。
■ フォーマットアジャスタのオプション一覧
表 16.2-1 に , フォーマットアジャスタのオプション一覧を示します。
表 16.2-1 フォーマットアジャスタのオプション一覧
機能
オプション
備考
出力ファイル名の変更
-o
*コンバータ共通オプション
パディングデータ指定
-p
*コンバータ共通オプション
出力データ長指定
-len
デフォルト 16
出力範囲指定
-ran
必須
S1 フォーマット出力指定
-S1
m2ms のみ
S2 フォーマット出力指定
-S2
m2ms のみ
S3 フォーマット出力指定
-S3
m2ms のみ
HEX8 フォーマット出力指定
-I16
h2hs のみ
HEX16 フォーマット出力指定
-I20
h2hs のみ
HEX32 フォーマット出力指定
-I32
h2hs のみ
開始アドレス変更指定
-ST
デフォルトオプションファイル読み込み抑止指定
-Xdof
* 共通オプション
オプションファイル読み込み指定
-f
* 共通オプション
ヘルプメッセージ表示指定
-help
* 共通オプション
版数 / メッセージ出力指定
-V
* 共通オプション
版数 / メッセージ出力抑止
-XV
* 共通オプション
終了メッセージ表示指定
-cmsg
* 共通オプション
終了メッセージ表示抑止指定
-Xcmsg
* 共通オプション
ワーニング発生時の終了コードを 1 にする指定
-cwno
* 共通オプション
ワーニング発生時の終了コードを 0 にする指定
-Xcwno
* 共通オプション
December 1, 2014, CM71-00327-9
297
第 16 章 フォーマットアジャスタ (m2ms, h2hs)
Su pp or t
16.3
So ft
Manu al
フォーマットアジャスタのオプション詳細
ここでは , フォーマットアジャスタの各オプションについて説明します。
なお , リンケージキットで共通のオプションは「第 3 章 共通オプション」で , コン
バータで共通のオプションは「第 14 章 オブジェクト形式 コンバータの共通オプ
ション」で , 説明しています。
■ 出力レコード内データ長指定 (-len)
データ長の指定です。詳細は「16.3.1 出力レコード内データ長指定 (-len) 」の説明を参
照してください。
■ 出力範囲指定 (-ran)
フォーマットの整形を行う範囲の指定です。詳細は「16.3.2 出力範囲指定 (-ran) 」の
説明を参照してください。
■ 出力 S フォーマット指定 (-S1/-S2/-S3)
m2ms で S フォーマットで出力する際に使用するレコードを指定します。詳細は「16.3.3
出力 S フォーマット指定 (-S1/-S2/-S3) 」の説明を参照してください。
■ 出力 HEX フォーマット指定 (-I16/-I20/-I32)
h2hs で HEX フォーマットで出力する際に使用するレコードを指定します。詳細は
「16.3.4 出力 HEX フォーマット指定 (-I16/-I20/-I32) 」の説明を参照してください。
■ レコード開始アドレス変更指定 (-ST)
S フォーマットで出力する際に使用する S レコードの開始アドレスを変更します。詳
細は「16.3.5 開始アドレス変更指定 (-ST) 」の説明を参照してください。
298
CM71-00327-9, December 1, 2014
第 16 章 フォーマットアジャスタ (m2ms, h2hs)
Support
16.3.1
Soft
Ma nual
出力レコード内データ長指定 (-len)
出力するフォーマットの 1 レコードに出力するデータの数を指定します。
■ 出力レコード内データ長指定 (-len)
【記述形式】
-len
<データ長>
【パラメータ】
<データ長>
16/32/64/128 の 4 種類から選択します。
【説明】
フォーマットを整形する際の , 1 レコードに出力するデータのバイト数を指定します。
データ長は , 16/32/64/128 の 4 種類が指定できます。
当オプションの指定を省略した場合 , 16 が指定されたものと仮定して処理します。
【注意】
本指定は1レコード内に含むデータのバイト数を指定するものであり, レコード長自体
を指定するものではありません。
【例】
m2ms sfmtfile.mhx -len 32
sfmtfile.mhx を整形し , 1 レコードあたり 32 バイトのデータを出力します。
m2ms sfmtfile.mhx
(-len 指定を省略した例 )
sfmtfile.mhx を整形し , 1 レコードあたり 16 バイトのデータを出力します。
m2ms sfmtfile.mhx -len 96
指定可能範囲外のデータ長が指示されたため , エラーとなります。
m2ms sfmtfile.mhx -len
( パラメータをすべて省略した例 )
データ長の指定が省略されているのでエラーになります。
December 1, 2014, CM71-00327-9
299
第 16 章 フォーマットアジャスタ (m2ms, h2hs)
Su pp or t
16.3.2
So ft
Manu al
出力範囲指定 (-ran)
整形する範囲をアドレスで指定します。
■ 出力範囲指定 (-ran)
【記述形式】
-ran
<開始アドレス> [, <終了アドレス> ]
【パラメータ】
<開始アドレス>
開始アドレス
<終了アドレス>
終了アドレス
【説明】
整形する範囲をアドレスで指定します。
コンバート実行時は , 当オプションの指定が必ず必要です。
開始アドレス , 終了アドレスは , 0x0 ~ 0xffffffff の範囲で指定します。
終了アドレスの指定は省略できます。終了アドレスを省略した場合 , 開始アドレスから
64K バイト分を整形します。
変換サイズが 2G バイト以上になるような値は指定できません。
【例】
m2ms sfmtfile.mhx
(-ran オプションを使用しない例 )
出力範囲が指定されていないのでエラーになります。
m2ms sfmtfile.mhx -ran 0xD000,0xFFFF
sfmtfile.mhx 中の 0xD000 ~ 0xFFFF 番地までのデータを整形します。
m2ms sfmtfile.mhx -ran 0xD000 ( 終了アドレスを省略した例 )
sfmfile.mhx 中の 0xD000 番地から 64K バイト分 (0x0D000 ~ 0x1CFFF) のデータを整形
します。
m2ms sfmtfile.mhx -ran 0xFFFF,0xD000
開始アドレスより低位なアドレスが終了アドレスとして指定されているためエラーに
なります。
m2ms sfmtfile.mhx -ran
( パラメータをすべて省略した例 )
開始アドレスが省略されているのでエラーになります。
300
CM71-00327-9, December 1, 2014
第 16 章 フォーマットアジャスタ (m2ms, h2hs)
Support
16.3.3
Soft
Ma nual
出力 S フォーマット指定 (-S1/-S2/-S3)
データを出力する際に使用するフォーマットを指定します。
S フォーマットアジャスタ (m2ms) のオプションです。
■ 出力 S フォーマット指定 (-S1/-S2/-S3)
【記述形式】
-S1
-S2
-S3
【パラメータ】
なし
【説明】
データ内容を出力する際に使用するレコードを指定します。
S フォーマットアジャスタは , データ内容を S1 レコード , S2 レコード , S3 レコードの
どれか 1 つを用いて出力します。
S1 レコードと S2 レコードの両方を用いて出力を行うようなことはありません。
-S1, -S2, -S3 の指定は後指定が有効になります。また , -S1, -S2, -S3 のオプションが指定
されない場合 , S フォーマットアジャスタはデータ内容を S3 レコードで出力します。
<注意事項>
本オプションによる指定と , 出力範囲が矛盾する場合 , S フォーマットアジャスタはエ
ラーを出力し処理を行いません。
本オプションの指定により , 出力に使用するターミネータレコード (S9 レコード , S8 レ
コード , S7 レコード ) も変化します ( 表 16.3-1 参照 ) 。
表 16.3-1 出力レコード指定一覧
指定
出力可能範囲
ターミネータレコード
-S1
0x0000 ~ 0xFFFF
S9 レコード
-S2
0x000000 ~ 0xFFFFFF
S8 レコード
-S3
0x00000000 ~ 0xFFFFFFFF
S7 レコード
December 1, 2014, CM71-00327-9
備考
( デフォルト )
301
第 16 章 フォーマットアジャスタ (m2ms, h2hs)
Su pp or t
So ft
Manu al
【例】
m2ms sfmtfile.mhx -ran 0xD000,0x10000 -S1
出力範囲が , S1 レコードで表現できない 0x10000 までのためエラーになります。
m2ms sfmtfile.mhx -ran 0xE000,0xFFFF -S1
0xE000 ~ 0xFFFF の内容が S1 レコードを用いて整形出力されます。
m2ms sfmtfile.mhx -ran 0xE000,0xFFFF -S2
0xE000 ~ 0xFFFF の内容が S2 レコードを用いて整形出力されます。
m2ms sfmtfile.mhx -ran 0xE000,0xFFFF -S3
0xE000 ~ 0xFFFF の内容が S3 レコードを用いて整形出力されます。
302
CM71-00327-9, December 1, 2014
第 16 章 フォーマットアジャスタ (m2ms, h2hs)
Support
16.3.4
Soft
Ma nual
出力 HEX フォーマット指定 (-I16/-I20/-I32)
データを出力する際に使用する HEX フォーマットを指定します。
HEX フォーマットアジャスタ (h2hs) のオプションです。
■ 出力 HEX フォーマット指定 (-I16/-I20/-I32)
【記述形式】
-I16
-I20
-I32
【パラメータ】
なし
【説明】
データ内容を出力する際に使用するレコードを指定します。
HEX フォーマットアジャスタは , データ内容を HEX8フォーマット , HEX16 フォーマッ
ト , HEX32 フォーマットのどれか 1 つを用いて出力します。
-I16, -I20, -I32 の指定は後指定が有効になります。
また , -I16, -I20, -I32 のオプションが指定されない場合 , HEX フォーマットアジャスタ
はデータ内容を HEX32 フォーマットで出力します。
<注意事項>
本オプションによる指定と , 出力範囲が矛盾する場合 , HEX フォーマットアジャスタはエ
ラーを出力し処理を行いません。
【例】
h2hs hfmtfile.hex -ran 0xD000,0x10000 -I16
出力範囲が , HEX8 で表現できない 0x10000 までのためエラーになります。
h2hs hfmtfile.hex -ran 0xE000,0xFFFF -I16
0xE000 ~ 0xFFFF の内容が HEX8 フォーマットを用いて整形出力されます。
h2hs hfmtfile.hex -ran 0xE000,0xFFFF -I20
0xE000 ~ 0xFFFF の内容が HEX16 フォーマットを用いて整形出力されます。
h2hs hfmtfile.hex -ran 0xE000,0xFFFF -I32
0xE000 ~ 0xFFFF の内容が HEX32 フォーマットを用いて整形出力されます。
December 1, 2014, CM71-00327-9
303
第 16 章 フォーマットアジャスタ (m2ms, h2hs)
Su pp or t
16.3.5
So ft
Manu al
開始アドレス変更指定 (-ST)
データ内容を出力する際に使用する開始アドレスを指定します。
データのアドレスを変更する場合に使用します。
■ 開始アドレス変更指定 (-ST)
【記述形式】
<開始アドレス>
-ST
【パラメータ】
<開始アドレス>
開始アドレス
【説明】
データ内容を出力する際に使用する開始アドレスを指定します。
フォーマットアジャスタは , 通常出力範囲指定 (-ran) で指定された開始アドレスを用い
て開始アドレスの決定を行います。
本オプションが指定されると , 出力する際に開始アドレスの変更を行います。
【例】
m2ms sfmtfile.mhx -ran 0xD000,0xFFFF -ST 0x0000
sfmtfile.mhx 中の 0xD000 ~ 0xFFFF 番地までのデータを整形し , 0x0000 番地からのデー
タとして出力します。
m2ms sfmtfile.mhx -ran 0xD000,0xFFFF -ST 0x10000
sfmtfile.mhx 中の 0xD000 ~ 0xFFFF 番地までのデータを整形し , 0x10000 番地からの
データとして出力します。
m2ms sfmtfile.mhx -ran 0xD000,0xFFFF -ST ( パラメータを省略した例 )
開始アドレスが省略されているのでエラーになります。
304
CM71-00327-9, December 1, 2014
Support
Soft
Ma nual
第 17 章
バイナリコンバータ
(m2bs, h2bs)
この章では , バイナリコンバータの変換形式を説明
します。
17.1 バイナリコンバータの概要
17.2 バイナリコンバータのオプション一覧
17.3 バイナリコンバータのオプション詳細
December 1, 2014, CM71-00327-9
305
第 17 章 バイナリコンバータ (m2bs, h2bs)
Su pp or t
17.1
So ft
Manu al
バイナリコンバータの概要
バイナリコンバータは , S フォーマットまたは HEX フォーマットで出力されたファ
イルをバイナリデータファイルへ変換するコンバータです。
単にバイナリデータへ変換するだけでなく複数のファイルへ分割して出力するスプ
リットモードなどをサポートしています。
■ バイナリコンバータの概要
バイナリコンバータは , リンケージキットで作成された S フォーマットや HEX フォー
マットのオブジェクトファイルをバイナリデータ (メモリイメージ) へ変換しファイル
へ出力します。
S フォーマットをバイナリデータに変換するには m2bs を用い , HEX フォーマットをバ
イナリデータに変換するには h2bs を用います。
入力ファイル (S フォーマットファイルまたは HEX フォーマット ) は複数個指定する
ことが可能です。また , 変換後のバイナリデータを , 指定バイトごとに複数のファイル
に分割して出力すること ( 以降 , スプリットモードと よびます ) も可能です。
図 17.1-1 バイナリコンバータの概要
Sフォーマット
ファイル
m2bs
(.bin)
(.mhx)
HEXフォーマット
ファイル
(.hex)
バイナリデータ
ファイル
h2bs
バイナリデータ
ファイル
(.bin)
<注意事項>
入力ファイル中にデータが存在しない箇所は , 0xFF ( デフォルト値 ) で埋められ , 出力さ
れるバイナリデータファイルはメモリ内容をそのままファイルへ出力したものと同じで
す。
入力ファイル中にデータが存在しない箇所を特定の値で埋めるには , パディングオプショ
ン (-p) を用います。オプションの使用方法については , 「14.3 パディング (-p) 」を参照
してください。
出力バイナリファイルのデフォルト拡張子は , .bin です。なお , スプリットモード使用時
は無条件に拡張子 .bxx (xx は 2 桁の番号 (01 ~ 16) ) が付加されます。
306
CM71-00327-9, December 1, 2014
第 17 章 バイナリコンバータ (m2bs, h2bs)
Support
Soft
Ma nual
■ スプリットモードの概要
スプリットモードとは , バイナリコンバータにより変換されたメモリイメージを指定
バイトごとに複数のバイナリデータファイルへ出力することを示します。
図 17.1-2 にスプリットモードの概略図を示します。図 17.1-2 では 2 つのファイルに 1
バイトごと交互に出力していますが , スプリットモードでは , 最大 16 個のファイルに
指定バイトごとに交互に出力することが可能です。
スプリットモードを使用するには , -sp オプションを用いて行います。-sp オプションの
使用方法については , 「17.3.2 スプリットモード指定 (-sp) 」を参照してください。
図 17.1-2 スプリットモードの概要
入力ファイル
バイナリコンバータ
メモリイメージ変換
0x00
0x01
0x08
0x09
0x02
0x03
0x04
バイナリデータ
ファイル1
0x05
0x06
0x07
バイナリデータ
ファイル2
バイナリデータファイル1の内容
0x00
0x02
0x04
0x06
0x08
バイナリデータファイル2の内容
0x01
December 1, 2014, CM71-00327-9
0x03
0x05
0x07
0x09
307
第 17 章 バイナリコンバータ (m2bs, h2bs)
Su pp or t
17.2
So ft
Manu al
バイナリコンバータのオプション一覧
ここでは , バイナリコンバータのオプション名と , 機能概要を一覧で示します。
■ バイナリコンバータのオプション一覧
表 17.2-1 に , バイナリコンバータのオプション一覧を示します。
表 17.2-1 バイナリコンバータのオプション一覧
機能
オプション
備考
出力ファイル名の変更
-o
*コンバータ共通オプション
パディングデータ指定
-p
*コンバータ共通オプション
出力範囲指定
-ran
スプリットモード指定
-sp
スプリットモード抑止指定
マップリストファイル作成指定
-Xsp
-m
マップリストファイル作成抑止指定
-Xm
デフォルトオプションファイル読込み抑止指定
-Xdof
* 共通オプション
-f
* 共通オプション
ヘルプメッセージ表示指定
-help
* 共通オプション
版数 / メッセージ出力指定
-V
* 共通オプション
版数 / メッセージ出力抑止
-XV
* 共通オプション
-cmsg
* 共通オプション
-Xcmsg
* 共通オプション
ワーニング発生時の終了コードを 1 にする指定
-cwno
* 共通オプション
ワーニング発生時の終了コードを 0 にする指定
-Xcwno
* 共通オプション
オプションファイル読込み指定
終了メッセージ表示指定
終了メッセージ表示抑止指定
308
必須
CM71-00327-9, December 1, 2014
第 17 章 バイナリコンバータ (m2bs, h2bs)
Support
17.3
Soft
Ma nual
バイナリコンバータのオプション詳細
ここでは , バイナリコンバータの各オプションについて説明します。
なお , リンケージキットで共通のオプションは「第 3 章 共通オプション」で , コン
バータで共通のオプションは「第 14 章 オブジェクト形式 コンバータの共通オプ
ション」で , 説明しています。
■ 出力範囲指定 (-ran)
SフォーマットやHEXフォーマットからバイナリイメージへ変換する範囲の指定です。
詳細は「17.3.1 出力範囲指定 (-ran) 」の説明を参照してください。
■ スプリットモード指定 (-sp)
バイナリイメージをスプリットモードで出力する場合に指定します。詳細は「17.3.2 ス
プリットモード指定 (-sp) 」の説明を参照してください。
■ スプリットモード抑止指定 (-Xsp)
スプリットモード指定 (-sp) を無効にするための指定です。詳細は「17.3.3 スプリット
モード抑止指定 (-Xsp) 」の説明を参照してください。
■ マップリストファイルの作成指定 (-m)
コンバート時の情報をマップリストファイルに出力する場合に指定します。詳細は
「17.3.4 マップリストファイルの作成指定 (-m) 」の説明を参照してください。
■ マップリストファイルの作成抑止指定 (-Xm)
マップリストファイルの作成指定 (-m) を無効にするための指定です。詳細は「17.3.5
マップリストファイルの作成抑止指定 (-Xm) 」の説明を参照してください。
December 1, 2014, CM71-00327-9
309
第 17 章 バイナリコンバータ (m2bs, h2bs)
Su pp or t
17.3.1
So ft
Manu al
出力範囲指定 (-ran)
バイナリイメージへ変換する範囲をアドレスで指定します。
バイナリコンバータは本オプションの指定が必ず必要です。
■ 出力範囲指定 (-ran)
【記述形式】
-ran
<開始アドレス> [, <終了アドレス> ]
【パラメータ】
<開始アドレス>
開始アドレス
<終了アドレス>
終了アドレス
【説明】
バイナリイメージへ変換する範囲をアドレスで指定します。
コンバート実行時は , 本オプションの指定が必ず必要です。
開始アドレス , 終了アドレスは , 0x0 ~ 0xFFFFFFFF の範囲で指定します。
終了アドレスの指定は省略できます。終了アドレスを省略した場合 , 開始アドレスから
64K バイト分がバイナリに変換されます。
変換サイズが 2G バイト以上になるような値は指定できません。
【例 1】
m2bs sfmtfile.mhx
(-ran オプションを使用しない例 )
出力範囲が指定されていないのでエラーになります。
【例 2】
m2bs sfmtfile.mhx -ran 0xD000,0xFFFF
sfmtfile.mhx 中の 0xD000 ~ 0xFFFF 番地までのデータを抜き出してバイナリイメージ
ファイルにします。
【例 3】
m2bs sfmtfile.mhx -ran 0xD000 ( 終了アドレスを省略した例 )
sfmfile.mhx 中の 0xD000 番地から 64K バイト分 (0x0D000 ~ 0x1CFFF) のデータを抜き
出してバイナリイメージファイルにします。
【例 4】
m2bs sfmtfile.mhx -ran 0xFFFF,0xD000
開始アドレスより低位なアドレスが終了アドレスとして指定されているためエラーに
なります。
【例 5】
m2bs sfmtfile.mhx -ran
( パラメータをすべて省略した例 )
開始アドレスが省略されているのでエラーになります。
310
CM71-00327-9, December 1, 2014
第 17 章 バイナリコンバータ (m2bs, h2bs)
Support
17.3.2
Soft
Ma nual
スプリットモード指定 (-sp)
バイナリイメージをスプリットモードで出力する場合に指定します。
■ スプリットモード指定 (-sp)
【記述形式】
<出力ファイル数> [, <バイト数> ]
-sp
【パラメータ】
<出力ファイル数>
出力先ファイルを幾つに分割するかを指定します。2 ~ 16 の間で指定が可能です。
<バイト数>
スプリットの単位をバイト数で指定します。0x01 ~ 0xFFFFFFFF の間で指定が可能で
す。
【説明】
本オプションは , 複数のファイルに交互にデータを出力するオプションです。例えば ,
32 ビット単位のデータをデータ幅が 16 ビットの ROM2 個を用いて構成するので , 2 つ
のファイルに 2 バイトごと交互にデータを出力したい場合などに用います。
< バイト数 > には , 出力ファイルのうち 1 つでも 0 バイト出力になるような値は指定で
きません。
< バイト数 > は省略が可能です。省略された場合 , スプリット単位はデフォルトで 1 バ
イトに設定されます。
本オプションを使用すれば , 64K バイトの範囲を 32K バイトごとの 2 つのバイナリイ
メージファイルにすることも可能です。ただし , 本オプションは , あくまで複数のファ
イルに , データを交互に出力するためのものです。64K バイトの範囲を 32K バイトご
との 2 つに分割するようにパラメータ指定を行うと , 最後の 1K バイトは前半のファイ
ルに出力されます。
本オプションを指定すると出力ファイルに拡張子として ".bxx" (xx は 2 桁の番号 01 ~
16) が無条件に付加されます。
【例 1】
m2bs sfmtfile.mhx (-sp オプションを使用しない例 )
sfmtfile.bin にバイナリイメージが出力されます。
【例 2】
m2bs sfmtfile.mhx -sp 2
sfmtfile.b01 と sfmtfile.b02 に 1 バイトごと交互にバイナリイメージが出力されます。
【例 3】
m2bs sfmtfile.mhx -sp 2,2
sfmtfile.b01 と sfmtfile.b02 に 2 バイトごと交互にバイナリイメージが出力されます。
December 1, 2014, CM71-00327-9
311
第 17 章 バイナリコンバータ (m2bs, h2bs)
Su pp or t
17.3.3
So ft
Manu al
スプリットモード抑止指定 (-Xsp)
-Xsp オプションは , スプリットモード指定 (-sp) を無効にします。
■ スプリットモード抑止指定 (-Xsp)
【記述形式】
-Xsp
【パラメータ】
なし
【説明】
本オプションは , -sp 指定を無効にする場合に指定します。
本オプションはデフォルトですので特に指定する必要はありません。
【例】
m2bs ccp903.mhx -ran 0xE000,0xFFFF
m2bs cpp903.mhx -Xsp -ran 0xE000,0xFFFF
デフォルト処理では , スプリットモードでは動作しません。
上記指定はどちらも同じです。
m2bs -f option.file ccp903 -Xsp
オプションファイルを利用した実行時 , オプションファイル内の指定を一時的に変更
したい場合があります。
option.file 内に -sp オプションがある場合 , option.file の内容を変更せずコマンドライン
上で -Xsp オプション指定を行えば -sp オプションを取り消すことができます。
312
CM71-00327-9, December 1, 2014
第 17 章 バイナリコンバータ (m2bs, h2bs)
Support
17.3.4
Soft
Ma nual
マップリストファイルの作成指定 (-m)
コンバート時の情報をマップリストファイルに出力します。
■ マップリストファイルの作成指定 (-m)
【記述形式】
-m
<マップリストファイル名>
【パラメータ】
<マップリストファイル名>
出力マップリストファイル名
【説明】
コンバート時の情報をマップリストファイルに出力します。
マップリストファイルには , コンバート時の情報が出力されます。出力される情報には
以下があります。項目 4) は -sp オプションが指定された場合にのみ出力されます。
1) 入力ファイル名情報
2) 出力ファイル名情報
3) 出力範囲情報
4) スプリット単位情報
5) パディングデータ値情報
< マップリストファイル > の拡張子を省略した場合 , デフォルト拡張子 ".mp3" が付加
されます。
【例 1】
m2bs sfmtfile.mhx -ran 0x10000,0x1FFFF
(-m オプションの指定がない例 )
-m オプションの指定がないのでマップリストファイルの作成は行われません。
【例 2】
m2bs sfmtfile.mhx -ran 0x10000,0x1FFFF -m logfile
logfile.mp3 にコンバート時の情報が出力されます。
図 17.3-1 logfile.mp3 の内容例 1
Input file
Output file
Convert range
Padding data
December 1, 2014, CM71-00327-9
:sfmtfile.mhx
:sfmtfile.bin
:0x00010000 - 0x0001FFFF
:0xFF
313
第 17 章 バイナリコンバータ (m2bs, h2bs)
Su pp or t
So ft
Manu al
【例 3】
m2bs sfmtfile.mhx -ran 0x10000,0x1FFFF -m logfile -sp 2,2
logfile.mp3 にコンバート時の情報が出力されます。
図 17.3-2 logfile.mp3 の内容例 2
Input file
Output file
:sfmtfile.mhx
:sfmtfile.b01
:sfmtfile.b02
Convert range :0x00010000 - 0x0001FFFF
Split byte
:2
Padding data :0xFF
314
CM71-00327-9, December 1, 2014
第 17 章 バイナリコンバータ (m2bs, h2bs)
Support
17.3.5
Soft
Ma nual
マップリストファイルの作成抑止指定 (-Xm)
-Xm オプションは , マップリストファイルの作成を抑止します。
■ マップリストファイルの作成抑止指定 (-Xm)
【記述形式】
-Xm
【パラメータ】
なし
【説明】
本オプションは , -m 指定を無効にする場合に指定します。
本オプションはデフォルトですので特に指定する必要はありません。
【例 1】
m2bs ccp903.mhx -ran 0xE000,0xFFFF
m2bs ccp903.mhx -Xm -ran 0xE000,0xFFFF
デフォルト処理では , マップリストファイルを出力しません。
上記指定はどちらも同じです。
【例 2】
m2bs -f option.file ccp903 -Xm
オプションファイルを利用した実行時 , オプションファイル内の指定を一時的に変更
したい場合があります。
option.file 内に -m オプションがある場合 , option.file の内容を変更せずコマンドライン
上で -Xm オプション指定を行えば -m オプションを取り消すことができます。
December 1, 2014, CM71-00327-9
315
第 17 章 バイナリコンバータ (m2bs, h2bs)
Su pp or t
316
So ft
Manu al
CM71-00327-9, December 1, 2014
Support
Soft
Ma nual
第 18 章
その他のコンバータ
この章では , その他のコンバータの各コマンドを詳
しく説明します。
18.1 m2is(S フォーマット→ HEX8 フォーマット変換 )
18.2 m2es(S フォーマット→ HEX16 フォーマット変換 )
18.3 i2ms(HEX8 フォーマット→ S フォーマット変換 )
18.4 e2ms(HEX16 フォーマット→ S フォーマット変換 )
December 1, 2014, CM71-00327-9
317
第 18 章 その他のコンバータ
Su pp or t
18.1
So ft
Manu al
m2is(S フォーマット→ HEX8 フォーマット変換 )
S フォーマットを HEX8 フォーマットに形式変換します。
0 ~ 0xFFFF 番地のデータが変換対象になります。
■ m2is(S フォーマット→ HEX8 フォーマット変換 )
【機能】
m2isコマンドは, SフォーマットファイルからHEX8フォーマットへの変換を行います。
図 18.1-1 m2is(S フォーマット→ HEX8 フォーマット変換 )
Sフォーマット
ファイル
(.mhx)
m2is
HEX8フォーマット
ファイル
(.ihx)
<注意事項>
S フォーマットは , 0 ~ 0xFFFFFFFF のアドレスを表せますが , HEX8 フォーマットへコ
ンバートすると 0x10000 以上のアドレスに割り付けられたデータは切捨てられます。
コンバート元のアドレス範囲に気をつけて使用してください。
HEX8 フォーマットのファイルは , データレコードとトレーラレコードで構成されますの
で , S フォーマットのスタートアドレス情報は失われます。
318
CM71-00327-9, December 1, 2014
第 18 章 その他のコンバータ
Support
18.2
Soft
Ma nual
m2es(S フォーマット→ HEX16 フォーマット変換 )
S フォーマットを HEX16 フォーマットに形式変換します。
0 ~ 0xFFFFF 番地のデータが変換対象になります。
■ m2es(S フォーマット→ HEX16 フォーマット変換 )
【機能】
m2es コマンドは , S フォーマットファイルから HEX16 フォーマットへの変換を行いま
す。
図 18.2-1 m2es(S フォーマット→ HEX16 フォーマット変換 )
Sフォーマット
ファイル
(.mhx)
m2es
HEX16フォーマット
ファイル
(.ehx)
<注意事項>
S フォーマットは , 0 ~ 0xFFFFFFFF のアドレスを表せますが , HEX16 フォーマットへ
コンバートすると 0x100000 以上のアドレスに割り付けられたデータは切捨てられます。
コンバート元のアドレス範囲に気をつけて使用してください。
December 1, 2014, CM71-00327-9
319
第 18 章 その他のコンバータ
Su pp or t
18.3
So ft
Manu al
i2ms(HEX8 フォーマット→ S フォーマット変換 )
HEX8 フォーマットを S フォーマットに形式変換します。
0 ~ 0xFFFF 番地のデータが変換対象になります。
■ i2ms(HEX8 フォーマット→ S フォーマット変換 )
【機能】
i2msコマンドは, HEX8フォーマットからSフォーマットファイルへの変換を行います。
図 18.3-1 i2ms(HEX8 フォーマット→ S フォーマット変換 )
HEX8フォーマット
ファイル
(.ihx)
i2ms
Sフォーマット
ファイル
(.mhx)
<注意事項>
S フォーマットは , 0 ~ 0xFFFFFFFF のアドレスを表せますが , HEX8 フォーマットは
0x10000 以上のアドレスを表現できません。コンバート後の S フォーマットファイルは ,
S2, S3, S7, S8 タイプなしで作成されます。
HEX8 フォーマットはスタートアドレスの情報がありません。変換後スタートアドレスは
0 とします。
320
CM71-00327-9, December 1, 2014
第 18 章 その他のコンバータ
Support
18.4
Soft
Ma nual
e2ms(HEX16 フォーマット→ S フォーマット変換 )
HEX16 フォーマットを S フォーマットに形式変換します。
0 ~ 0xFFFFF 番地のデータが変換対象になります。
■ e2ms(HEX16 フォーマット→ S フォーマット変換 )
【機能】
e2ms コマンドは , HEX16 フォーマットから S フォーマットファイルへの変換を行いま
す。
図 18.4-1 e2ms(HEX16 フォーマット→ S フォーマット変換 )
HEX16フォーマット
ファイル
(.ehx)
e2ms
Sフォーマット
ファイル
(.mhx)
<注意事項>
S フォーマットは , 0 ~ 0xFFFFFFFF のアドレスを表せますが , HEX16 フォーマットは
0x100000 以上のアドレスを表現できません。コンバート後の S フォーマットファイルは ,
S7, S3 タイプなしで作成されます。
HEX16 フォーマットのスタートアドレス情報は , S9 または S8 タイプに設定されます。
December 1, 2014, CM71-00327-9
321
第 18 章 その他のコンバータ
Su pp or t
322
So ft
Manu al
CM71-00327-9, December 1, 2014
Support
Soft
Ma nual
第 19 章
オブジェクト形式コンバータ
の制限事項および Q&A
この章では , オブジェクト形式コンバータの制限事
項や使用上の Q &A について述べます。
19.1 オブジェクト形式コンバータの制限事項
19.2 オブジェクト形式コンバータの使用上の Q&A
December 1, 2014, CM71-00327-9
323
第 19 章 オブジェクト形式コンバータの制限事項および Q&A
Su pp or t
19.1
So ft
Manu al
オブジェクト形式コンバータの制限事項
バイナリコンバータおよびアジャスタには , いくつかの制限があります。その他の
オブジェクト形式コンバータは使用する上で , 処理上の制限事項は設けておりませ
ん。オブジェクト形式コンバータが実行に使用できるメモリを使いきってしまうま
で処理可能です。
■ オブジェクト形式コンバータの制限事項
オブジェクト形式コンバータは , 表 19.1-1 に示す制限があります。
ただし , 最大限界値まで処理が可能なわけではありません。
オブジェクト形式コンバータは動的にメモリ獲得を行いながら処理を行います。
処理に必要なメモリ獲得ができなくなった場合には , メモリ不足のエラーメッセージ
を通知し , 処理を中断します。
表 19.1-1 オブジェクト形式コンバータの制限一覧
項目
制限値
備考
オプションファイル数
無制限
メモリ依存
オプションファイル内の行数
無制限
メモリ依存
オプションファイル内の 1 行の文字数
無制限
メモリ依存
オプションファイルのネスト
不可
入力ファイル数 (m2bs, m2ms, h2bs, h2hs)
64 個
入力ファイル数 ( 上記以外のコンバータ )
1個
入出力ファイルサイズ
無制限
OS 依存
入出力ファイル行数
無制限
OS 依存
ファイル名文字数
無制限
OS 依存
最大メモリアドレス
0xffffffff
最大変換サイズ (m2bs, m2ms, h2bs, h2hs)
2G バイト -1 バイト
メモリ依存
■ バイナリコンバータ , アジャスタの制限事項
入力ファイルは合計で 64 個まで指定できます。
入力ファイルが複数指定された場合 , 指定された順に処理します。
入力ファイル中で , 同じアドレスに対するデータが存在する場合は , 後から出てきた
データで上書きされます。
1 度に変換できるサイズは , 最大 2G バイト -1 バイトまでです。
324
CM71-00327-9, December 1, 2014
第 19 章 オブジェクト形式コンバータの制限事項および Q&A
Support
19.2
Soft
Ma nual
オブジェクト形式コンバータの使用上の Q&A
オブジェクト形式コンバータの使用に関する Question と Answer を示します。
■ オブジェクト形式コンバータの使用上の Q&A
Q.
多数のコンバータがありますが , どれを使用すれば良いのですか ?
A.
コンバータの使用目的は , リンカ出力の絶対形式ロードモジュールファイルを ROM ライ
タで読み込み可能なオブジェクト形式に変換することです。
32bit のアドレス空間に完全に対応しているのは f2ms と f2hs ですので , S フォーマットへ
変換の際は f2ms を , HEX フォーマットへ変換の際は f2hs の使用を推奨します。
その他のコンバートツールは , 必要に応じて御使用ください。
例
f2ms absfile.abs -> S フォーマット absfile.mhx 出力
Q.
バイナリコンバータやフォーマットアジャスタ使用時に , "F9001U: メモリが足りません "
とエラー出力され , 変換できません。どうすれば良いのですか ?
A.
バイナリコンバータやフォーマットアジャスタは , 動作時に変換する領域と同じサイズ
のメモリを確保します。このため , 1 度に広大な範囲をメモリイメージに変換しようとす
ると "F9001U: メモリが足りません " とエラー出力され処理が中断される可能性がありま
す。
この様な場合には , 変換したい領域を連続する複数の領域に分割し , それぞれのメモリイ
メージを作成後 , ファイルを連結して 1 つのバイナリイメージにしてください。
例
0xC00000 ~ 0xFFFFFF までのバイナリイメージ領域を変換する場合
・ 十分に使用メモリが確保できる場合 ( 通常 )
① m2bs absfile.mhx -ran 0xC00000,0xFFFFFF
・ "F9001U: メモリが足りません " とエラー出力された場合
① m2bs absfile.mhx -ran 0xC00000,0xDFFFFF -o absfile1.bin
② m2bs absfile.mhx -ran 0xE00000,0xFFFFFF -o absfile2.bin
③ copy /b absfile1.bin + absfile2.bin absfile.bin
December 1, 2014, CM71-00327-9
325
第 19 章 オブジェクト形式コンバータの制限事項および Q&A
Su pp or t
326
So ft
Manu al
CM71-00327-9, December 1, 2014
Support
Soft
Ma nual
付録
付録では , リンケージキットのエラーメッセージ ,
HEX フォーマット , および S フォーマット形式な
どを記載しています。
付録 A リンケージキットのエラーメッセージ
付録 B HEX フォーマット
付録 C S レコード形式
付録 D リンカのオプション一覧表
付録 E ライブラリアンのオプション一覧表
付録 F オブジェクト形式コンバータのコマンドおよびオプ
ション一覧表
付録 G OS による仕様の相違点
付録 H 主な変更内容
December 1, 2014, CM71-00327-9
327
付録 A リンケージキットのエラーメッセージ
Su pp or t
付録 A
So ft
Manu al
リンケージキットのエラーメッセージ
リンケージキットの各ツールが出力するエラーメッセージの分類と表示形式につい
て詳しく説明します。
■ リンケージキットのエラーメッセージ分類
エラーメッセージは , 重要度に応じて次の 4 つのレベルに分類されています。
● インフォメーション
処理を確認する目的で , ユーザにその内容を通知するものです。エラーではありません
ので , 正しい処理結果が得られています。
● 警告
エラーよりは軽微であり , 出力結果はほとんど問題なく使用できます。場合により ,
ユーザの意図と異なる処理が行われている可能性もあります。メッセージ内容を確認
した上で , 出力結果が使用可能か否かを判断してください。
● エラー
処理は実行しますが , 正しい結果は得られないレベルの問題が発生しています。エラー
の原因を取り除いて , 再実行する必要があります。
● 致命的エラー
処理の実行が不可能なエラーです。ユーザの誤指定が原因のほか , 実行環境の問題で発
生します。
328
CM71-00327-9, December 1, 2014
付録 A リンケージキットのエラーメッセージ
Support
Soft
Ma nual
■ リンケージキットのエラーメッセージの表示形式
エラーメッセージは , 各ツールとも図 A-1 に示す形式で出力します。
図 A-1 リンケージキットのエラーメッセージの表示形式
*** ファイル名(行番号) XnnnnT: メッセージ文(補助メッセージ)
各部
説明
ファイル名
( 行番号 )
エラーの発生したソースファイル名と , ソース行番号
この情報は , リンカの一部のメッセージでのみ出力されます。
X
エラーのレベルを次の 4 つの英字1文字で表します。
I … インフォメーション
E … エラー
W … 警告メッセージ
F … 致命的なエラー
nnnn
エラー番号
エラー番号と , エラーレベルは以下の対応関係があります。
0000 ~ 0999 … I
1000 ~ 1999 … W
4000 ~ 4999 … E
9000 ~ 9999 … F
T
ツール識別を次の英字1文字で表します。
L … リンカ
U … ライブラリアン , オブジェクト形式コンバータ
メッセージ文
エラーメッセージ本文 ( 日本語 / 英語の選択が可能 )
補助メッセージ
エラーについてのより詳細な情報
エラー発生原因となったシンボル名などを表示します。
エラーメッセージ本文中に出力されることもあります。
【例】
*** sample.c(234) E4329L: Value out of range (0xFFFE37D4)
ソースファイル名と行番号の表示も行われている例です。
*** E4402U: Duplicated module name (date.obj setdate)
ソースファイル名と行番号の表示が行われない例です。
*** F9001U: Insufficient memory
ソースファイル名と行番号および補助メッセージの表示は行われない例です。
December 1, 2014, CM71-00327-9
329
付録 A リンケージキットのエラーメッセージ
Su pp or t
So ft
Manu al
■ リンカのエラーメッセージ
I0301L
このライブラリは使用されませんでした ( ファイル名 )
Unused library ( ファイル名 )
リンク処理で使用されなかったライブラリがあります。
-w オプションで 2 を指定したときに通知されるメッセージです。
I0302L
デバッグ情報が存在しません ( ファイル名 )
Debug information not exist ( ファイル名 )
入力ファイルにデバッグ情報が含まれていません。
-w オプションで 2 を指定したときに通知されるメッセージです。
W1351 より軽微です。単にデバッグ情報が存在しないことを通知するだけです。
I0303L
デバッグ情報を取り除きました
Removed debug information
デバッグ情報を取り去って出力ファイルを作成しました。
-w オプションで 2 を指定したときに通知されるメッセージです。
I0304L
このファイルは警告レベルエラーを含んでいます ( ファイル名 )
File include WARNING level error ( ファイル名 )
ここで示されたファイルは , 以前のリンク時に警告メッセージがあったものです。
-w オプションで 2 を指定したときに通知されるメッセージです。
境界調整を無視しました
I0305L
Ignore address alignment
-pk オプションの指定により , リンク時にバウンダリ調整を無視して配置を行いまし
た。
-w オプションで 2 を指定したときに通知されるメッセージです。
I0306L
領域 " 領域名 " で , セクション最適化配置を行います
Section allocated automatically in " 領域名 " area
ここで示された領域でセクション最適化配置を行いました。
-w オプションで 2 を指定したときに通知されるメッセージです。
330
CM71-00327-9, December 1, 2014
付録 A リンケージキットのエラーメッセージ
Support
I0307L
Soft
Ma nual
下位互換 CPU タイプのオブジェクトです ( ファイル名 )
Lower compatible cpu type object ( ファイル名 )
ここで示されたファイルは , 下位互換性のある異なる CPU タイプのオブジェクトです。
詳細は「5.12 リンカでのオブジェクト混在」をご参照ください。
I0309L
Softune V3 のオブジェクトです ( ファイル名 )
Softune V3 type object ( ファイル名 )
ここで示されたファイルは , SOFTUNE V3 言語ツールで作成されたオブジェクトです。
-w オプションで 2 を指定したときに通知されるメッセージです。
I0310L
Softune V5 のオブジェクトです ( ファイル名 )
Softune V5 type object ( ファイル名 )
ここで示されたファイルは , SOFTUNE V5 言語ツールで作成されたオブジェクトです。
-w オプションで 2 を指定したときに通知されるメッセージです。
I0311L
値が範囲外です (-pw)
Specified value out of range (-pw)
pw オプションで , 70 ~ 79 の値が指定されました。リンカは桁数を 80 桁にします。
W1301L
ROM 領域に書き込み可能セクションが配置されました ( セクション名 )
Writable section located in ROM area ( セクション名 )
ROM 領域として設定したアドレス範囲に書き込み可能セクションを配置しました。
セクション配置指定を見直してください。
W1303L
RAM エリアに初期値のあるセクションが配置されました ( セクション名 )
Section with initial data located in RAM area ( セクション名 )
RAM 領域として設定したアドレス範囲に初期値を含むセクションを配置しました。
セクション配置指定を見直してください。
W1305L
ROM/RAM 領域 ( 領域名 ) の範囲外への配置がありました ( セクション名 )
Section ( セクション名 ) located on out of ROM/RAM area ( 領域名 )
-ro または -ra オプションで指定したアドレス範囲を超えて配置されたセクションがあ
ります。セクションマップで確認してください。
リンカのマップリストでは十分な情報が得られない場合は , セクション詳細マップリ
ストでより詳細な情報を知ることができます。
December 1, 2014, CM71-00327-9
331
付録 A リンケージキットのエラーメッセージ
Su pp or t
W1306L
So ft
Manu al
最大アドレスを超えました ( セクション名 )
Exceeded maximum address ( セクション名 )
最大アドレスを超えて配置されたセクションがあります。
W1307L
セクション名が重複しています ( セクション名 )
Duplicate section name exist ( セクション名 )
複数のモジュールに , 名前が同じで属性や型の異なるセクションが存在します。
W1308L
セクション配置が重複しています ( セクション 1, セクション 2)
Overlap located section ( セクション 1, セクション 2)
セクションが重複して配置されました。場合によってはプログラムの作動に支障を来
たしますので , 注意が必要です。
オプションで回避することを推奨します。
W1312L
互換性のない CPU タイプのモジュールがあります ( ファイル名 )
Uncompatible cpu type module( ファイル名 )
ここで示されるファイルは互換性のないモジュールです。
入力されるモジュールは , ターゲット CPU が同じか互換 CPU にして下さい。
本メッセージは , 以下の場合に出力されます。
• FR80 または FR81 用ロードモジュール作成時に FR 用のモジュールを入力した場合
警告の出力されたファイルについては,非互換の命令が使われていないことをご確認く
ださい。
詳細は「5.12 リンカでのオブジェクト混在」をご参照ください。
W1314L
絶対セクションに対して配置アドレスが指定されました ( セクション名 )
Specified address to absolute section ( セクション名 )
ここで示されるセクションは , 絶対番地があらかじめ決められていますので , セクショ
ンの再配置指定は無効です。
モード識別 モード時にはライブラリ検索を行いません
W1320L
Not search library at モード識別 mode
ライブラリ検索処理は , 絶対形式ロードモジュールを作成するとき以外行いません。
-r オプション指定時にはライブラリの検索指定は無効です。
補助メッセージのモード識別には , 次が表示されます。
相対形式ロードモジュール出力指定 (-r) 時 : REL
332
CM71-00327-9, December 1, 2014
付録 A リンケージキットのエラーメッセージ
Support
W1321L
Soft
Ma nual
モード識別 モード時にはこの ( オプション ) オプションは無視されます
Ignore ( オプション ) Option at モード識別 mode
指定されたリンクモードでは無効となる指定がなされたときに通知されます。
たとえば , 相対形式ロードモジュール出力指定時には , セクション配置処理は行いませ
んので -sc オプションを指定しても無効になります。
エントリポイントが複数設定されています
W1325L
Entry point already set
複数の入力モジュールにエントリポイントが設定されています。
最初に設定されたエントリポイントが有効になります。
エントリポイントが変更されました
W1326L
Entry point was changed
-e オプションの指定により , 既に設定されているエントリポイントが変更されました。
W1327L
このシンボルは既に定義されています ( マングル名 シンボル名 )
Duplicate symbol definition ( マングル名 シンボル名 )
複数の入力モジュールに同じ外部定義シンボルが存在します。
最初に定義されたシンボル値が有効になります。
W1328L
外部シンボルの型が異なっています ( マングル名 シンボル名 )
Mismatch symbol type ( マングル名 シンボル名 )
-e オプションによるエントリポイントの設定時に指定された外部定義シンボルが , 関
数名 , 変数名 , アドレスラベル名のいずれでもない場合に通知されます。
E4326 より軽微な場合に検出されます。
W1332L
該当するファイルが見つかりませんでした ( ファイル名 )
No match ( ファイル名 ) argument
ワイルドカードによるファイル指定が行われましたが , 該当するファイルがありませ
んでした。
この指定を無視します。
December 1, 2014, CM71-00327-9
333
付録 A リンケージキットのエラーメッセージ
Su pp or t
So ft
Manu al
デバッグ情報が不足しています
W1351L
Debug information not exist
デバッグ情報が不足しているために , リストの一部が作成できません。
コンパイル , アセンブルおよびリンク時にデバッグ情報付加オプション -g を指定して
ください。
W1367L
モジュール名の重複がありました ( ファイル名 モジュール名 )
Duplicated module name ( ファイル名 モジュール名 )
既にリンク対象となっているモジュール名と同じ名前のモジュール名が存在します。
モジュール名の重複は , 絶対アセンブルリスト作成時やデバッグ時に正しくモジュー
ルを特定できないなどの問題発生原因になります。
モジュール名の重複が起こらないように変更をお勧めします。
C/C++ コンパイラは , ファイル名から自動的にモジュール名の生成を行います。
ファイル名を変更してください。
-ro オプションで内蔵 ROM 領域の範囲外が指定されています ( 領域名 )
W1368L
The area specified for the ‐ ro option is outside the internal-ROM area
( 領域名 )
-ro オプションで指定した領域が , 内蔵 ROM 領域の範囲外です。
指定範囲が正しいか確認をしてください。
ワーニング出力抑止 (-w 0) が指定されている場合でも本警告は出力されます。
-ra オプションで内蔵 RAM 領域の範囲外が指定されています ( 領域名 )
W1369L
The area specified for the ‐ ra option is outside the internal-RAM area
( 領域名 )
-ra オプションで指定した領域が , 内蔵 RAM 領域の範囲外です。
指定範囲が正しいか確認をしてください。
ワーニング出力抑止 (-w 0) が指定されている場合でも本警告は出力されます。
W1370L
ROM 領域外への配置です ( セクション名 )
The section is placed outside the ROM area ( セクション名 )
本来ROM領域内に配置されるべきセクションがROM領域の範囲外に配置されています。
配置が正しいかマップファイルで確認をしてください。
ワーニング出力抑止 (-w 0) が指定されている場合でも本警告は出力されます。
334
CM71-00327-9, December 1, 2014
付録 A リンケージキットのエラーメッセージ
Support
W1371L
Soft
Ma nual
RAM 領域外への配置です ( セクション名 )
The section is placed outside the RAM area ( セクション名 )
本来RAM領域内に配置されるべきセクションがRAM領域の範囲外に配置されています。
配置が正しいかマップファイルで確認をしてください。
ワーニング出力抑止 (-w 0) が指定されている場合でも本警告は出力されます。
W1372L
RAM 領域または IO 領域外への配置です ( セクション名 )
The section is placed outside the RAM area or the I/O area ( セクション名 )
本来 RAM 領域か IO 領域内に配置されるべきセクションが RAM 領域と IO 領域の範囲
外に配置されています。
配置が正しいかマップファイルで確認をしてください。
ワーニング出力抑止 (-w 0) が指定されている場合でも本警告は出力されます。
W1373L
IO 領域外への配置です ( セクション名 )
The section is placed outside the I/O area ( セクション名 )
本来 IO 領域内に配置されるべきセクションが I/O 領域の範囲外に配置されています。
配置が正しいかマップファイルで確認をしてください。
ワーニング出力抑止 (-w 0) が指定されている場合でも本警告は出力されます。
E4302L
セクションまたはセクショングループ名が見つかりません (セクション名 or グループ
名)
Not found section or section group name ( セクション名 or グループ名 )
-sc オプションで指定したセクション名あるいはグループ名が見つかりません。
E4303L
ROM/RAM 領域名が定義されていません ( 領域名 )
Undefined ROM/RAM area name ( 領域名 )
-sc オプションで指定した ROM/RAM 領域名が定義されていません。
E4304L
シンボル名が見つかりません ( マングル名 シンボル名 )
Symbol name is not found ( マングル名 シンボル名 )
-df オプションで指定した外部参照シンボルが見つからないとき , または -e オプション
で指定した外部定義シンボルが見つからないときに通知されます。
December 1, 2014, CM71-00327-9
335
付録 A リンケージキットのエラーメッセージ
Su pp or t
E4305L
So ft
Manu al
外部シンボルが定義されていません ( マングル名 シンボル名 )
Unresolved external symbol ( マングル名 シンボル名 )
本エラーは , 以下の場合に発生します。
(1) 外部シンボルの定義がない
(2) -df オプションで指定した外部定義シンボル名が見つからない
(3) 未使用関数削除機能により , 関数が削除された
(1) と (2) が原因の場合 , 外部定義シンボルを含むモジュールをリンクしてください。
(3) が原因の場合 , 削除された関数を -Xdel オプションで指定してください。
E4312L
互換性のない CPU タイプのモジュールがあります ( ファイル名 )
Uncompatible cpu type module( ファイル名 )
ここで示されるファイルは互換性のないモジュールです。
入力されるモジュールは , ターゲット CPU が同じか互換 CPU にして下さい。
詳細は「5.12 リンカでのオブジェクト混在」を参照してください。
E4319L
このセクションは存在しません ( セクション名 )
Section not exists ( セクション名 )
グループ化オプション (-gr) で指定されたセクションが見つかりません。
ここで示されるセクションが絶対セクションであった場合にも , セクション再配置の
対象にならないため , 当メッセージが通知されます。
E4326L
外部シンボルの型が異なっています ( マングル名 シンボル名 )
Different symbol type ( マングル名 シンボル名 )
-e オプションによるエントリポイントの設定時に指定された外部定義シンボルが , 関
数名 , 変数名 , アドレスラベル名のいずれでもない場合に通知されます。
リロケーション情報に誤りがあります
E4327L
Illegal RL information
リロケーション情報に誤りがある場合に検出されます。
E4329L
値が範囲外です ( 値 )
Value out of range ( 値 )
リロケーション演算でオーバフローがありました。
このメッセージには , リロケーション対象となったデータ部の記述を含むソースプロ
グラム名と行番号が表示されますので , プログラムの記述を確認してください。
エディタのタグジャンプが利用できる場合 , 該当するソース行がすぐにわかります。
336
CM71-00327-9, December 1, 2014
付録 A リンケージキットのエラーメッセージ
Support
E4330L
Soft
Ma nual
0 による除算が行われました
Divide by 0
リロケーション演算の除算で除数が 0 になっています。
E4331L
配置アドレスを指定してください ( セクション名 )
Indispensable to locate address ( セクション名 )
-sc オプションによるアドレス指定がないか , 指定のないセクションが見つかった場合
に通知されます。
E4332L
グループ名は使えません ( グループ名 )
Not handling group name ( グループ名 )
-sc オプションでの ROM → RAM 転送セクションの指定時に , グループ名は指定できま
せん。
E4333L
ROM アドレスが指定されていません ( セクション名 )
Not specified ROM address ( セクション名 )
ROM 領域に配置すべきリロケーション情報に対し , ROM アドレスの指定がありませ
ん。
-sc オプションで ROM アドレスの指定を行ってください。
E4351L
相対アセンブルリストファイルに対するオブジェクトがありません ( ファイル名 )
Relocatable assemble list not correspond to object file ( ファイル名 )
補助メッセージに示す相対アセンブルリストファイルに対するオブジェクトが見つか
りません。
リンカは補助メッセージに示すリストファイルの処理を中止し , 次のリストファイル
の処理を行います。
E4352L
相対アセンブルリストファイルがありません ( ファイル名 )
Relocatable assemble list file not found ( ファイル名 )
補助メッセージに示す相対アセンブルリストファイルがありません。
リンカは補助メッセージに示すファイル名に対する絶対形式アセンブルリストファイ
ルを作成せず , 処理を続行します。
December 1, 2014, CM71-00327-9
337
付録 A リンケージキットのエラーメッセージ
Su pp or t
E4354L
So ft
Manu al
相対アセンブルリストファイルの形式が正しくありません ( ファイル名 )
Illegal relocatable assemble list file format ( ファイル名 )
補助メッセージに示す相対アセンブルリストファイルの形式は , リンカで正しく処理
できるものではありません。
リンカは補助メッセージに示すリストファイルの処理を中止し , 次のリストファイル
の処理を行います。
E4355L
オブジェクトデータが一致していません ( ファイル名 )
Object data not correspond ( ファイル名 )
絶対形式ロードモジュールファイルのオブジェクトデータと , 補助メッセージに示す
相対形式アセンブルリストのソースデータが一致していません。
アセンブルし直してから , 再度実行してください。
E4357L
配列の次元数 , または構造体のネストが多すぎます
Too many array dimension or structure nested : exceeded 8
ARRAYリストに出力される配列の次元数または, 構造体のネストが8を超えています。
処理は続行しますが , これを超えた部分はリストに出力されません。
E4362L
ダミーセクションの指定があります ( ファイル名 )
DUMMY section specified ( ファイル名 )
補助メッセージに示すファイルでダミーセクションが指定されています。
絶対形式アセンブルリストを作成する場合にはダミーセクションの記述をしないでく
ださい。
E4363L
セクションの最大サイズを超えました ( セクション名 )
Exceeded maximum section size ( セクション名 )
セクションの最大サイズを超えたセクションがあります。セクションには , そのセク
ション種別により最大サイズが制限されるものがあります。それを超えた場合に検出
されます。
セクションの見直しを行ってください。
E4365L
配置可能なアドレスが領域 " 領域名 " に見つかりません ( セクション名 )
Not found locatable address in 領域名 ( セクション名 )
配置指定領域の該当セクションの配置可能な場所が見つかりません。
領域内のセクション構成を見直してください。
338
CM71-00327-9, December 1, 2014
付録 A リンケージキットのエラーメッセージ
Support
E4366L
Soft
Ma nual
配置可能なアドレスが見つかりません。( セクション名 )
Not found locatable address ( セクション名 )
全アドレス空間にセクションの配置可能な場所が見つかりません。
プログラム構成を見直してください。
E4367L
モジュール名の重複がありました ( ファイル名 モジュール名 )
Duplicated module name ( ファイル名 モジュール名 )
既にリンク対象となっているモジュール名と同じ名前のモジュール名が存在します。
モジュール名の重複はできません。モジュール名を変更してください。
E4369L
コンパイルモデルの異なるモジュールがあります ( ファイル名 )
Invalid module : conflict compile model ( ファイル名 )
コンパイルモデルの異なるモジュールはリンクできません。
E4370L
CPU 情報ファイルが見つかりません ( ファイル名 )
CPU information file not found ( ファイル名 )
-cpu オプションによる指定ターゲットの CPU 情報ファイルが見つかりません。
下記ファイルが見つからない場合に検出されます。
• %FETOOL%\LIB\911\911.CSV
• %FETOOL%\LIB\911\cpu_info\*.CSV
E4371L
CPU 情報が見つかりません ( ファイル名 )
CPU information not found ( ファイル名 )
-cpu オプションによる指定ターゲットの CPU 情報が CPU 情報ファイル内に見つかり
ません。
下記ファイル内に指定ターゲットの CPU 情報が見つからない場合に検出されます。
• %FETOOL%\LIB\911\911.CSV
• %FETOOL%\LIB\911\cpu_info\*.CSV
E4701L
実体生成されたテンプレート関数と同一の関数が定義されています ( シンボル名 )
Symbol is referenced as an explicit specialization and a generated instantiation ( シンボル名 )
実体生成されたテンプレート関数と同一の関数が定義されています。
December 1, 2014, CM71-00327-9
339
付録 A リンケージキットのエラーメッセージ
Su pp or t
E4702L
So ft
Manu al
シンボル名のデコーディング中にエラーが発生しました ( シンボル名 )
Error occurred during symbol name decoding ( シンボル名 )
シンボル名のデコーディング中にエラーが発生しました。シンボル名はデコーディン
グ以前のまま使用されます。
メモリが足りません
F9001L
Insufficient memory
プログラム実行のためにはメモリが不足しています。バッチファイル中でリンカを起
動している場合は , 直接コマンドラインから起動してみてください。
F9011L
ファイルが見つかりません ( ファイル名 )
Input file not found ( ファイル名 )
指定された入力ファイルが見つかりません。
F9012L
ライブラリファイルが見つかりません ( ファイル名 )
Library file not found ( ファイル名 )
ここで示されるファイル名がデフォルトライブラリファイルである場合は , 以下のこ
とが原因です。
• 環境変数 LIB911 が設定されている場合。
環境変数 LIB911 が示すディレクトリにデフォルトライブラリファイルが格納されて
いない。
• 環境変数 LIB911 が設定されていない場合。
環境変数 FETOOL より導かれるディレクトリにデフォルトライブラリファイルが格
納されていない。
-l, -el オプションで指定したライブラリファイルであるときは , ファイル名指定もしく
は -L オプションで指定の検索パスが間違っていないか確かめてください。
F9015L
ファイルがオープンできません ( ファイル名 )
File open error ( ファイル名 )
ここで示されたファイルが出力ファイルである場合 , 1 つのディレクトリが管理できる
ファイルの制限数を超えている可能性があります。不要なファイルを削除するか移動
してください。
F9016L
ファイルからの読込みができません ( ファイル名 )
File read error ( ファイル名 )
リード許可のないファイルである可能性があります。
340
CM71-00327-9, December 1, 2014
付録 A リンケージキットのエラーメッセージ
Support
F9017L
Soft
Ma nual
ファイルへの書き込みができません ( ファイル名 )
File write error ( ファイル名 )
書き込み許可のない同名のファイルが存在している可能性があります。
または , ここで示されているファイルを書き込んでいるディスクの容量が不足してい
る可能性があります。ディスクに空き容量を作ってもう一度リンカを実行してくださ
い。
コマンドラインの指定が多すぎます
F9021L
Too many options
コマンドラインに指定した ( オプションファイル中の指定も含む ) , 入力ファイル名や
オプションが多すぎます。
リンカの起動を複数回に分けてください。
F9022L
オプション名の指定に誤りがあります ( オプション )
Illegal option name ( オプション )
リンカで使用できるオプションではありません。-help オプションまたは当マニュアル
で確認してください。
F9023L
パラメータの指定に誤りがあります ( オプション )
Illegal option parameter ( オプション )
このオプションで指定すべきパラメータに誤りがあります。
パラメータが不足している , 区切り記号が誤っている , などシンタックスに起因するエ
ラーであると思われる場合に通知します。
F9024L
パラメータの指定に不正な文字があります ( オプション )
Illegal character ( オプション )
このオプションで指定すべきパラメータに誤りがあります。
数値の指定方法の誤りなど不正文字の使用によるエラーであると思われる場合に通知
します。
F9026L
値が範囲外です ( 値 )
Specified value out of range ( 値 )
-pl, -pw, -w オプションで許される範囲外の値が指定されています。
December 1, 2014, CM71-00327-9
341
付録 A リンケージキットのエラーメッセージ
Su pp or t
So ft
Manu al
オプションファイル中にオプションファイルの指定があります
F9027L
Option file nested
オプションファイルはネストできません。オプションファイル中に記述されている -f
オプションを削除してください。
入力ファイル名の指定がありません
F9030L
Missing input file name
入力ファイルを指定してください。
F9032L
入出力ファイル名が同じです ( ファイル名 )
Output file name same as input one ( ファイル名 )
ここに示された出力ファイル名は , 入力ファイル名と同じ名称ですので処理できませ
ん。
F9033L
ファイルの形式が正しくありません ( ファイル名 )
Illegal file format ( ファイル名 )
以下のいずれかの場合に通知されるメッセージです。
• ライブラリファイルの形式が正しくない。
• ライブラリファイル中のオブジェクトモジュールの形式が正しくない。
• 入力ファイルが絶対形式ロードモジュールである。
• 入力モジュールの内容が正しくない。
• 相対形式アセンブルリストファイルの形式が正しくない。
• CPU 情報ファイルの形式が正しくない。
F9040L
ファイル名またはパス名が重複しています ( ファイル名 )
Duplicated file or path name ( ファイル名 )
以下の 3 つのいずれかの場合に通知されるメッセージです。
• 同名の入力モジュールファイル名が指定されている。
• -l, -el オプションで同名のライブラリファイル名が指定されている。
• -L オプションで同じライブラリパス名が指定されている。
F9042L
セクション名の重複指定があります ( セクション名 )
Duplicated section name ( セクション名 )
-sc または -gr オプションで , 同一のセクション名が複数指定されました。
342
CM71-00327-9, December 1, 2014
付録 A リンケージキットのエラーメッセージ
Support
F9043L
Soft
Ma nual
シンボル名の重複指定があります ( マングル名 シンボル名 )
Duplicated symbol name ( マングル名 シンボル名 )
-el オプションで , 同じ外部参照シンボルが複数指定されています。
F9044L
セクショングループ名が重複しています ( グループ名 )
Duplicated section group name ( グループ名 )
-gr オプションによるグループの設定時に , 同じグループ名が複数使用されました。
F9047L
該当するファイルが見つかりませんでした ( ファイル名 )
No match ファイル名 argument
ワイルドカードによるファイル指定が行われましたが , 該当するファイルがありませ
んでした。
F9052L
'-cpu' オプションの指定がありません
Missing '-cpu' option
-cpu オプションによるターゲット CPU の指定がありません。
-cpu オプションでターゲット CPU を指定する必要があります。
F9053L
'-ro','-ra' オプションの指定がありません
Missing '-ro' or '-ra' option
自動配置を行うのに必要な '-ro','-ra' オプションが指定されていません。
F9054L
セクション名が重複しています ( セクション名 )
Duplicate section name exist ( セクション名 )
複数のモジュールに , 名前が同じで属性や型の異なるセクションが存在します。
絶対アセンブルリスト作成時に出力されます。
プレリンクプロセスでエラーが発生しました
F9055L
Prelink command process returns error
プレリンクプロセスでエラーが発生しました。
F9056L
CPU 情報ファイルのバージョンが適合しません
Mismatch CPU information file version
CPU 情報ファイルが古く適合しません。
最新の CPU 情報ファイルを入手してください。
December 1, 2014, CM71-00327-9
343
付録 A リンケージキットのエラーメッセージ
Su pp or t
F9070L
So ft
Manu al
ディレクトリを変更できません ( ディレクトリ名 )
Cannot change directory ( ディレクトリ名 )
実体生成情報ファイルのディレクトリ記述が正しくない可能性があります。各オブ
ジェクトをコンパイルし直して実体生成情報ファイルを更新し , リンカを再実行して
みてください。
コンパイルプロセスでエラーが発生しました
F9072L
Compile command process returns error
リンカは , C++ で作成されたオブジェクトファイルをリンクする際 , テンプレート関数
を生成するために , C/C++ コンパイラを使用します。
このメッセージは以下の場合に出力されます。
• 入力ファイル (.obj) の形式が正しくない。
• C/C++ コンパイラを起動するためのメモリが不足している。
• C/C++ コンパイラがエラーを出力している。
F9073L
同一の実体生成が複数ファイルで指定されています ( ファイル名 )
Instantiation assigned to more than one file ( ファイル名 )
別の実体生成情報ファイルで同一シンボルの実体生成が指定されています。各入力
ファイルをコンパイルし直して実体生成情報ファイルを更新し , リンカを再実行して
ください。
F9074L
実体生成情報ファイルが見つかりません ( ファイル名 )
Instantiation information file is missing ( ファイル名 )
入力ファイル (*.obj) に対して実体生成が必要ですが , 実体生成情報ファイルが見つか
りません。
入力ファイルをコンパイルし直して実体生成情報ファイルを作成し , リンカを再実行
してください。
344
CM71-00327-9, December 1, 2014
付録 A リンケージキットのエラーメッセージ
Support
Soft
Ma nual
――――――――――――――――――――――――――――――――――――
F9998L
File open failed ( ファイル名 )
リンカが使用するメッセージファイルがオープンできませんでした。
エラーメッセージファイルは , 決められたディレクトリに格納してください。
• lkt911_a.msg または lkt911_e.msg
F9999L
プログラム内部エラーが発生しました ( 識別情報 )
Internal error ( 識別情報 )
このエラーが出た場合は , ただちに営業部門へ連絡してください。
■ ライブラリアンのエラーメッセージ
外部定義のない外部参照シンボルがあります
I0401U
Reference to undefined symbol
-c オプションにより報告されるメッセージです。ライブラリファイルの外部シンボルを
チェックした結果 , 当ライブラリファイル中で解決されない外部参照シンボルが含まれ
ていることを示しています。当メッセージの出力されるライブラリファイルをリンカで
使用する場合は , どのモジュールの外部定義シンボルが使われるか注意が必要です。
デバッグ情報が含まれています
I0402U
Debug information exists
-c オプションにより報告されるメッセージです。当ライブラリファイルにはデバッグ
情報を含むモジュールが含まれています。ライブラリファイル中のデバッグ情報は ,
-O オプションで取り除くことができます。
I0407U
下位互換 CPU タイプのオブジェクトがあります ( ファイル名 )
Lower compatible cpu type object ( ファイル名 )
ここで示されたファイルは , ライブラリファイルと下位互換性のある異なる CPU タイ
プのオブジェクトを含むライブラリ , あるいはオブジェクトです。
詳細は「9.9 ライブラリアンでのオブジェクト混在」をご参照ください。
I0409U
Softune V3 のオブジェクトです ( ファイル名 )
Softune V3 type object ( ファイル名 )
ここで示されたファイルは , SOFTUNE V3 言語ツールで作成されたオブジェクトです。
December 1, 2014, CM71-00327-9
345
付録 A リンケージキットのエラーメッセージ
Su pp or t
I0410U
So ft
Manu al
Softune V5 のオブジェクトです ( ファイル名 )
Softune V5 type object ( ファイル名 )
ここで示されたファイルは , SOFTUNE V5 言語ツールで作成されたオブジェクトです。
I0411U
旧形式のライブラリファイルです ( ファイル名 )
This is an old-format library file ( ファイル名 )
ここで示されたファイルは , SOFTUNEV3 または V5 言語ツールで作成されたライブラ
リです。自動的に編集前のライブラリファイルのバックアップをとります。拡張子は
.bak です。
W1401U
'-pl' 指定を無視します
Ignore '-pl' option
リスト行数指定 (-pl オプション ) がありますが , 対象となるマップリストが出力指定さ
れていません。この指定を無視します。
W1402U
'-pw' 指定を無視します
Ignore '-pw' option
リスト桁数指定 (-pw オプション ) がありますが , 対象となるマップリストが出力指定
されていません。この指定を無視します。
W1403U
'-g' 指定を無視します
Ignore '-g' option
デバッグ情報付ライブラリ作成指定 (-g オプション ) は , モジュールの追加指定 (-a オ
プション ) あるいは置換指定 (-r オプション ) を行うときのみ意味を持ちます。この指
定を無視します。
行うべき処理がありませんでした
W1404U
Nothing to operate
ライブラリファイルの変更または , モジュールの抽出処理がありませんでした。
W1405U
削除するモジュールがありませんでした ( モジュール名 )
Module not exists to delete ( モジュール名 )
-d オプションで指定のモジュールが , ライブラリファイルに含まれていません。
-m オプションで登録されているモジュール名を確かめてください。
346
CM71-00327-9, December 1, 2014
付録 A リンケージキットのエラーメッセージ
Support
W1406U
Soft
Ma nual
抽出するモジュールがありませんでした ( モジュール名 )
Module not exists to extract ( モジュール名 )
-x オプションで指定のモジュールが , ライブラリファイルに含まれていません。
-m オプションで登録されているモジュール名を確かめてください。
W1412U
互換性のない CPU タイプのモジュールがあります ( ファイル名 )
Uncompatible cpu type module( ファイル名 )
ここで示されるファイルは互換性のないモジュールです。
入力されるモジュールは , ターゲット CPU が同じか互換 CPU にして下さい。
本メッセージは , 以下の場合に出力されます。
• FR80またはFR81用ライブラリファイル作成時にFR用のモジュールを入力した場合
警告の出力されたファイルについては,非互換の命令が使われていないことをご確認し
てください。
詳細は「9.9 ライブラリアンでのオブジェクト混在」を参照してください。
E4402U
モジュール名の重複がありました ( ファイル名 モジュール名 )
Duplicated module name ( ファイル名 モジュール名 )
既に登録されているモジュールと同じ名前のモジュールを追加登録しようとしまし
た。
1 つのライブラリ中にモジュールの重複はできませんので , ここで示されるモジュール
は登録しません。置き換えるならば , -r オプションを使用してください。
E4403U
外部定義シンボルの重複がありました ( ファイル名 シンボル名 )
Duplicated external definition symbol name ( ファイル名 シンボル名 )
登録されているモジュールには , 外部定義シンボルが含まれていますが , ここで示され
たシンボルは既にライブラリに登録されています。
1 つのライブラリ中に外部定義シンボルの重複はできませんので , ここで示されるシン
ボルを含むモジュールは登録しません。
E4404U
登録できないモジュール形式です ( ファイル名 )
Invalid module : type ( ファイル名 )
ライブラリファイルに登録できるのは , アセンブラが出力するオブジェクトモジュー
ル形式だけです。リンカ出力の絶対形式および相対形式ロードモジュールは登録でき
ません。
December 1, 2014, CM71-00327-9
347
付録 A リンケージキットのエラーメッセージ
Su pp or t
E4405U
So ft
Manu al
作成ツールの異なるモジュールがあります ( ファイル名 )
Invalid module : conflict tool name ( ファイル名 )
このライブラリアンが処理できるファミリ用アセンブラ出力のオブジェクトモジュー
ルではありません。
E4406U
コンパイルモデルの異なるモジュールがあります ( ファイル名 )
Invalid module : conflict compile model ( ファイル名 )
コンパイルモデル (メモリモデルなど) が異なるモジュールを同じライブラリに登録で
きません。
E4407U
ターゲット CPU の異なるモジュールがあります ( ファイル名 )
Invalid module : conflict CPU type ( ファイル名 )
ターゲット CPU の異なるモジュールを同じライブラリに登録できません。または , ター
ゲット CPU と異なるライブラリファイルが指定されています。
E4412U
互換性のない CPU タイプのモジュールがあります ( ファイル名 )
Uncompatible cpu type module( ファイル名 )
ここで示されるファイルは互換性のないモジュールです。
入力されるモジュールは , ターゲット CPU が同じか互換 CPU にして下さい。
詳細は「9.9 ライブラリアンでのオブジェクト混在」を参照してください。
E4470U
CPU 情報ファイルが見つかりません ( ファイル名 )
CPU information file not found ( ファイル名 )
-cpu オプションによる指定ターゲットの CPU 情報ファイルが見つかりません。
下記ファイルが見つからない場合に検出されます。
• %FETOOL%\LIB\911\911.CSV
• %FETOOL%\LIB\911\cpu_info\*.CSV
348
CM71-00327-9, December 1, 2014
付録 A リンケージキットのエラーメッセージ
Support
E4471U
Soft
Ma nual
CPU 情報が見つかりません ( ファイル名 )
CPU information not found ( ファイル名 )
-cpu オプションによる指定ターゲットの CPU 情報が CPU 情報ファイル内に見つかり
ません。
下記ファイル内に指定ターゲットの CPU 情報が見つからない場合に検出されます。
• %FETOOL%\LIB\911\911.CSV
• %FETOOL%\LIB\911\cpu_info\*.CSV
メモリが足りません
F9001U
Insufficient memory
プログラム実行のためのメモリが不足しています。
F9015U
ファイルがオープンできません ( ファイル名 )
File open error ( ファイル名 )
ここで示されたファイルが出力ファイルである場合 , 1 つのディレクトリが管理できる
ファイルの制限数を超えている可能性があります。不要なファイルを削除するか移動
してください。
F9016U
ファイルからの読込みができません ( ファイル名 )
File read error ( ファイル名 )
リード許可のないファイルである可能性があります。
F9017U
ファイルへの書き込みができません ( ファイル名 )
File write error ( ファイル名 )
書き込み許可のない同名のファイルが存在している可能性があります。
または , ここで示されているファイルを書き込んでいるディスクの容量が不足してい
る可能性があります。ディスクに空き容量を作ってもう一度ライブラリアンを実行し
てください。
コマンドラインの指定が多すぎます
F9021U
Too many options
コマンドラインに指定した ( オプションファイル中の指定も含む ) , 入力ファイル名や
オプションが多すぎます。
ライブラリアンの起動を複数回に分けてください。
December 1, 2014, CM71-00327-9
349
付録 A リンケージキットのエラーメッセージ
Su pp or t
F9022U
So ft
Manu al
オプション名の指定に誤りがあります ( オプション )
Illegal option name ( オプション )
オプション名の指定に誤りがあります。コマンドラインを訂正して再起動してくださ
い。
F9023U
パラメータの指定に誤りがあります ( オプション )
Illegal option parameter ( オプション )
このオプションで指定すべきパラメータに誤りがあります。
F9026U
値が範囲外です ( 値 )
Specified value out of range ( 値 )
-pl または -pw オプションのパラメータで指定可能な値ではありません。
-help オプションまたは本マニュアルで確認してください。
オプションファイル中にオプションファイルの指定があります
F9027U
Option file nested
オプションファイルはネストできません。オプションファイル中に記述されている -f
オプションを削除してください。
F9033U
ファイルの形式が正しくありません ( ファイル名 )
Illegal file format ( ファイル名 )
このメッセージは次の場合に出力されます。
• ライブラリファイルの形式が正しくない。
• ライブラリファイル中のオブジェクトモジュールの形式が正しくない。
• 入力ファイルが絶対形式ロードモジュールである。
• 入力モジュールの内容が正しくない。
• 相対形式のアセンブルリストファイルが正しくない。
• CPU 情報ファイルの形式が正しくない。
ライブラリファイル名の指定がありません。
ライブラリファイル名の指定がありません
F9035U
Missing library file name
ライブラリファイル名を指定してください。
350
CM71-00327-9, December 1, 2014
付録 A リンケージキットのエラーメッセージ
Support
F9036U
Soft
Ma nual
ライブラリファイル名が複数指定されています ( ファイル名 )
Multiple library file name specified ( ファイル名 )
ライブラリファイルは 1 つだけ指定できます。ここに示されたファイル名またはこれ
により前に指定したライブラリファイル名のどちらか 1 つを選択してください。
F9045U
'-O' 指定時は他のオプションの指定はできません
'-O' option conflict with another option
-O オプション指定時は , ほかのオプションは指定できません。
F9046U
'-c' 指定時は他のオプションの指定はできません
'-c' option conflict with another option
-c オプションは , 他のオプションと組み合わせないでください。
F9047U
該当するファイルが見つかりませんでした ( ファイル名 )
No match ファイル名 argument
ワイルドカードによるファイル指定が行われましたが , 該当するファイルがありませ
んでした。
F9052U
'-cpu' オプションの指定がありません
Missing '-cpu' option
-cpu オプションによるターゲット CPU の指定がありません。
-cpu オプションでターゲット CPU を指定する必要があります。
F9056U
CPU 情報ファイルのバージョンが適合しません
Mismatch CPU information file version
CPU 情報ファイルが古く適合しません。
最新の CPU 情報ファイルを入手してください。
――――――――――――――――――――――――――――――――――――
F9998U
File open failed ( ファイル名 )
ライブラリアンが使用するメッセージファイルがオープンできませんでした。
エラーメッセージファイル (lkt_a.msg, lkt_e.msg) は , 決められたディレクトリに格納し
てください。
December 1, 2014, CM71-00327-9
351
付録 A リンケージキットのエラーメッセージ
Su pp or t
F9999U
So ft
Manu al
プログラム内部エラーが発生しました ( 識別情報 )
Internal error ( 識別情報 )
このエラーが出た場合は , ただちに営業部門へ連絡してください。
■ コンバータのエラーメッセージ
スタートアドレスレコードを読み飛ばしました
I0501U
Skip start address record
HEX フォーマットにスタートアドレスレコードが含まれていましたが , 不要なので読
み飛ばしました。コンバータの処理には影響なく正しくコンバートは行われます。
W1501U
このファイルは警告レベルエラーを含んでいます ( ファイル名 )
File include WARNING level error ( ファイル名 )
入力に指定したファイルは , リンク時に警告レベルのエラーがあったものです。問題な
いかどうかを確認のうえ使用してください。
W1502U
出力指定フォーマットで表せないアドレスです ( アドレス )
Unable to convert address ( アドレス )
コンバート先のフォーマットでは , 表現できないアドレスのデータがコンバート元の
ファイルに含まれています。ここで示されたアドレスを超えた部分のデータはすべて
捨てられます。
コンバート先のフォーマットを変更してください。
W1503U
-I16 指定時に -entry オプションが指定されました
-entry option was specified at the time of -I16 specification
-I16 指定時にスタートアドレス出力指定オプションが指定されました。
入力ファイルにスタートアドレス情報がありません
W1504U
Start address information is not in an input file
入力ロードモジュールファイルにスタートアドレス情報がありません。f2hs は , スター
トアドレスレコードを出力せずに HEX フォーマットを出力します。
メモリが足りません
F9001U
Insufficient memory
プログラム実行のためのメモリが不足しています。
352
CM71-00327-9, December 1, 2014
付録 A リンケージキットのエラーメッセージ
Support
F9011U
Soft
Ma nual
ファイルが見つかりません ( ファイル名 )
Input file not found ( ファイル名 )
入力ファイルに指定したファイルが見つかりません。
F9015U
ファイルがオープンできません ( ファイル名 )
File open error ( ファイル名 )
ここで示されたファイルが出力ファイルである場合 , 1 つのディレクトリが管理できる
ファイルの制限数を超えている可能性があります。不要なファイルを削除するか移動
してください。
F9016U
ファイルから読込みができません ( ファイル名 )
File read error ( ファイル名 )
リード許可のないファイルであるか , もしくはハードウェアに問題があることが考え
られます。
F9017U
ファイルへの書き込みができません ( ファイル名 )
File write error ( ファイル名 )
ここで示されているファイルを書き込んでいるディスクの容量が不足しています。
ディスクに空き容量を作ってもう一度コンバータを実行してください。
コマンドラインの指定が多すぎます
F9021U
Too many options
コマンドラインに指定 ( オプションファイル中の指定も含む ) した , 入力ファイル名や
オプションが多すぎます。
F9022U
オプション名の指定に誤りがあります ( オプション )
Illegal option name ( オプション )
コンバータで使用できるオプションではありません。-help オプションまたは本マニュ
アルで確認してください。
F9023U
パラメータの指定に誤りがあります ( オプション )
Illegal option parameter ( オプション )
このオプションで指定すべきパラメータに誤りがあります。
December 1, 2014, CM71-00327-9
353
付録 A リンケージキットのエラーメッセージ
Su pp or t
F9026U
So ft
Manu al
値が範囲外です ( 値 )
Specified value out of range ( 値 )
オプションで許される範囲外の値が指定されています。
オプションファイル中にオプションファイルの指定があります
F9027U
Option file nested
オプションファイルはネストできません。オプションファイル中に記述されている -f
オプションを削除してください。
F9028U
指定したアドレスは大きすぎます ( オプション : s= アドレス 1e= アドレス 2)
Specified address too large ( オプション : s= アドレス 1e= アドレス 2)
オプションのパラメータで指定したアドレスは , コンバート先のファイルフォーマッ
トでは表せません。指定し直してください。
F9029U
指定アドレスの大小関係が逆です ( オプション : s= アドレス 1e= アドレス 2)
Start address opposite to end one ( オプション : s= アドレス 1e= アドレス 2)
オプションのパラメータで指定したアドレスは , スタートアドレスとエンドアドレス
の大小関係が逆です。
入力ファイル名の指定がありません
F9030U
Missing input file name
コンバート元の入力ファイル名を指定してください。
F9031U
入力ファイル名は既に指定されています ( ファイル名 )
Multiple input file name ( ファイル名 )
入力ファイルは 1 つだけ指定できます。ここに示されたファイル名またはこれより前
に指定したファイル名のどちらか 1 つを入力ファイルとしてください。
F9032U
入出力ファイル名が同じです ( ファイル名 )
Output file name same as input one ( ファイル名 )
ここに示された出力ファイル名は , 入力ファイル名と同じ名称ですので処理できませ
ん。
354
CM71-00327-9, December 1, 2014
付録 A リンケージキットのエラーメッセージ
Support
F9033U
Soft
Ma nual
ファイルの形式が正しくありません ( ファイル名 )
Illegal file format ( ファイル名 )
入力ファイルは , 処理しようとしているオブジェクト形式ではありません。
異なる形式のファイルを入力したか , もしくはファイルが壊れています。
F9034U
絶対形式でないファイルは扱えません ( ファイル名 )
Not absolute load module file ( ファイル名 )
リンカ出力の絶対形式ロードモジュールではないファイルを入力しました。リンカで
絶対形式にしてからコンバータで使用してください。
出力範囲が指定されていません
F9048U
Missing output range
出力範囲の指定が行われていません。
出力範囲指定 (-ran) を指定してください。
F9049U
出力範囲のサイズが限界値を超えています
Output range exceeded
出力範囲が限界値を超えています。
F9050U
出力ファイルが他の出力ファイルと同じです ( ファイル名 )
Output file name same as other output one ( ファイル名 )
出力ファイル名に , ほかの出力ファイル名と同じ名前が指定されています。
出力ファイル名を変更してください。
F9051U
ファイル名が長すぎます ( ファイル名 )
File name too long ( ファイル名 )
ここに示された出力ファイル名の指定が長すぎるため処理ができません。
ファイル名の指定を短くしてください。
――――――――――――――――――――――――――――――――――――
F9998U
File open failed ( ファイル名 )
コンバータが使用するメッセージファイルがオープンできませんでした。
エラーメッセージファイル (lkt_a.msg, lkt_e.msg) は , 決められたディレクトリに格納し
てください。
December 1, 2014, CM71-00327-9
355
付録 A リンケージキットのエラーメッセージ
Su pp or t
F9999U
So ft
Manu al
プログラム内部エラーが発生しました ( 識別情報 )
Internal error ( 識別情報 )
このエラーが出た場合は , ただちに営業部門へ連絡してください。
356
CM71-00327-9, December 1, 2014
付録 B HEX フォーマット
Support
付録 B
Soft
Ma nual
HEX フォーマット
HEX フォーマットについて説明します。
• HEX8 フォーマット : 8 ビット用に設定されたフォーマット
• HEX16 フォーマット : 16 ビット用に拡張されたフォーマット
• HEX32 フォーマット : 32 ビット用に拡張されたフォーマット
■ HEX フォーマット
• 一般形式 (「付録 B.1 一般形式」参照 )
• データレコード (HEX8/HEX16/HEX32) タイプ : 00
(「付録 B.2 データレコード (HEX8/HEX16/HEX32) タイプ : 00」参照 )
• エンドレコード (HEX8/HEX16/HEX32) タイプ : 01
(「付録 B.3 エンドレコード (HEX8/HEX16/HEX32) タイプ : 01」参照 )
• 拡張セグメントアドレスレコード (HEX16/HEX32) タイプ : 02
(「付録 B.4 拡張セグメントアドレスレコード (HEX16/HEX32) タイプ : 02」参
照)
• スタートセグメントアドレスレコード (HEX16/HEX32) タイプ : 03
(「付録 B.5 スタートセグメントアドレスレコード (HEX16/HEX32) タイプ : 03」
参照 )
• 拡張リニアアドレスレコード (HEX32) タイプ : 04
(「付録 B.6 拡張リニアアドレスレコード (HEX32) タイプ : 04」参照 )
• スタートリニアアドレスレコード (HEX32) タイプ : 05
(「付録 B.7 スタートリニアアドレスレコード (HEX32) タイプ : 05」参照 )
December 1, 2014, CM71-00327-9
357
付録 B HEX フォーマット
Su pp or t
So ft
Manu al
一般形式
B.1
HEX フォーマットは , (a) ~ (f) で示す 6 つのフィールドで構成されます。
各フィールドは , ASCII コードで設定されます。(g) については , 後述します。
■ 一般形式
図 B-1 一般形式
:
l1
(a)
(b)
l2
a1
a2
(c)
a3
a4
t1
(d)
t2
d1
d2
d3
d4
d*
d*
d*
d*
(e)
s1
(f)
s2
(g)
(a):
レコードの開始を示し , ":"(0x3A) の文字です。
(b):
(e) のデータ部のバイト数を示します。
実際の 1 バイトデータを当フォーマットでは 2 バイトの ASCII コードで示しますの
で , 上記の図では , d1, d2 を1とカウントします。
l1 が上位桁 , l2 が下位桁で , 0 ~ 255 の値が設定できます。
ASCII で "00" ~ "FF", 16 進で "0x3030" ~ "0x4646" になります。
(c):
(e) の内容がオブジェクトデータであるとき , 最初のデータに割り付けられたアドレ
スを示します。
a1 が上位桁 , a4 が下位桁で , 0 ~ 65535 の値が設定できます。
ASCII で "0000" ~ "FFFF", 16 進で "0x30303030" ~ "0x46464646" になります。
(d):
レコードのタイプを示します。
00:データレコード(HEX8/HEX16/HEX32 形式)
01:エンドレコード(HEX8/HEX16/HEX32 形式)
02:拡張セグメントアドレスレコード(HEX16/HEX32 形式)
03:スタートセグメントアドレスレコード(HEX16/HEX32 形式)
04:拡張リニアアドレスレコード(HEX32 形式)
05:スタートリニアアドレスレコード(HEX32 形式)
(e):
(d) のレコードタイプごとに異なりますので , 各レコードの説明で示します。
(f):
チェックサムです。(b) (c) (d) (e) の ASCII で表された 2 バイトのデータを1バイト
の 16 進で表し , 各バイトを符号なしでオーバフローを無視して加算します。
その結果の 2 の補数を求め , 2 バイトの ASCII にして設定します。
358
CM71-00327-9, December 1, 2014
付録 B HEX フォーマット
Support
Soft
Ma nual
s1 が上位桁になります。
2 の補数:各ビットの 0 を 1 に , 1 を 0 にした値に 1 を加えた値
(g):
一般に制御コード(CR, LF 等)が付加されます。
このフィールドのデータは , (a) の開始文字 ":" が来るまで読み飛ばします。
(a)(b)(c)(d)(f) のフィールドは必ず存在しますので , 1 レコードの長さは最低 11 バイト ,
最大 521 バイトになります。
【例】
: 020000020036C6
拡張セグメントアドレスレコード
: 0600100090D9226BB4FD43
データレコード
: 040000035162000541
スタートアドレスレコード
: 00000001FF
エンドレコード
December 1, 2014, CM71-00327-9
359
付録 B HEX フォーマット
Su pp or t
So ft
Manu al
データレコード (HEX8/HEX16/HEX32) タイプ : 00
B.2
d1, d2 が (c) が示すアドレスのバイトデータになり , d3, d4 は , 次のアドレスのバイ
トデータです。
■ データレコード (HEX8/HEX16/HEX32)
図 B.2-1 データレコード (HEX8/HEX16/HEX32)
:
l1
(a)
(b)
l2
a1
(c)
a2
a3
a4
0
(d)
0
d1
d2
d3
d4
d*
(e)
d*
d*
d*
s1
s2
(f)
(g)
(a)(b)(c)(d)(f)(g)については , 一般形式の説明を参照してください。
(e) は , オブジェクトデータで , 実際の 1 バイトデータを 2 バイトの ASCII で表現します。
上記の図では , (c) が示すアドレスのバイトデータは , d1, d2 になります。
同様に d3, d4 は , 次のアドレスのバイトデータです。
360
CM71-00327-9, December 1, 2014
付録 B HEX フォーマット
Support
B.3
Soft
Ma nual
エンドレコード (HEX8/HEX16/HEX32) タイプ : 01
エンドレコードは , 00000001FF で固定です。
最後のレコードとして 1 つだけ存在します。
■ エンドレコード (HEX8/HEX16/HEX32)
図 B.3-1 エンドレコード (HEX8/HEX16/HEX32)
:
0
(a)
(b)
0
0
(c)
0
0
0
0
(d)
1
F
(f)
F
(g)
(e) のフィールドは , 存在しません。したがって , (b) は 0 を設定します。
(c) は未使用ですが値としては 0 を設定します。
December 1, 2014, CM71-00327-9
361
付録 B HEX フォーマット
Su pp or t
B.4
So ft
Manu al
拡張セグメントアドレスレコード (HEX16/HEX32)
タイプ : 02
拡張セグメントアドレスレコードが現れると , 次の拡張セグメントアドレスレコー
ドが現れるまで , 以降のデータレコードの各バイトデータは , 次の式に従ってアドレ
スが計算されます。
( ( PA × 0x10 ) + ( ( DA + DP ) MOD 0x10000 ) ) MOD 0x100000
• PA : 当レコードの (e) フィールドの値です。
• DA : データレコードの (c) フィールドの値で , ここでは相対アドレス扱いになり
ます。
• DP : データレコードの (e) フィールド中でのデータ位置の先頭データを 0 として
表した値です。
■ 拡張セグメントアドレスレコード (HEX16/HEX32)
図 B.4-1 拡張セグメントアドレスレコード (HEX16/HEX32)
:
0
(a)
(b)
2
0
0
0
0
(c)
0
(d)
2
p1
p2
p3
(e)
p4
s1
s2
(f)
(g)
(e):
パラグラフアドレスで , 実際の 2 バイトデータを 4 バイトの ASCII で表現します。
上記の図では , p1 が上位桁になります。
(c):
未使用ですが値としては 0 を設定します。
拡張セグメントアドレスレコードが現れると , 次の拡張セグメントアドレスレコー
ドが現れるまで , 以降のデータレコードの各バイトデータは , 次の式に従ってアド
レスが計算されます。
〔( PA × 0x10 ) + [( DA + DP ) MOD 0x10000]〕MOD 0x100000
- PA: 当レコードの (e) フィールドの値です。
- DA: データレコードの (c) フィールドの値で , ここでは相対アドレス扱いになり
ます。
- DP: データレコードの (e) フィールド中でのデータ位置の先頭データを 0 とし
て表した値です。
これは , i8086 での物理アドレスを求めるのと同じ方法であり , 拡張セグメントアド
レスレコードの追加により , 20 ビットのアドレス値まで表現できます。
拡張セグメントアドレスレコードよりも前に現れた , データレコードについては ,
上記 PA を 0x0000 としてアドレス計算が行われます。
362
CM71-00327-9, December 1, 2014
付録 B HEX フォーマット
Support
Soft
Ma nual
スタートセグメントアドレスレコード (HEX16/HEX32)
タイプ : 03
B.5
プログラムの実行開始番地を指定するためのレコードです。
スタートアドレスは , 次の式に従って計算されます。
( ( PA × 0x10 ) + IP ) MOD 0x100000
• PA : 当レコードの (e1) フィールドの値です。
• IP : 当レコードの (e2) フィールドの値です。
■ スタートセグメントアドレスレコード (HEX16/HEX32)
図 B.5-1 スタートセグメントアドレスレコード (HEX16/HEX32)
:
0
(a)
(b)
4
0
0
(c)
0
0
0
(d)
3
p1
p2
p3
p4
i1
i2
(e)
i3
i4
s1
s2
(f)
(g)
(e) は , 上記の図のように 2 つのフィールドに分かれ , (e1) 部にパラグラフアドレス ,
(e2) 部にオフセット値が設定されます。
p1, i1 がそれぞれ上位桁になります。
(c) は未使用ですが 0 を設定します。
スタートアドレスは , 次の式に従って計算されます。
〔( PA × 0x10 )+ IP 〕MOD 0x100000
- PA:当レコードの (e1) フィールドの値です。
- IP:当レコードの (e2) フィールドの値です。
当レコードの出現箇所は , エンドレコード以前ならどこでもかまいません。
出現回数は , 0 または 1 になります。
December 1, 2014, CM71-00327-9
363
付録 B HEX フォーマット
Su pp or t
B.6
So ft
Manu al
拡張リニアアドレスレコード (HEX32)
タイプ : 04
拡張リニアアドレスレコードが現れると , 次の拡張リニアアドレスレコードが現れ
るまで , 以降のデータレコードの各バイトデータは , 次の式に従ってアドレスが計算
されます。
( ( PA × 0x10000 ) + ( ( DA + DP ) MOD 0x10000 ) ) MOD 0x100000000
• PA : 当レコードの (e) フィールドの値です。
• DA : データレコードの (c) フィールドの値で , ここでは相対アドレス扱いになり
ます。
• DP : データレコードの (e) フィールド中でのデータ位置の先頭データを 0 として
表した値です。
■ 拡張リニアアドレスレコード (HEX32)
図 B.6-1 拡張リニアアドレスレコード (HEX32)
:
0
(a)
(b)
2
0
0
0
0
(c)
0
(d)
4
p1
p2
p3
(e)
p4
s1
(f)
s2
(g)
(e):
パラグラフアドレスで , 実際の 2 バイトデータを 4 バイトの ASCII で表現します。
上記の図では , p1 が上位桁になります。
(c):
未使用ですが値としては 0 を設定します。
リニアアドレスレコードが現れると , 次の拡張リニアアドレスレコードが現れるま
で , 以降のデータレコードの各バイトデータは , 次の式に従ってアドレスが計算さ
れます。
〔( PA × 0x10000 ) + [( DA + DP ) MOD 0x10000]〕MOD 0x1000000000
- PA: 当レコードの (e) フィールドの値です。
- DA: データレコードの (c) フィールドの値で , ここでは相対アドレス扱いにな
ります。
- DP: データレコードの (e) フィールド中でのデータ位置の先頭データを 0 として
表した値です。
拡張リニアアドレスレコードの追加により , 32 ビットのアドレス値まで表現できます。
拡張リニアアドレスレコードよりも前に現れた , データレコードについては , 上記 PA
を 0x0000 としてアドレス計算が行われます。
364
CM71-00327-9, December 1, 2014
付録 B HEX フォーマット
Support
Soft
Ma nual
スタートリニアアドレスレコード (HEX32)
タイプ : 05
B.7
プログラムの実行開始番地を指定するためのレコードです。
■ スタートリニアアドレスレコード (HEX32)
図 B.7-1 スタートリニアアドレスレコード (HEX32)
:
0
(a)
(b)
4
0
0
(c)
0
0
0
5
(d)
e1
e2
e3
e4
e5
(e)
e6
e7
e8
s1
s2
(f)
(g)
(e) は , 32bit の実行開始アドレスが設定されます。
e1 が上位桁になります。
(c) は未使用ですが 0 を設定します。
当レコードの出現箇所は , エンドレコード以前ならどこでもかまいません。
出現回数は , 0 または 1 になります。
December 1, 2014, CM71-00327-9
365
付録 C S レコード形式
Su pp or t
付録 C
So ft
Manu al
S レコード形式
S レコードフォーマットは , すべて "S" (0x53) の文字で始まり , S0 から S9 までの
8 タイプがあります。(S4 と S6 は使用しません )
■ S レコード形式
• S0 タイプ ( ヘッダレコード ) (「付録 C.1 S0 タイプ ( ヘッダレコード ) 」参照 )
• S1 タイプ ( データレコード :2 バイトアドレス )
「付録
(
C.2 S1 タイプ ( データレコード : 2 バイトアドレス ) 」参照 )
• S2 タイプ ( データレコード :3 バイトアドレス )
「付録
(
C.3 S2 タイプ ( データレコード : 3 バイトアドレス ) 」参照 )
• S3 タイプ ( データレコード :4 バイトアドレス )
「付録
(
C.4 S3 タイプ ( データレコード : 4 バイトアドレス ) 」参照 )
• S5 タイプ ( レコード数管理レコード )
(「付録 C.5 S5 タイプ ( レコード数管理レコード ) 」参照 )
• S7 タイプ ( ターミネータレコード )
(「付録 C.6 S7 タイプ ( ターミネータレコード ) 」参照 )
• S8 タイプ ( ターミネータレコード )
(「付録 C.7 S8 タイプ ( ターミネータレコード ) 」参照 )
• S9 タイプ ( ターミネータレコード )
(「付録 C.8 S9 タイプ ( ターミネータレコード ) 」参照 )
366
CM71-00327-9, December 1, 2014
付録 C S レコード形式
Support
Soft
Ma nual
S0 タイプ ( ヘッダレコード )
C.1
当レコードは , コメント記述のために使用します。
■ S0 タイプ ( ヘッダレコード )
図 C.1-1 S0 タイプ ( ヘッダレコード )
S
0
l1
l2
0
0
0
0
c1
c2
c3
c4
c*
c* s1
s2
(a)
(b)
(c)
(d)
(e)
2バイト
2バイト
4バイト
nバイト
2バイト
(f)
当レコードは , 上記の (a) ~ (e) で示す 5 つのフィールドで構成されます。
S0 タイプはヘッダレコードと呼ばれ , S1 ~ S9 の各レコードに先立ち , ファイルの先頭
に置かれます。各フィールドは , ASCII コードで設定されます。
(a):
タイプフィールドで , ASCII コードで "S0"(0x5330) の文字です。
(b):
(c) (d) (e) のバイト数を示します。
実際の 1 バイトデータを当フォーマットでは 2 バイトの ASCII コードで示しますの
で , (この部分の文字数 /2)が設定されます。
l1 が上位桁 , l2 が下位桁で , 0 ~ 255 の値が設定できます。
ASCII で "00" ~ "FF", 16 進で "0x3030" ~ "0x4646" になります。
(c):
使用しませんが ASCII で "0000" を設定します。
(d):
バージョン管理情報などのメッセージを設定します。
設定方法は , 下記の例を参照してください。
(e):
チェックサムです。
(b) (c) (d) の ASCII で表された 2 バイトのデータを , 1 バイトの 16 進で表し , 各バイ
トを符号なしでオーバフローを無視して加算します。
その結果の 1 の補数を求め , 2 バイトの ASCII にして設定します。
s1 が上位桁になります。
- 1 の補数:各ビットの 0 を 1 に , 1 を 0 にした値
(f):
一般に制御コード(CR, LF 等)が付加されます。
このフィールドのデータは , (a) の開始文字 "S" がくるまで読み飛ばします。
December 1, 2014, CM71-00327-9
367
付録 C S レコード形式
Su pp or t
So ft
Manu al
【例】
S00600004844521B
ASCII文字列の"HDR"を示す
368
CM71-00327-9, December 1, 2014
付録 C S レコード形式
Support
C.2
Soft
Ma nual
S1 タイプ ( データレコード : 2 バイトアドレス )
アドレスが , 2 バイトで表せる (0x0000 ~ 0xFFFF) オブジェクトデータを格納する
レコードです。
■ S1 タイプ ( データレコード : 2 バイトアドレス )
図 C.2-1 S1 タイプ ( データレコード : 2 バイトアドレス )
S
1
l1
l2
a1
a2
a3
a4
d1
d2
d3
d4
d*
d*
s1
s2
(a)
(b)
(c)
(d)
(e)
2バイト
2バイト
4バイト
nバイト
2バイト
(f)
S1 タイプは , 上記の (a) ~ (e) で示す 5 つのフィールドで構成されます。
(a):
タイプフィールドで , ASCII コードで "S1"(0x5331) の文字です。
(b):
(c) (d) (e) のバイト数を示します。
(「C.1 S0 タイプ ( ヘッダレコード ) 」の説明を参照してください。
)
(c):
(d) の最初のデータに割り付けられたアドレスを示します。
a1 が上位桁 , a4 が下位桁で , 0 ~ 65535 の値が設定できます。
ASCII で "0000" ~ "FFFF", 16 進で "0x30303030" ~ "0x46464646" になります。
(d):
オブジェクトデータで , 実際の 1 バイトデータを 2 バイトの ASCII で表現します。
上記の図では , d1, d2 が (c) が示すアドレスのバイトデータになります。
同様に d3, d4 は , 次のアドレスのバイトデータです。
(e):
チェックサムです。
(「C.1 S0 タイプ ( ヘッダレコード ) 」の説明を参照してください。
)
(f):
一般に制御コード(CR, LF 等)が付加されます。
(「C.1 S0 タイプ ( ヘッダレコード ) 」の説明を参照してください。
)
December 1, 2014, CM71-00327-9
369
付録 C S レコード形式
Su pp or t
So ft
Manu al
S2 タイプ ( データレコード : 3 バイトアドレス )
C.3
S2 タイプは , (c) フィールドの大きさが S1 タイプと異なるもので , 3 バイトアドレ
スが必要なオブジェクトデータを格納するためのレコードです。
■ S2 タイプ ( データレコード : 3 バイトアドレス )
図 C.3-1 S2 タイプ ( データレコード : 3 バイトアドレス )
S
2
l1
l2
a1
a2
a3
a4
a5
a6
d1
d2
d3
d4
d*
d*
s1
s2
(a)
(b)
(c)
(d)
(e)
2バイト
2バイト
6バイト
nバイト
2バイト
(f)
S2 タイプは , 上記の(c)フィールドの大きさが S1 タイプと異なるもので , 3 バイトア
ドレスが必要なオブジェクトデータを格納するためのレコードです。
370
CM71-00327-9, December 1, 2014
付録 C S レコード形式
Support
Soft
Ma nual
S3 タイプ ( データレコード : 4 バイトアドレス )
C.4
S3 タイプは , (c) フィールドの大きさが S1 タイプと異なるもので , 4 バイトアドレ
スが必要なオブジェクトデータを格納するためのレコードです。
■ S3 タイプ ( データレコード : 4 バイトアドレス )
図 C.4-1 S3 タイプ ( データレコード : 4 バイトアドレス )
S
3
l1
l2
a1
a2
a3
a4
a5
a6
a7
a8
d1
d2
d3
d4
d*
d*
s1
s2
(a)
(b)
(c)
(d)
(e)
2バイト
2バイト
8バイト
nバイト
2バイト
(f)
S3 タイプは , 上記の(c)フィールドの大きさが S1 タイプと異なるもので , 4 バイトア
ドレスが必要なオブジェクトデータを格納するためのレコードです。
December 1, 2014, CM71-00327-9
371
付録 C S レコード形式
Su pp or t
C.5
So ft
Manu al
S5 タイプ ( レコード数管理レコード )
ファイル中に含まれるレコードの数を設定します。
当レコードは , なくてもかまいません。出現場所は S0 と S9 の間で任意です。
■ S5 タイプ ( レコード数管理レコード )
図 C.5-1 S5 タイプ ( レコード数管理レコード )
S
5
0
3
n1
n2
n3
n4
s1
s2
(a)
(b)
(c)
(e)
2バイト
2バイト
4バイト
2バイト
(f)
S5 タイプは , 上記の(a)~(e)で示す 4 つのフィールドで構成されます °
(a):
タイプフィールドで , ASCII コードで "S5"(0x5335) の文字です。
(b):
(c) (e) のバイト数を示します。
(「C.1 S0 タイプ ( ヘッダレコード ) 」の説明を参照してください。
)
(c):
ファイル中のデータレコード(S1, S2, S3)の数を示します。
n1 が上位桁 , n4 が下位桁で , 0 ~ 65535 の値が設定できます。
ASCII で "0000" ~ "FFFF", 16 進で "0x30303030" ~ "0x46464646" になります。
(d):
フィールドはありません。
(e):
チェックサムです。
(「C.1 S0 タイプ ( ヘッダレコード ) 」の説明を参照してください。
)
(f):
一般に制御コード(CR, LF 等)が付加されます。
(「C.1 S0 タイプ ( ヘッダレコード ) 」の説明を参照してください。
)
372
CM71-00327-9, December 1, 2014
付録 C S レコード形式
Support
C.6
Soft
Ma nual
S7 タイプ ( ターミネータレコード )
ファイルの終了を表すレコードであり , 実行開始アドレス情報も含んでいます。
当レコードは , ファイルの最後に置かれます。
実行開始アドレスの表現に 4 バイト必要な場合のターミネータレコードです。
■ S7 タイプ ( ターミネータレコード )
図 C.6-1 S7 タイプ ( ターミネータレコード )
S
7
0
5
e1
e2
e3
e4
e5
e6
e7
e8
s1
s2
(a)
(b)
(c)
(e)
2バイト
2バイト
8バイト
2バイト
(f)
S7 タイプは , 上記の(a)~(e)で示す 4 つのフィールドで構成されます。
(a):
タイプフィールドで , ASCII コードで "S7"(0x5337) の文字です。
(b):
(c) (e) のバイト数を示します。"05" 固定となります。
(c):
実行開始アドレスを示します。
e1 が上位桁 , e8 が下位桁になります。
(d):
フィールドはありません。
(e):
チェックサムです。
(f):
一般に制御コード(CR, LF 等)が付加されます。
December 1, 2014, CM71-00327-9
373
付録 C S レコード形式
Su pp or t
C.7
So ft
Manu al
S8 タイプ ( ターミネータレコード )
S8 タイプは , (c) フィールドの大きさが S7 タイプと異なるもので , 実行開始アドレ
スの表現に 3 バイトが必要な場合のターミネータレコードです。
■ S8 タイプ ( ターミネータレコード )
図 C.7-1 S8 タイプ ( ターミネータレコード )
S
8
0
4
e1
e2
e3
e4
e5
e6
s1
s2
(a)
(b)
(c)
(e)
2バイト
2バイト
6バイト
2バイト
(f)
S8 タイプは , 上記の (c) フィールドの大きさが S7 タイプと異なるもので , 実行開始ア
ドレスの表現に 3 バイトが必要な場合のターミネータレコードです。
374
CM71-00327-9, December 1, 2014
付録 C S レコード形式
Support
C.8
Soft
Ma nual
S9 タイプ ( ターミネータレコード )
S9 タイプは , (c) フィールドの大きさが S7 タイプと異なるもので , 実行開始アドレ
スの表現に 2 バイトが必要な場合のターミネータレコードです。
■ S9 タイプ ( ターミネータレコード )
図 C.8-1 S9 タイプ ( ターミネータレコード )
S
9
0
3
e1
e2
e3
e4
s1
s2
(a)
(b)
(c)
(e)
2バイト
2バイト
4バイト
2バイト
(f)
S9 タイプは , 上記の (c) フィールドの大きさが S7 タイプと異なるもので , 実行開始ア
ドレスの表現に 2 バイトが必要な場合のターミネータレコードです。
December 1, 2014, CM71-00327-9
375
付録 D リンカのオプション一覧表
Su pp or t
付録 D
So ft
Manu al
リンカのオプション一覧表
付表 D-1 にリンカのオプション一覧を示します。
■ リンカのオプション一覧
付表 D-1 リンカのオプション一覧表 (1 / 2)
機能
オプション
備考
出力ロードモジュールファイル名指定
-o
デフォルト
デバッグ情報出力指定
-g
デバッグ情報削除指定
-Xg
デフォルト
絶対形式ロードモジュール出力指定
-a
デフォルト
相対形式ロードモジュール出力指定
-r
パディングデータ指定
-p
ROM 領域のフィル指定
-fill
外部シンボル出力指定
-symtab
外部シンボル出力抑止指定
マップリストファイル名指定
デフォルト
-m
デフォルト
-Xm
リスト表示の名前省略解除
-dt
リスト表示のデマングルシンボル名の出力抑止指定
リスト表示のデマングルシンボル名の出力指定
376
-Xsymtab
マップリスト出力抑止指定
メモリ使用情報リスト出力指定
デフォルト 0
-mmi
-Xdemangle
-demangle
デフォルト
リスト行の桁数指定
-pw
デフォルト 80
リスト 1 ページの行数指定
-pl
デフォルト 0
ROM 領域のチェックサム指定
-cs
警告メッセージ出力レベル指定
-w
ROM 領域指定
-ro
RAM 領域指定
-ra
セクション配置
-sc
セクショングループ指定
-gr
パックリンク指定
-pk
自動配置指定
-AL
検索ライブラリファイル指定
-l
ライブラリ検索パス指定
-L
シンボル個別のライブラリ指定
-el
ライブラリ検索抑止指定
-nl
デフォルトライブラリ検索抑止指定
-nd
エントリアドレス指定
-e
外部シンボル値の仮設定
-df
ターゲット CPU 指定
-cpu
デフォルト 0
必須
CM71-00327-9, December 1, 2014
付録 D リンカのオプション一覧表
Support
Soft
Ma nual
付表 D-1 リンカのオプション一覧表 (2 / 2)
機能
CPU 情報ファイル指定
オブジェクト混在チェックレベル指定
デバッグ情報存在チェック抑止指定
内蔵 ROM/RAM 領域の自動設定
オプション
-cif
-omcl
-set_rora
-Xset_rora
ユーザ指定領域のチェック指定
-check_rora
ユーザ指定領域のチェック抑止指定
-Xcheck_rora
セクション配置領域チェック指定
-check_locate
サイズ 0 のセクション配置チェック指定
サイズ 0 のセクション配置チェック抑止指定
プレリンク処理の抑止指定
-Xcheck_locate
デフォルト
デフォルト
デフォルト
-check_size0_sec
-Xcheck_size0_sec
デフォルト
-XPLNK
相対アセンブルリスト入力ディレクトリ指定
-alin
絶対形式アセンブルリスト出力ディレクトリ指定
-alout
絶対形式アセンブルリスト出力指定
-als
絶対形式アセンブルリスト出力モジュール指定
-alsf
絶対形式アセンブルリスト出力抑止指定
-Xals
ROM/RAM, ARRAY リスト出力指定
-alr
ROM/RAM, ARRAY リスト出力モジュール指定
-alrf
ROM/RAM, ARRAY リスト出力抑止指定
-Xalr
ROM/RAM, ARRAY リストのシンボルとアドレスの
表示位置指定
デフォルト 1
-NCI0302LIB
内蔵 ROM/RAM 領域自動設定の抑止指定
セクション配置領域チェック抑止指定
備考
-na/-an
外部シンボル相互参照情報リスト出力指定
-xl
外部シンボル相互参照情報リストファイル名指定
-xlf
外部シンボル相互参照情報リスト出力抑止指定
-Xxl
ローカルシンボルリスト出力指定
-sl
ローカルシンボルリストファイル名の指定
-slf
ローカルシンボルリスト出力抑止指定
-Xsl
セクション詳細マップリスト出力指定
-ml
セクション詳細マップリストファイル名の指定
-mlf
セクション詳細マップリスト出力抑止指定
-Xml
デフォルトオプションファイル読み込み抑止指定
-Xdof
* 共通オプション
-f
* 共通オプション
ヘルプメッセージ表示指定
-help
* 共通オプション
版数 / メッセージ出力指定
-V
* 共通オプション
版数 / メッセージ出力抑止
-XV
* 共通オプション
-cmsg
* 共通オプション
-Xcmsg
* 共通オプション
ワーニング発生時の終了コードを 1 にする指定
-cwno
* 共通オプション
ワーニング発生時の終了コードを 0 にする指定
-Xcwno
* 共通オプション
オプションファイル読み込み指定
終了メッセージ表示指定
終了メッセージ表示抑止指定
December 1, 2014, CM71-00327-9
377
付録 E ライブラリアンのオプション一覧表
Su pp or t
付録 E
So ft
Manu al
ライブラリアンのオプション一覧表
付表 E-1 にライブラリアンのオプション一覧を示します。
■ ライブラリアンのオプション一覧
付表 E-1 ライブラリアンのオプション一覧表
機能
モジュールの追加 ( 登録 )
-a
モジュールの置換 ( 登録 )
-r
モジュールの削除
-d
モジュールの抽出
-x
リストファイルの出力指定
-m
リストファイルの出力抑止指定
備考
-Xm
デフォルト
リストファイルの詳細情報の出力指定
-dt
s, d, r, a
リスト 1 ページの行数指定
-pl
デフォルト 60
リスト 1 行の桁数指定
-pw
デフォルト 80
バックアップファイルの作成
バックアップファイルの作成抑止
-b
-Xb
ライブラリファイルの内容検査
-c
ファイル内容の最適化
-O
デバッグ情報の出力指定
-g
デフォルト
デバッグ情報の出力抑止指定
-Xg
CPU 情報ファイル指定
-cif
ターゲット CPU 指定
-cpu
必須
オブジェクト混在チェックレベル指定
-omcl
デフォルト 1
デフォルトオプションファイル読込み抑止指定
-Xdof
* 共通オプション
-f
* 共通オプション
ヘルプメッセージ表示指定
-help
* 共通オプション
版数 / メッセージ出力指定
-V
* 共通オプション
-XV
* 共通オプション
-cmsg
* 共通オプション
-Xcmsg
* 共通オプション
ワーニング発生時の終了コードを 1 にする指定
-cwno
* 共通オプション
ワーニング発生時の終了コードを 0 にする指定
-Xcwno
* 共通オプション
オプションファイル読込み指定
版数 / メッセージ出力抑止指定
終了メッセージ出力指定
終了メッセージ出力抑止指定
378
オプション
CM71-00327-9, December 1, 2014
付録 F オブジェクト形式コンバータのコマンドおよびオプション一覧表
Support
付録 F
Soft
Ma nual
オブジェクト形式コンバータのコマンドおよびオプ
ション一覧表
付表 F-1 にオブジェクト形式コンバータのコマンド一覧を , 付表 F-2 にオブジェク
ト形式コンバータのオプション一覧を示します。
■ オブジェクト形式コンバータのコマンド一覧
付表 F-1 オブジェクト形式コンバータのコマンド一覧
コマンド名
機能
f2ms
絶対形式ロードモジュール
→ S フォーマット
f2hs
絶対形式ロードモジュール
→ HEX フォーマット (HEX8/HEX16/HEX32)
f2is
絶対形式ロードモジュール
→ HEX8 フォーマット
f2es
絶対形式ロードモジュール
→ HEX16 フォーマット
m2ms
S フォーマット
→
S フォーマット ( 整形 )
h2hs
HEX フォーマット
→
HEX フォーマット ( 整形 )
m2bs
S フォーマット
→
バイナリデータ ( メモリイメージ )
h2bs
HEX フォーマット
→
バイナリデータ ( メモリイメージ )
m2is
S フォーマット
→
HEX8 フォーマット
m2es
S フォーマット
→
HEX16 フォーマット
i2ms
HEX8 フォーマット
→
S フォーマット
e2ms
HEX16 フォーマット
→
S フォーマット
December 1, 2014, CM71-00327-9
379
付録 F オブジェクト形式コンバータのコマンドおよびオプション一覧表
Su pp or t
So ft
Manu al
■ オブジェクト形式コンバータのオプション一覧
付表 F-2 オブジェクト形式コンバータのオプション一覧
機能
出力ファイル名の指定
-o
パディングデータ指定
-p
備考
出力範囲指定
-ran
m2ms, h2hs, m2bs, h2bs
のみ 必須
スプリットモード指定
-sp
m2bs, h2bs のみ
-Xsp
m2bs, h2bs のみ
-m
m2bs, h2bs のみ
-Xm
m2bs, h2bs のみ
-S1, -S2, -S3
f2ms, m2ms のみ
出力ファイル HEX フォーマット指定
-I16, -I20, -I32
f2hs, h2hs のみ
スタートアドレスレコード出力指定
-entry
f2hs のみ
スタートアドレスレコード出力抑止指定
-Xentry
f2hs のみ
整形指定
-adjust
f2ms, f2hs のみ
-ST
m2ms, h2hs のみ
-Xdof
* 共通オプション
-f
* 共通オプション
ヘルプメッセージ表示指定
-help
* 共通オプション
版数 / メッセージ出力指定
-V
* 共通オプション
版数 / メッセージ出力抑止
-XV
* 共通オプション
終了メッセージ表示指定
-cmsg
* 共通オプション
-Xcmsg
* 共通オプション
ワーニング発生時の終了コードを 1 にする指定
-cwno
* 共通オプション
ワーニング発生時の終了コードを 0 にする指定
-Xcwno
* 共通オプション
スプリットモード抑止指定
マップリストファイル作成指定
マップリストファイル作成抑止指定
出力ファイル S フォーマット指定
開始アドレス変更指定
デフォルトオプションファイル読込み抑止指定
オプションファイル読込み指定
終了メッセージ表示抑止指定
380
オプション
CM71-00327-9, December 1, 2014
付録 G OS による仕様の相違点
Support
付録 G
Soft
Ma nual
OS による仕様の相違点
付表 G-1 , 付表 G-2 , 付表 G-3 に , OS による仕様の相違点を示します。
■ OS による仕様の相違点
付表 G-1 OS による仕様の相違点
OS 依存項目
OS 種別
UNIX 系 OS 版
Windows 版
する
しない
ファイル名の大文字 / 小文字の区別
ファイル名のデフォルト拡張子
小文字
大文字小文字区別なし
環境変数 TMP 未指定時の作業ディレクトリ
/tmp
カレントディレクトリ
コマンドラインのワイルドカードによる
ファイル指定
シェルで展開されツー
ルに渡される。
ツール内部で展開する。
付表 G-2 ワイルドカード展開の違い
ワイルドカード
パターン
OS 種別
UNIX 系 OS 版
Windows 版
?
任意の 1 文字とマッチする。
ヌル文字または任意の1文字とマッチする。
*
任意の文字列とマッチする。
任意の文字列とマッチする。
付表 G-3 ワイルドカード展開の具体例
ワイルドカードパ
ターン
OS 種別
UNIX 系 OS 版
a1.obj などがマッチする。
a.obj はマッチしない。
a1.obj などがマッチする。
a.obj もマッチする。
a*
a1.obj, a.obj, a.abs…などがマッチ
する。
a1.obj, a.obj, a.abs…などがマッチする。
*
abcz, abc.z などがマッチする。
abcz, abc.z などがマッチする。
a?.obj
December 1, 2014, CM71-00327-9
Windows 版
381
付録 H 主な変更内容
Su pp or t
付録 H
So ft
Manu al
主な変更内容
ページ
場所
変更箇所
Revision 8.1
-
-
社名変更および記述フォーマットの変換
Revision 9.0
382
8
1.5 起動メッセージ
社名部分を削除
34
3.2.4 版数 / メッセージ出力
指定 (-V)
社名部分を削除
91
5.13 未使用関数削除
未使用関数削除機能を追加
92
6.1 リンカのオプション一
覧
未使用関数削除機能を追加
94
6.2 リンカのオプション詳
細
未使用関数削除機能を追加
134
6.2.31 未使用関数削除指定
(-lnkopt)
未使用関数削除機能を追加
135
6.2.32 C/C++ のプログラム
実行開始シンボル指定 (entryc)
未使用関数削除機能を追加
136
6.2.33 削除対象外関数指定
(-Xdel)
未使用関数削除機能を追加
137
6.2.34 未使用関数削除情報
ファイル格納パス指定 (ufiin)
未使用関数削除機能を追加
178, 179
7.2.2 マップリスト
未使用関数削除機能を追加
183, 184
7.2.4 シンボルリスト
未使用関数削除機能を追加
188, 189
7.3.2 ROM/RAM, ARRAY
リスト
未使用関数削除機能を追加
190, 191
7.3.3 アセンブルソースリ
スト
未使用関数削除機能を追加
194
7.3.5 クロスリファレンス
リスト
未使用関数削除機能を追加
196, 197
7.4 外部シンボル相互参照
情報リストファイル
未使用関数削除機能を追加
198, 199
7.5 ローカルシンボル情報
リストファイル
未使用関数削除機能を追加
200
7.6 セクション配置詳細情
報リストファイル
未使用関数削除機能を追加
328
E4305L
未使用関数削除機能を追加
CM71-00327-9, December 1, 2014
索引
Support
Soft
Ma nual
索引
A
-a
絶対形式ロードモジュールの出力指定 (-a) ......101
モジュールの追加 ( 登録 )(-a) .............................234
-adjust
整形指定 (-adjust) ..................................................288
-AL
自動配置指定 (-AL) ..............................................130
-AL 1
-AL 1 が指定された場合の配置例 ........................67
-AL 2
-AL 2 が指定された場合の配置例 ........................69
-alin
相対アセンブルリスト入力ディレクトリ指定
(-alin) ................................................................161
-alout
絶対形式アセンブルリスト出力ディレクトリ指定
(-alout) ..............................................................162
-alr
ROM/RAM, ARRAY リスト出力指定 (-alr) .......166
-alrf
ROM/RAM, ARRAY リスト出力モジュール指定
(-alrf) .................................................................167
-als
絶対形式アセンブルリスト出力指定 (-als) .......163
-alsf
絶対形式アセンブルリスト出力モジュール指定
(-alsf) .................................................................164
-an
ROM/RAM, ARRAY リストのシンボルとアドレス
の表示位置指定 (-na, -an) ..............................169
B
-cmsg
終了メッセージ表示指定 (-cmsg) .........................36
-cmsg オプション
終了メッセージと -cmsg オプション ..................... 9
CPU
下位 CPU 用オブジェクトの混在 .................88, 228
ライブラリ編集時に指定される -cpu オプション
と混在可能な CPU の関係 ............................227
リンク時に指定される -cpu オプションと混在可
能な CPU の関係 .............................................. 88
-cpu
ターゲット CPU 指定 (-cpu) ........................143, 250
CPU 情報ファイル
CPU 情報ファイル ..................................................86
CPU 情報ファイル指定 (-cif) ......................144, 249
CPU 情報ファイル名 .............................................. 86
-cwno
ワーニング発生時の終了コードを 1 にする指定
(-cwno) ...............................................................38
D
-d
モジュールの削除 (-d) .........................................236
-demangle
リスト表示のデマングルシンボル名の出力指定
(-demangle) ....................................................... 113
-df
外部シンボル値の仮設定 (-df) ............................142
-dt
リスト表示の名前の省略解除 (-dt) .................... 110
リストファイルの詳細情報の出力指定 (-dt) .... 240
E
-b
-e
バックアップファイルの作成 (-b) ......................243
C
-c
ライブラリファイルの内容検査 (-c) ..................245
C/C++
C/C++ のプログラム実行開始シンボル指定
(-entryc) ............................................................138
-check_locate
セクション配置領域チェック指定 (-check_locate)
...........................................................................153
-check_rora
ユーザ指定領域のチェック指定 (-check_rora)
...........................................................................150
-check_size0_sec
サイズ 0 のセクション配置チェック指定
(-check_size0_sec) ............................................157
-cif
CPU 情報ファイル指定 (-cif) .......................144, 249
December 1, 2014, CM71-00327-9
エントリアドレスの指定 (-e) ..............................141
e2ms
e2ms(HEX16 フォーマット→ S フォーマット変換
) ......................................................................... 321
-el
シンボル個別のライブラリの指定 (-el) ............134
-entry
スタートアドレスレコード出力指定 (-entry) ...285
-entryc
C/C++ のプログラム実行開始シンボル指定
(-entryc) ............................................................ 138
F
-f
オプションファイルからの読込み指定 (-f) ........ 31
f2es
f2es( 絶対形式ロードモジュール→ HEX16 フォー
マット変換 ) ....................................................292
383
索引
Su pp or t
f2hs
f2hs( 絶対形式ロードモジュール→ HEX フォー
マット変換 ) ....................................................290
f2is
f2is( 絶対形式ロードモジュール→ HEX8 フォー
マット変換 ) ....................................................291
f2ms
f2ms( 絶対形式ロードモジュール→ S フォーマッ
ト変換 ) ............................................................289
FELANG
FELANG ( メッセージ言語 ) .................................15
FETOOL
FETOOL ( インストールディレクトリ ) ..............16
FPU
FPU 付き FR81 用オブジェクトと FPU なしの
FR81,FR80,FR 用オブジェクトの混在 ...89, 228
FR
FR81 共通オブジェクト .................................90, 230
FR 用オブジェクトと FR80,FR81 用オブジェクト
の混在 ........................................................89, 228
全 FR 共通オブジェクト ................................89, 229
Manu al
i2ms
i2ms(HEX8 フォーマット→ S フォーマット変換 )
........................................................................... 320
-I32
出力 HEX フォーマット指定 (-I16/-I20/-I32)
...................................................................284, 303
L
-L
ライブラリ検索パスの指定 (-L) .........................133
-l
検索ライブラリファイルの指定 (-l) .................. 132
-len
出力レコード内データ長指定 (-len) .................. 299
LIB911
LIB911 ( ライブラリファイル検索ディレクトリ )
............................................................................. 17
-lnkopt
未使用関数削除指定 (-lnkopt) ............................. 137
M
G
-m
-g
デバッグ情報の出力指定 (-g) ................................99
デバッグ情報の未削除指定 (-g) ..........................247
-gr
セクショングループの指定 (-gr) ........................128
H
-help
ヘルプメッセージの表示 (-help) ...........................33
HEX16 フォーマット
e2ms(HEX16 フォーマット→ S フォーマット変換
) .........................................................................321
f2es( 絶対形式ロードモジュール→ HEX16 フォー
マット変換 ) ....................................................292
m2es(S フォーマット→ HEX16 フォーマット変換
) .........................................................................319
HEX8 フォーマット
f2is( 絶対形式ロードモジュール→ HEX8 フォー
マット変換 ) ....................................................291
i2ms(HEX8 フォーマット→ S フォーマット変換 )
...........................................................................320
m2is( S フォーマット→ HEX8 フォーマット変換 )
...........................................................................318
HEX フォーマット
f2hs( 絶対形式ロードモジュール→ HEX フォー
マット変換 ) ....................................................290
I
-I16
出力 HEX フォーマット指定 (-I16/-I20/-I32)
...................................................................284, 303
-I20
出力 HEX フォーマット指定 (-I16/-I20/-I32)
...................................................................284, 303
384
So ft
マップリストファイルの作成指定 (-m) ............313
マップリストファイル名の指定 (-m) ................ 108
リストファイルの出力指定 (-m) ........................ 238
m2es
m2es(S フォーマット→ HEX16 フォーマット変換
) ......................................................................... 319
m2is
m2is(S フォーマット→ HEX8 フォーマット変換 )
........................................................................... 318
-ml
セクション詳細マップリスト出力指定 (-ml) ...177
-mlf
セクション詳細マップリストファイル名の指定
(-mlf) ................................................................. 178
-mmi
メモリ使用情報リストの出力指定 (-mmi) ........111
N
-na
ROM/RAM, ARRAY リストのシンボルとアドレス
の表示位置指定 (-na, -an) ..............................169
-NCI0302LIB
デバッグ情報存在チェック抑止指定
(-NCI0302LIB) ................................................. 147
-nd
デフォルトライブラリ検索の抑止指定 (-nd) ...136
-nl
ライブラリ検索の抑止指定 (-nl) ........................ 135
O
-O
ファイル内容の最適化 (-O) ................................246
-o
出力ファイル名の変更 (-o) ................................. 275
出力ロードモジュールファイル名指定 (-o) .......98
CM71-00327-9, December 1, 2014
索引
Support
Soft
-omcl
オブジェクト混在チェックレベル指定 (-omcl)
...................................................................145, 251
OPT
OPT( デフォルトオプションファイル格納ディレ
クトリ ) ..............................................................19
OPT911
OPT911 ( デフォルトオプションファイル格納
ディレクトリ ) ..................................................18
OS
OS による仕様の相違点 ......................................381
P
Ma nual
ROM/RAM, ARRAY リスト出力モジュール指定
(-alrf) ................................................................. 167
ROM/RAM, ARRAY リスト出力抑止指定 (-Xalr)
........................................................................... 168
ROM/RAM, ARRAY リストのシンボルとアドレス
の表示位置指定 (-na, -an) ..............................169
ROM/RAM 領域名
ROM/RAM 領域名 ..................................................86
ROM → RAM 転送
ROM → RAM 転送セクション ............................. 83
ROM → RAM 転送セクションの使用方法 ......... 83
ROM → RAM 転送セクションの注意 ................. 84
S
-p
パディング (-p) ......................................................277
パディングデータ指定 (-p) ..................................103
-pk
パックリンク指定 (-pk) ........................................129
-pl
リスト 1 ページの行数指定 (-pl) ................115, 241
-pw
リスト 1 行の桁数指定 (-pw) ...............................242
リスト行の桁数指定 (-pw) ...................................114
Q
Q&A
オブジェクト形式コンバータの使用上の Q&A
...........................................................................325
ライブラリファイルの作成に関する Q&A .......262
リンカの使用上の Q&A .......................................213
R
-r
相対形式ロードモジュールの出力指定 (-r) ......102
モジュールの置換 ( 登録 )(-r) ..............................235
-ra
RAM 領域の指定 (-ra) ..........................................125
RAM
RAM 領域の指定 (-ra) ..........................................125
ROM/RAM 領域の設定とセクション配置 ..........82
ROM および RAM 領域の指定 .............................56
-ran
出力範囲指定 (-ran) .......................................300, 310
-ro
ROM 領域の指定 (-ro) ..........................................124
ROM
ROM/RAM 領域の設定とセクション配置 ..........82
ROM および RAM 領域の指定 .............................56
ROM 化支援 .............................................................56
ROM 領域の指定 (-ro) ..........................................124
ROM/RAM
内蔵 ROM/RAM 領域自動設定の抑止指定
(-Xset_rora) .......................................................149
内蔵 ROM/RAM 領域の自動設定 (-set_rora) .....148
ROM/RAM, ARRAY リスト
ROM/RAM, ARRAY リスト ................................196
ROM/RAM, ARRAY リスト出力指定 (-alr) .......166
December 1, 2014, CM71-00327-9
S0 タイプ
S0 タイプ ( ヘッダレコード ) ............................. 367
-S1
出力 S フォーマット指定 (-S1/-S2/-S3) ......283, 301
S1 タイプ
S1 タイプ ( データレコード :2 バイトアドレス )
........................................................................... 369
-S2
出力 S フォーマット指定 (-S1/-S2/-S3) ......283, 301
S2 タイプ
S2 タイプ ( データレコード :3 バイトアドレス )
........................................................................... 370
-S3
出力 S フォーマット指定 (-S1/-S2/-S3) ......283, 301
S3 タイプ
S3 タイプ ( データレコード :4 バイトアドレス )
........................................................................... 371
S5 タイプ
S5 タイプ ( レコード数管理レコード ) ............. 372
S7 タイプ
S7 タイプ ( ターミネータレコード ) ................. 373
S8 タイプ
S8 タイプ ( ターミネータレコード ) ................. 374
S9 タイプ
S9 タイプ ( ターミネータレコード ) ................. 375
-sc
セクション配置順 / アドレスの指定 (-sc) ......... 126
-set_rora
内蔵 ROM/RAM 領域の自動設定 (-set_rora) .....148
-sl
ローカルシンボル情報リスト出力指定 (-sl) .....174
-slf
ローカルシンボル情報リストファイル名の指定
(-slf) .................................................................. 175
-sp
スプリットモード指定 (-sp) ................................311
-ST
開始アドレス変更指定 (-ST) ............................... 304
-symtab
外部シンボル情報出力指定 (-symtab) ................ 106
S フォーマット
e2ms(HEX16 フォーマット→ S フォーマット変換
) ......................................................................... 321
f2ms( 絶対形式ロードモジュール→ S フォーマッ
ト変換 ) ............................................................ 289
i2ms(HEX8 フォーマット→ S フォーマット変換 )
........................................................................... 320
385
索引
Su pp or t
m2es(S フォーマット→ HEX16 フォーマット変換
) .........................................................................319
m2is(S フォーマット→ HEX8 フォーマット変換 )
...........................................................................318
T
TMP
TMP( ワークディレクトリ ) ..................................14
U
-ufiin
未使用関数削除情報ファイル格納パス指定
(-ufiin) ...............................................................140
V
-V
版数 / メッセージ出力指定 (-V) ............................34
-V オプション
起動メッセージと -V オプション ..........................8
W
-w
警告メッセージ出力レベルの指定 (-w) .............123
X
-x
モジュールの抽出 (-x) ..........................................237
-Xalr
ROM/RAM, ARRAY リスト出力抑止指定 (-Xalr)
...........................................................................168
-Xals
絶対形式アセンブルリスト出力抑止指定 (-Xals)
...........................................................................165
-Xb
バックアップファイルの作成抑止 (-Xb) ...........244
-Xcheck_locate
セクション配置領域チェック抑止指定
(-Xcheck_locate) ...............................................156
-Xcheck_rora
ユーザ指定領域のチェック抑止指定
(-Xcheck_rora) ..................................................152
386
So ft
Manu al
-Xcheck_size0_sec
サイズ 0 のセクション配置チェック抑止指定
(-Xcheck_size0_sec) .........................................159
-Xcmsg
終了メッセージ表示抑止指定 (-Xcmsg) ..............37
-Xcwno
ワーニング発生時の終了コードを 0 にする指定
(-Xcwno) .............................................................39
-Xdel
削除対象外関数指定 (-Xdel) ................................139
-Xdemangle
リスト表示のデマングルシンボル名の出力抑止指
定 (-Xdemangle) ............................................... 112
-Xdof
デフォルトオプションファイル抑止指定 (-Xdof)
............................................................................. 30
-Xentry
スタートアドレスレコード出力抑止指定(-Xentry)
........................................................................... 287
-Xg
デバッグ情報の削除指定 (-Xg) ..................100, 248
-xl
外部シンボル相互参照情報リスト出力指定 (-xl)
........................................................................... 171
-xlf
外部シンボル相互参照情報リストファイル名の指
定 (-xlf) .............................................................172
-Xm
マップリスト出力の抑止指定 (-Xm) ................. 109
マップリストファイルの作成抑止指定 (-Xm)
........................................................................... 315
リストファイルの出力抑止指定 (-Xm) ............. 239
-Xml
セクション詳細マップリスト出力抑止指定(-Xml)
........................................................................... 179
-XPLNK
プレリンク処理の抑止指定 (-XPLNK) ..............160
-Xset_rora
内蔵 ROM/RAM 領域自動設定の抑止指定
(-Xset_rora) ......................................................149
-Xsl
ローカルシンボル情報リスト出力抑止指定 (-Xsl)
........................................................................... 176
-Xsp
スプリットモード抑止指定 (-Xsp) .....................312
-Xsymtab
外部シンボル情報出力抑止指定 (-Xsymtab) .....107
-XV
版数 / メッセージ出力抑止 (-XV) ........................ 35
-Xxl
外部シンボル相互参照情報リスト出力抑止指定
(-Xxl) ................................................................ 173
CM71-00327-9, December 1, 2014
索引
Support
Soft
あ
アセンブルソースリスト
アセンブルソースリストの形式 .........................199
い
一般形式
一般形式 .................................................................358
え
エラーメッセージ
アセンブルリスト内のエラーメッセージ .........194
コンバータのエラーメッセージ .........................352
ライブラリアンのエラーメッセージ .................345
リンカのエラーメッセージ .................................330
リンケージキットのエラーメッセージの表示形式
...........................................................................329
リンケージキットのエラーメッセージ分類 .....328
エントリアドレス
エントリアドレスの指定 (-e) ..............................141
エントリアドレス / シンボル値
エントリアドレス / シンボル値の設定 ...............54
エントリアドレス指定
エントリアドレス指定 ...........................................58
エンドレコード
エンドレコード (HEX8/HEX16/HEX32) ............361
お
オブジェクト
FPU 付き FR81 用オブジェクトと FPU なしの
FR81,FR80,FR 用オブジェクトの混在 ...89, 228
FR81 共通オブジェクト .........................................90
FR 用オブジェクトと FR80,FR81 用オブジェクト
の混在 ........................................................89, 228
SOFTUNE V3/V5 言語ツールで作成されたオブ
ジェクト ..........................................................225
SOFTUNE V3/V5 ツールで作成したオブジェクト
の混在 ................................................................87
下位 CPU 用オブジェクトの混在 .................88, 228
全 FR 共通オブジェクト ........................................89
オブジェクト形式コンバータ
オブジェクト形式コンバータのオプション一覧
...........................................................................380
オブジェクト形式コンバータの概要 .................268
オブジェクト形式コンバータの共通オプションの
種類 ..................................................................274
オブジェクト形式コンバータのコマンド一覧
...........................................................................379
オブジェクト形式コンバータのコマンド実行
...........................................................................272
オブジェクト形式コンバータの使用上の Q&A
...........................................................................325
オブジェクト形式コンバータの制限事項 .........324
オブジェクト混在チェック
オブジェクト混在チェックレベル指定 (-omcl)
...................................................................145, 251
December 1, 2014, CM71-00327-9
Ma nual
オプション
オブジェクト形式コンバータのオプション一覧
........................................................................... 380
オブジェクト形式コンバータの共通オプションの
種類 .................................................................. 274
オプション一覧 ....................................................232
オプション形式 ......................................................22
オプション指定時の注意と評価 .......................... 24
オプションの指定に関する注意 ........................ 261
オプションファイルからの読込み指定 (-f) ........ 31
相反関係にあるオプションの指定例 .................. 25
デフォルトオプションファイル .......................... 46
デフォルトオプションファイル抑止指定 (-Xdof)
............................................................................. 30
バイナリコンバータのオプション一覧 ............308
フォーマットアジャスタのオプション一覧 .... 297
包含関係にあるオプションの指定例 .................. 25
ライブラリアンのオプション一覧 .................... 378
リンカのオプション一覧 ..............................94, 376
ロードモジュールコンバータのオプション一覧
........................................................................... 281
オプションパラメータ
オプションパラメータでの数値表現 .................. 23
オプションファイル
オプションファイル .............................................. 42
オプションファイルからの読込み指定 (-f) ........ 31
オプションファイル指定による実行 .................. 42
オプションファイル中の継続指定 ...................... 43
オプションファイル中のコメント指定 ..............44
デフォルトオプションファイル .......................... 46
か
開始アドレス変更
開始アドレス変更指定 (-ST) ............................... 304
外部シンボル情報出力指定
外部シンボル情報出力指定 (-symtab) ................ 106
外部シンボル情報出力抑止指定
外部シンボル情報出力抑止指定 (-Xsymtab) .....107
外部シンボル相互参照情報リスト
外部シンボル相互参照情報リスト .................... 182
外部シンボル相互参照情報リスト出力指定 (-xl)
........................................................................... 171
外部シンボル相互参照情報リスト出力抑止指定
(-Xxl) ................................................................ 173
外部シンボル相互参照情報リストファイル .... 205
外部シンボル相互参照情報リストファイル名の指
定 (-xlf) .............................................................172
外部シンボル値
外部シンボル値の仮設定 (-df) ............................142
外部シンボル値の設定 .......................................... 58
外部定義 / 参照シンボル情報
リスト出力概要 ....................................................257
拡張セグメントアドレスレコード
拡張セグメントアドレスレコード (HEX16/
HEX32) .............................................................362
拡張リニアアドレスレコード
拡張リニアアドレスレコード (HEX32) ............364
関数
削除された関数のシンボルリスト表示例 ........192
削除対象外関数指定 (-Xdel) ................................139
387
索引
Su pp or t
未使用関数削除機能により削除されたセクション
のマップリスト表示例 ..................................187
未使用関数削除情報ファイル格納パス指定
(-ufiin) ...............................................................140
き
起動メッセージ
起動メッセージと -V オプション ..........................8
起動メッセージ表示の選択 ...................................55
強制終了
強制終了 .....................................................................6
共通オブジェクト
FR81 共通オブジェクト .......................................230
全 FR 共通オブジェクト ......................................229
共通オプション
共通オプション一覧 ...............................................28
く
グループ化
セクションのグループ化 .......................................56
クロスリファレンスリスト
クロスリファレンスリスト .................................203
け
警告チェックレベル
警告チェックレベルの選択 ...................................55
警告メッセージ
警告メッセージ出力レベルの指定 (-w) .............123
検索ライブラリ
検索ライブラリの指定 ...........................................71
検索ライブラリファイル
検索ライブラリファイル指定 ...............................57
検索ライブラリファイルの指定 (-l) ..................132
シンボルごとの検索ライブラリファイル指定 ...57
こ
コマンド
オブジェクト形式コンバータのコマンド一覧
...........................................................................379
コマンドライン
コマンドラインの形式 .............................................5
コマンドラインの指定例 .......................................26
コントロールリスト
コントロールリスト部のリスト出力フォーマット
...........................................................................184
コントロールリスト部のリスト表示例 .............185
コンバータ
コンバータのエラーメッセージ .........................352
さ
最適化
ファイル内容の最適化 (-O) .................................246
サポート範囲
リンケージキットのサポート範囲 .........................4
388
So ft
Manu al
し
識別子
識別子の区別 .......................................................... 11
識別子の構成文字種 .............................................. 11
識別子文字数の制限 .............................................. 11
識別名表示
リスト出力時の識別名表示 ..................................11
自動配置
自動配置指定 (-AL) .............................................. 130
終了コード
終了コードの値と終了状態 ....................................7
ワーニング発生時の終了コードを 0 にする指定
(-Xcwno) .............................................................39
ワーニング発生時の終了コードを 1 にする指定
(-cwno) ...............................................................38
終了メッセージ
終了メッセージと -cmsg オプション ..................... 9
終了メッセージ表示指定 (-cmsg) .........................36
終了メッセージ表示の選択 ..................................55
終了メッセージ表示抑止指定 (-Xcmsg) ..............37
出力 HEX フォーマット
出力 HEX フォーマット指定 (-I16/-I20/-I32)
........................................................... 284, 298, 303
出力 S フォーマット
出力 S フォーマット指定 (-S1/-S2/-S3)
........................................................... 283, 298, 301
出力範囲
出力範囲指定 (-ran) ...................... 298, 300, 309, 310
出力ファイル名
出力ファイル名の変更 (-o) ................................. 275
出力フォーマット
出力フォーマットの指定 ...................................... 55
出力レコード
出力レコード内データ長指定 (-len) .................. 299
出力ロードモジュールファイル
出力ロードモジュールファイル名指定 (-o) .......98
出力ロードモジュールファイル名の指定 ..........55
シンボルリスト
削除された関数のシンボルリスト表示例 ........192
シンボルリスト部のリスト出力フォーマット
........................................................................... 191
シンボルリスト部のリスト表示例 .................... 192
す
スタートアドレスレコード出力指定
スタートアドレスレコード出力指定 (-entry) ...285
スタートアドレスレコード出力抑止指定
スタートアドレスレコード出力抑止指定(-Xentry)
........................................................................... 287
スタートセグメントアドレスレコード
スタートセグメントアドレスレコード (HEX16/
HEX32) .............................................................363
スタートリニアアドレスレコード
スタートリニアアドレスレコード (HEX32) .... 365
スプリットモード
スプリットモード指定 (-sp) ........................309, 311
スプリットモードの概要 .................................... 307
スプリットモード抑止指定 (-Xsp) .............309, 312
CM71-00327-9, December 1, 2014
索引
Support
Soft
せ
整形指定
整形指定 (-adjust) ..................................................288
セクション
ROM/RAM 領域の設定とセクション配置 ..........82
ROM → RAM 転送セクション .............................83
ROM → RAM 転送セクションの使用方法 .........83
ROM → RAM 転送セクションの注意 .................84
セクショングループの指定 (-gr) ........................128
セクショングループの指定がある場合の配置例
.............................................................................64
セクション種別と配置先 .......................................68
セクション内容種別 ...............................................59
セクションの共有結合 ...........................................60
セクションのグループ化 .......................................56
セクションの結合順序が指定された場合の配置例
.............................................................................63
セクションの結合順序が指定されなかった場合の
配置例 ..........................................................62, 63
セクションの結合属性 ...........................................59
セクションの識別 ...................................................59
セクションの自動配置 ...........................................65
セクションの単純連結結合 ...................................60
セクションの配置順と配置アドレスの指定 .......56
セクションの配置属性 ...........................................59
セクションのリンク ...............................................61
セクション配置順 / アドレスの指定 (-sc) .........126
セクション名 ...........................................................59
セクション詳細マップリスト
セクション詳細マップリスト .............................182
セクション詳細マップリスト出力指定 (-ml) ...177
セクション詳細マップリスト出力抑止指定(-Xml)
...........................................................................179
セクション詳細マップリストファイル名の指定
(-mlf) .................................................................178
セクション情報リスト
セクション情報リスト .........................................201
セクションの結合 / 配置
セクションの結合 / 配置に関する制御 ...............54
セクション配置
セクション配置領域チェック指定 (-check_locate)
...........................................................................153
セクション配置領域チェック抑止指定
(-Xcheck_locate) ...............................................156
セクション配置詳細情報リスト
セクション配置詳細情報リストファイル .........209
セクション配置チェック
サイズ 0 のセクション配置チェック指定
(-check_size0_sec) ............................................157
セクション配置チェック抑止
サイズ 0 のセクション配置チェック抑止指定
(-Xcheck_size0_sec) .........................................159
絶対形式アセンブルリスト
絶対形式アセンブルリスト .................................182
絶対形式アセンブルリスト出力指定 (-als) .......163
絶対形式アセンブルリスト出力ディレクトリ指定
(-alout) ..............................................................162
絶対形式アセンブルリスト出力モジュール指定
(-alsf) .................................................................164
絶対形式アセンブルリスト出力抑止指定 (-Xals)
...........................................................................165
December 1, 2014, CM71-00327-9
Ma nual
絶対形式アセンブルリストの形式 .................... 193
絶対形式ロードモジュール
f2es( 絶対形式ロードモジュール→ HEX16 フォー
マット変換 ) ....................................................292
f2hs( 絶対形式ロードモジュール→ HEX フォー
マット変換 ) ....................................................290
f2is( 絶対形式ロードモジュール→ HEX8 フォー
マット変換 ) ....................................................291
f2ms( 絶対形式ロードモジュール→ S フォーマッ
ト変換 ) ............................................................ 289
絶対形式ロードモジュールの出力指定 (-a) ...... 101
そ
相対アセンブルリスト
相対アセンブルリスト入力ディレクトリ指定
(-alin) ................................................................ 161
相対形式ロードモジュール
相対形式ロードモジュールの出力指定 (-r) ...... 102
その他のコンバータ
その他のコンバータの種類 ................................271
た
ターゲット CPU
ターゲット CPU 指定 (-cpu) ........................143, 250
ターミネータレコード
S7 タイプ ( ターミネータレコード ) ................. 373
S8 タイプ ( ターミネータレコード ) ................. 374
S9 タイプ ( ターミネータレコード ) ................. 375
て
ディスク容量
必要なディスク容量についての注意 ................ 260
データ長
出力レコード内データ長指定 (-len) ..........298, 299
データレコード
S1 タイプ ( データレコード :2 バイトアドレス )
........................................................................... 369
S2 タイプ ( データレコード :3 バイトアドレス )
........................................................................... 370
S3 タイプ ( データレコード :4 バイトアドレス )
........................................................................... 371
データレコード (HEX8/HEX16/HEX32) ............360
デバッグ情報
デバッグ情報存在チェック抑止指定
(-NCI0302LIB) ................................................. 147
デバッグ情報の継承 .............................................. 55
デバッグ情報の削除 ............................................ 223
デバッグ情報の削除指定 (-Xg) ..................100, 248
デバッグ情報の出力指定 (-g) ............................... 99
デバッグ情報の未削除指定 (-g) .........................247
デフォルトオプションファイル
デフォルトオプションファイル .......................... 46
デフォルトオプションファイル抑止指定 (-Xdof)
............................................................................. 30
389
索引
Su pp or t
な
内蔵 ROM/RAM 領域自動設定
内蔵 ROM/RAM 領域自動設定の抑止指定 .........86
に
入出力ファイル / メッセージ
入出力ファイル / メッセージに関する制御 .......53
入力オブジェクトファイル
入力オブジェクトファイルの指定 .......................55
は
配置アドレス
配置アドレスの決定方法 .................................66, 68
バイナリコンバータ
バイナリコンバータ .............................................270
バイナリコンバータ , アジャスタの制限事項
...........................................................................324
バイナリコンバータのオプション一覧 .............308
バイナリコンバータの概要 .................................306
バックアップファイル
バックアップファイルの作成 (-b) ......................243
バックアップファイルの作成抑止 (-Xb) ...........244
パックリンク
パックリンク指定 (-pk) ........................................129
パディング
パディング (-p) ......................................................277
パディングデータ
パディングデータ指定 (-p) ..................................103
パラメータ
パラメータ ...............................................................22
版数 / メッセージ出力
版数 / メッセージ出力指定 (-V) ............................34
版数 / メッセージ出力抑止 (-XV) .........................35
ふ
ファイル名
ファイル名の文字コード .......................................12
ファイル名の文字数 ...............................................12
フォーマットアジャスタ
フォーマットアジャスタ .....................................270
フォーマットアジャスタのオプション一覧 .....297
フォーマットアジャスタの概要 .........................294
フォーマットアジャスタの機能 .........................295
プレリンク処理
プレリンク処理の抑止指定 (-XPLNK) ..............160
プログラム実行開始シンボル
C/C++ のプログラム実行開始シンボル指定
(-entryc) ............................................................138
へ
ヘッダ
ヘッダ形式 .............................................................195
ヘッダレコード
S0 タイプ ( ヘッダレコード ) ..............................367
ヘルプメッセージ
ヘルプメッセージ ...................................................10
390
So ft
Manu al
ヘルプメッセージの表示 (-help) .......................... 33
ま
マップリスト
マップリスト出力の抑止指定 (-Xm) ................. 109
マップリストファイルの作成指定 (-m) ....309, 313
マップリストファイルの作成抑止指定 (-Xm)
...................................................................309, 315
マップリストファイル名の指定 (-m) ................ 108
マップリスト部のリスト出力フォーマット .... 186
マップリスト部のリスト表示例 ........................ 187
未使用関数削除機能により削除されたセクション
のマップリスト表示例 ..................................187
マングル名
マングル名 .............................................................. 11
み
未使用関数
未使用関数 .............................................................. 91
未使用関数削除機能 .............................................. 91
未使用関数削除機能により削除されたセクション
のマップリスト表示例 ..................................187
未使用関数削除指定 (-lnkopt) ............................. 137
め
メモリ使用情報リスト
メモリ使用情報リストの出力指定 (-mmi) ........111
メモリ使用情報リスト部のリスト出力フォーマッ
ト ......................................................................188
メモリ使用情報リスト部のリスト表示例 ........190
も
モジュール
モジュールの置換 ( 登録 ) (-r) ............................235
モジュールの削除 (-d) .........................................236
モジュールの抽出 (-x) .........................................237
モジュールの追加 ( 登録 ) (-a) ............................234
ら
ライブラリ
SOFTUNE V3/V5 言語ツールで作成されたライブ
ラリ .................................................................. 226
シンボル個別のライブラリの指定 (-el) ............134
ライブラリ編集時に指定される -cpu オプション
と混在可能な CPU の関係 ............................227
ライブラリアン
ライブラリアンのエラーメッセージ ................ 345
ライブラリアンのオプション一覧 .................... 378
ライブラリアンの制限事項 ................................260
ライブラリアンの役割 ........................................ 218
ライブラリファイルの作成に関する Q&A ...... 262
ライブラリ検索
デフォルトライブラリ検索の抑止指定 (-nd) ...136
ライブラリ検索の抑止 .......................................... 57
ライブラリ検索の抑止指定 (-nl) ........................ 135
CM71-00327-9, December 1, 2014
索引
Support
Soft
ライブラリ検索パス
ライブラリ検索パス指定 .......................................57
ライブラリ検索パスの指定 (-L) .........................133
ライブラリの検索
ライブラリの検索に関する制御 ...........................54
ライブラリファイル
ライブラリファイルが 1 つの場合の検索例 1 ....72
ライブラリファイルが 1 つの場合の検索例 2 ....74
ライブラリファイルが 1 つの場合の検索例 3 ....75
ライブラリファイルが個別に指定された場合の処
理 ........................................................................80
ライブラリファイルが複数の場合の検索例 1 ....76
ライブラリファイルが複数の場合の検索例 2 ....78
ライブラリファイル内のモジュール抽出 .........222
ライブラリファイルの検索順序 ...........................71
ライブラリファイルの新規作成 .........................220
ライブラリファイルの内容検査 (-c) ..................245
ライブラリファイルの内容表示 .........................224
ライブラリファイルの内容チェック .................224
ライブラリファイルの編集
ライブラリファイルの編集 .................................220
り
リスト
リスト 1 行の桁数指定 (-pw) ...............................242
リスト 1 ページの行数指定 (-pl) ................115, 241
リスト行の桁数指定 (-pw) ...................................114
リスト出力概要 .....................................255, 256, 257
リスト表示の名前の省略解除 (-dt) ....................110
リスト表示のデマングルシンボル名
リスト表示のデマングルシンボル名の出力指定
(-demangle) .......................................................113
リスト表示のデマングルシンボル名の出力抑止指
定 (-Xdemangle) ...............................................112
リストファイル
リストファイルの形式変更 ...................................55
リストファイルの構成 .........................................254
リストファイルの出力指定 (-m) ........................238
リストファイルの出力抑止指定 (-Xm) ..............239
リストファイルの詳細情報の出力指定 (-dt) ....240
領域チェック
ユーザ指定領域のチェック指定 (-check_rora)
...........................................................................150
ユーザ指定領域のチェック抑止指定
(-Xcheck_rora) ..................................................152
リンカ
リンカの使用上の Q&A .......................................213
リンカのエラーメッセージ .................................330
リンカのオプション一覧 ...............................94, 376
December 1, 2014, CM71-00327-9
Ma nual
リンカの概要 .......................................................... 52
リンカの制限事項 ................................................212
リンカの予約名 ....................................................212
リンク
リンク時に指定される -cpu オプションと混在可
能な CPU の関係 .............................................. 88
リンクリストファイル
リンクリストファイル ........................................ 182
リンクリストファイルの構成 ............................183
リンケージキット
リンケージキットのエラーメッセージの表示形式
........................................................................... 329
リンケージキットのエラーメッセージ分類 .... 328
リンケージキットのサポート範囲 ........................ 4
れ
レコード開始アドレス変更
レコード開始アドレス変更指定 (-ST) ............... 298
レコード数管理レコード
S5 タイプ ( レコード数管理レコード ) ............. 372
ろ
ローカルシンボル情報リスト
ローカルシンボル情報リスト ............................182
ローカルシンボル情報リスト出力指定 (-sl) .....174
ローカルシンボル情報リスト出力抑止指定 (-Xsl)
........................................................................... 176
ローカルシンボル情報リストファイル名の指定
(-slf) .................................................................. 175
ローカルシンボル情報リストファイル
ローカルシンボル情報リストファイル ............207
ロードモジュールコンバータ
ロードモジュールコンバータのオプション一覧
........................................................................... 281
ロードモジュールコンバータの概要 ................ 280
ロードモジュールコンバータの種類 ................ 270
わ
ワークディレクトリ
TMP( ワークディレクトリ ) ................................. 14
ワーニング発生時の終了コード
ワーニング発生時の終了コードを 0 にする指定
(-Xcwno) .............................................................39
ワーニング発生時の終了コードを 1 にする指定
(-cwno) ...............................................................38
391
索引
Su pp or t
392
So ft
Manu al
CM71-00327-9, December 1, 2014
Support
Soft
Ma nual
奥付
CM71-00327-9
Spansion • SUPPORT SOFT MANUAL
FR ファミリ
32 ビット・マイクロコントローラ
SOFTUNE® リンケージキット マニュアル V6 対応
2014 年 12 月 Rev. 9.0
発行
Spansion Inc.
編集
コーポレートコミュニケーション部
December 1, 2014, CM71-00327-9
393
Su pp or t
So ft
Manu al
免責事項
本資料に記載された製品は、通常の産業用 , 一般事務用 , パーソナル用 , 家庭用などの一般的用途 ( ただし、用途の限定はあ
りません ) に使用されることを意図して設計・製造されています。(1) 極めて高度な安全性が要求され、仮に当該安全性が
確保されない場合、社会的に重大な影響を与えかつ直接生命・身体に対する重大な危険性を伴う用途 ( 原子力施設における
核反応制御 , 航空機自動飛行制御 , 航空交通管制 , 大量輸送システムにおける運行制御 , 生命維持のための医療機器 , 兵器シ
ステムにおけるミサイル発射制御等をいう ) 、ならびに (2) 極めて高い信頼性が要求される用途 ( 海底中継器 , 宇宙衛星等を
いう ) に使用されるよう設計・製造されたものではありません。上記の製品の使用法によって惹起されたいかなる請求また
は損害についても、Spansion は、お客様または第三者、あるいはその両方に対して責任を一切負いません。半導体デバイス
はある確率で故障が発生します。当社半導体デバイスが故障しても、結果的に人身事故 , 火災事故 , 社会的な損害を生じさ
せないよう、お客様において、装置の冗長設計 , 延焼対策設計 , 過電流防止対策設計 , 誤動作防止設計などの安全設計をお
願いします。本資料に記載された製品が、外国為替及び外国貿易法、米国輸出管理関連法規などの規制に基づき規制され
ている製品または技術に該当する場合には、本製品の輸出に際して、同法に基づく許可が必要となります。
商標および注記
このドキュメントは、断りなく変更される場合があります。本資料には Spansion が開発中の Spansion 製品に関する情報が
記載されている場合があります。Spansion は、それらの製品に対し、予告なしに仕様を変更したり、開発を中止したりする
権利を有します。このドキュメントに含まれる情報は、現状のまま、保証なしに提供されるものであり、その正確性 , 完全
性 , 実施可能性および特定の目的に対する適合性やその市場性および他者の権利を侵害しない事を保証するものでなく、ま
た、明示 , 黙示または法定されているあらゆる保証をするものでもありません。Spansion は、このドキュメントに含まれる
情報を使用することにより発生したいかなる損害に対しても責任を一切負いません。
Copyright © 2002-2014 Spansion All rights reserved.
商標:Spansion®, Spansion ロゴ ( 図形マーク ), MirrorBit®, MirrorBit® EclipseTM, ORNANDTM 及びこれらの組合せは、米国・
日本ほか諸外国における Spansion LLC の商標です。第三者の社名・製品名等の記載はここでは情報提供を目的として表記
したものであり、各権利者の商標もしくは登録商標となっている場合があります。
394
CM71-00327-9, December 1, 2014