本ドキュメントは Cypress (サイプレス) 製品に関する情報が記載されております。本ドキュメント には、仕様の開発元企業として「スパンション」または「Spansion」の名が記載されておりますが、 これらの製品は Cypress が新規および既存のお客様に引き続き提供してまいります。 商品仕様の継続性について Cypress 製品として提供することに伴う商品仕様としての変更はなく、ドキュメントとしての変更も ありません。また本ページのお知らせは、変更情報として追記いたしません。本ドキュメントに変更 情報が記載されている場合、それは本お知らせを除いた前版からの変更点です。なお、今後改訂は必 要に応じて行われますが、その際の変更内容は改訂後のドキュメントに記載いたします。 オーダ型格および品名について Spansion は既存のオーダ型格および品名を引き続きサポートいたします。これらの製品をご注文の 際は、このドキュメントに記載されているオーダ型格および品名をご使用ください。 詳しいお問い合わせ先 Cypress 製品およびそのソリューションの詳細につきましては、お近くの営業所へお問い合わせくだ さい。 サイプレスについて サイプレス (銘柄コード:CY) は、車載や産業機器、ネットワーキング プラットフォームから高機能 民生機器およびモバイル機器まで、今日の最先端組み込みシステム向けに高性能で高品質のソリュー TM TM ションを提供します。NOR フラッシュ メモリや F-RAM 、SRAM、Traveo マイクロコントロー ® ラー、業界唯一の PSoC プログラマブル システムオンチップ ソリューション、アナログおよび PMIC Power Management IC、CapSense®静電容量タッチセンシング コントローラー、Wireless ® BLE Bluetooth Low-Energy、USB コネクティビティ ソリューションなど、幅広い差別化製品ポート フォリオを、一貫した革新性と業界最高クラスの技術サポート、比類のないシステム バリューとと もにグローバルに提供します。 F2MC-16 ファミリ SOFTUNE® リンケージキットマニュアル V3 対応 Support Soft Manual Publication Number CM41-00315 MB90880ÉVÉäÅ[ÉY Cover Sheet Revision 6.0 Issue Date July 31, 2015 F2MC-16 ファミリ SOFTUNE® リンケージキットマニュアル V3 対応 Support Soft Manual MB90880ÉVÉäÅ[ÉY Cover Sheet Support Soft Ma nual はじめに ■ 本書の目的と対象読者 本書は , Spansion SOFTUNE リンケージキットの機能および使用方法を説明したもので す。 本書は , F2MC-16 ファミリマイクロプロセッサを使用した応用プログラムを開発する 技術者を対象にしています。本書をご一読ください。 リンケージキットはリンカ , ライブラリアン , コンバータの 3 種類のプログラムで構成 されています。 ■ 商標 F2MC は Spansion LLC の商標です。 SOFTUNE は Spansion LLC の商標です。 Microsoft, Windows は , 米国 Microsoft Corporation の米国およびその他の国における登 録商標です。 その他の記載されている社名および製品名などの固有名詞は , 各社の商標または登録 商標です。 ■ 本書の全体構成 本書は , 以下に示す 4 部構成となっています。 第 I 部 リンケージキット編 この部では , リンケージキットに含まれるツールの概要と , ツール全体に共通する 項目について説明します。 第 II 部 リンカ編 この部では , リンカの仕様 , オプションおよび出力リストなどについて説明します。 第 III 部 ライブラリアン編 この部では , ライブラリアンの仕様 , オプションおよび出力リストなどについて説 明します。 第 IV 部 オブジェクト形式コンバータ編 この部では , オブジェクト形式コンバータの種類 , オプション一覧 , 機能説明および オブジェクト形式の変換について説明します。 付録 付録では,リンケージキットのエラーメッセージ, HEXフォーマットおよびSフォー マットのレコード形式などを記載しています。 July 31, 2015, CM41-00315-6 i Su pp or t ii So ft Manu al CM41-00315-6, July 31, 2015 Support Soft Ma nual 目次 第I部 リンケージキット編 .................................................................................. 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 LIB907 ...................................................................................................................... 17 1.10.5 OPT907 .................................................................................................................... 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 July 31, 2015, CM41-00315-6 iii Su pp or t 4.4 4.5 So ft Manu al オプションファイルの記述例 ............................................................................................. 45 デフォルトオプションファイル ......................................................................................... 46 第 II 部 リンカ編 .................................................................................................. 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 DIR 属性セクションの配置について .................................................................................. 5.11 CPU 情報ファイル .............................................................................................................. 5.12 リンカでのオブジェクト混在 ............................................................................................. 5.13 リンカでの関数呼び出しインタフェースの異なるオブジェクトの混在について .............. 5.14 未使用関数削除 .................................................................................................................. 第6章 52 53 55 56 57 58 59 61 62 63 64 65 66 67 69 72 73 74 75 76 77 78 79 80 83 86 87 88 89 リンカのオプション ............................................................................... 91 6.1 リンカのオプション一覧 .................................................................................................... 92 6.2 リンカのオプション詳細 .................................................................................................... 95 6.2.1 出力ロードモジュールファイル名指定 (-o) .............................................................. 96 6.2.2 デバッグ情報の出力指定 (-g) ................................................................................... 97 6.2.3 デバッグ情報の削除指定 (-Xg) ................................................................................. 98 6.2.4 絶対形式ロードモジュールの出力指定 (-a) .............................................................. 99 6.2.5 相対形式ロードモジュールの出力指定 (-r) ............................................................. 100 6.2.6 ROM 領域のフィル指定 (-fill) .................................................................................. 101 6.2.7 マップリストファイル名の指定 (-m) ...................................................................... 103 6.2.8 マップリスト出力の抑止指定 (-Xm) ....................................................................... 104 6.2.9 リスト表示の名前の省略解除 (-dt) ......................................................................... 105 6.2.10 メモリ使用情報リストの出力指定 (-mmi) .............................................................. 106 iv CM41-00315-6, July 31, 2015 Support 6.2.11 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 Soft Ma nual リスト行の桁数指定 (-pw) ...................................................................................... リスト 1 ページの行数指定 (-pl) ............................................................................. ROM 領域のチェックサム指定 (-cs) ....................................................................... 警告メッセージ出力レベルの指定 (-w) .................................................................. ROM 領域の指定 (-ro) ............................................................................................. RAM 領域の指定 (-ra) ............................................................................................. セクション配置順 / アドレスの指定 (-sc) ............................................................... セクショングループの指定 (-gr) ............................................................................. レジスタバンク領域の指定 (-rg) ............................................................................. 自動配置指定 (-AL) ................................................................................................. 検索ライブラリファイルの指定 (-l) ........................................................................ ライブラリ検索パスの指定 (-L) .............................................................................. シンボル個別のライブラリの指定 (-el) .................................................................. ライブラリ検索の抑止指定 (-nl) ............................................................................. デフォルトライブラリ検索の抑止指定 (-nd) .......................................................... 未使用関数削除指定 (-lnkopt) ................................................................................. C ソースのプログラム実行開始シンボル指定 (-entryc) ......................................... 削除対象外関数指定 (-Xdel) ................................................................................... 未使用関数削除情報ファイル格納パス指定 (-ufiin) ................................................ エントリアドレスの指定 (-e) ................................................................................. 外部シンボル値の仮設定 (-df) ................................................................................ ターゲット CPU 指定 (-cpu) ................................................................................... CPU 情報ファイル指定 (-cif) .................................................................................. デバッグ情報存在チェック抑止指定 (-NCI0302LIB) .............................................. 内蔵 ROM/RAM 領域の自動設定 (-set_rora) .......................................................... 内蔵 ROM/RAM 領域自動設定の抑止指定 (-Xset_rora) ......................................... ユーザ指定領域のチェック指定 (-check_rora) ....................................................... ユーザ指定領域のチェック抑止指定 (-Xcheck_rora) ............................................. セクション配置領域チェック指定 (-check_locate) ................................................ セクション配置領域チェック抑止指定 (-Xcheck_locate) ...................................... ユーザ指定外セクションのチェック指定 (-check_section) ................................... ユーザ指定外セクションのチェック抑止指定 (-Xcheck_section) .......................... スタンバイモード遷移命令チェック指定 (-check_SCF) ........................................ スタンバイモード遷移命令チェック抑止指定 (-Xcheck_SCF) .............................. フェッチ単位チェックの指定 (-Wf) ........................................................................ 引数のレジスタ渡しのロードモジュール出力指定オプション (-rp) ....................... 引数のスタック渡しのロードモジュール出力指定オプション (-Xrp) .................... DIR 属性セクション合計サイズチェック指定 (-check_dirsize) ............................. DIR 属性セクション合計サイズチェック抑止指定 (-Xcheck_dirsize) .................... サイズ 0 のセクション配置チェック指定 (-check_size0_sec) ............................... サイズ 0 のセクション配置チェック抑止指定 (-Xcheck_size0_sec) ..................... 相対アセンブルリスト入力ディレクトリ指定 (-alin) ............................................. 絶対アセンブルリスト出力ディレクトリ指定 (-alout) ........................................... 絶対アセンブルリスト出力指定 (-als) .................................................................... 絶対アセンブルリスト出力モジュール指定 (-alsf) ................................................. 絶対アセンブルリスト出力抑止指定 (-Xals) .......................................................... ROM/RAM, ARRAY リスト出力指定 (-alr) ............................................................. ROM/RAM, ARRAY リスト出力モジュール指定 (-alrf) .......................................... ROM/RAM, ARRAY リスト出力抑止指定 (-Xalr) .................................................... July 31, 2015, CM41-00315-6 107 108 109 116 117 118 119 122 123 125 127 128 129 130 131 132 134 135 136 137 138 139 140 141 142 143 144 146 147 150 151 153 154 156 158 160 161 162 163 164 166 167 168 169 170 171 172 173 174 v Su pp or t 6.2.60 6.2.61 6.2.62 6.2.63 6.2.64 6.2.65 6.2.66 6.2.67 6.2.68 6.2.69 第7章 So ft Manu al ROM/RAM, ARRAY リストのシンボルとアドレスの表示位置指定 (-na, -an) ...................................................................................................................... 175 外部シンボル相互参照情報リスト出力指定 (-xl) .................................................... 外部シンボル相互参照情報リストファイル名の指定 (-xlf) ..................................... 外部シンボル相互参照情報リスト出力抑止指定 (-Xxl) .......................................... ローカルシンボル情報リスト出力指定 (-sl) ........................................................... ローカルシンボル情報リストファイル名の指定 (-slf) ............................................ ローカルシンボル情報リスト出力抑止指定 (-Xsl) .................................................. セクション詳細マップリスト出力指定 (-ml) .......................................................... セクション詳細マップリストファイル名の指定 (-mlf) ........................................... セクション詳細マップリスト出力抑止指定 (-Xml) ................................................ リンカの出力リストファイル .............................................................. 187 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 第 III 部 第9章 9.1 9.2 9.3 9.4 9.5 9.6 9.7 9.8 vi 177 178 179 180 181 182 183 184 185 188 189 190 192 194 196 198 200 201 203 205 207 209 210 212 リンカの制限事項および Q &A ............................................................ 215 リンカの制限事項 ............................................................................................................. 216 リンカの使用上の Q &A ................................................................................................... 217 ライブラリアン編 ................................................................................. 221 ライブラリアンの仕様 ......................................................................... 223 ライブラリアンの機能 ...................................................................................................... ライブラリアンの機能分類 ............................................................................................... ライブラリファイルの作成編集 ....................................................................................... ライブラリファイル内のモジュール抽出 ......................................................................... ライブラリのデバッグ情報の削除 .................................................................................... ライブラリファイルの内容チェックと表示 ..................................................................... ライブラリアンでのオブジェクト混在 ............................................................................. ライブラリアンでの関数呼び出しインタフェースの 異なるオブジェクトの混在について ................................................................................ 224 226 227 229 230 231 232 233 CM41-00315-6, July 31, 2015 Support 第 10 章 Soft Ma nual ライブラリアンのオプション .............................................................. 235 10.1 ライブラリアンのオプション一覧 .................................................................................... 10.2 ライブラリアンのオプション詳細 .................................................................................... 10.2.1 モジュールの追加 ( 登録 )(-a) ................................................................................. 10.2.2 モジュールの置換 ( 登録 )(-r) .................................................................................. 10.2.3 モジュールの削除 (-d) ............................................................................................ 10.2.4 モジュールの抽出 (-x) ............................................................................................ 10.2.5 リストファイルの出力指定 (-m) ............................................................................. 10.2.6 リストファイルの出力抑止指定 (-Xm) ................................................................... 10.2.7 リストファイルの詳細情報の出力指定 (-dt) ........................................................... 10.2.8 リスト 1 ページの行数指定 (-pl) ............................................................................. 10.2.9 リスト 1 行の桁数指定 (-pw) .................................................................................. 10.2.10 バックアップファイルの作成 (-b) .......................................................................... 10.2.11 バックアップファイルの作成抑止 (-Xb) ................................................................. 10.2.12 ライブラリファイルの内容検査 (-c) ....................................................................... 10.2.13 ファイル内容の最適化 (-O) .................................................................................... 10.2.14 デバッグ情報の出力指定 (-g) ................................................................................. 10.2.15 デバッグ情報の出力抑止指定 (-Xg) ........................................................................ 10.2.16 ターゲット CPU 指定 (-cpu) ................................................................................... 10.2.17 CPU 情報ファイル指定 (-cif) .................................................................................. 10.2.18 引数のレジスタ渡しのライブラリ出力指定オプション (-rp) ................................. 10.2.19 引数のスタック渡しのライブラリ出力指定オプション (-Xrp) ............................... 第 11 章 11.1 11.2 11.3 11.4 ライブラリアンのリストフォーマット ................................................ 259 リストファイルの情報内容 ............................................................................................... モジュール名リスト ......................................................................................................... モジュールごとの詳細情報 ............................................................................................... ライブラリ内の外部定義 / 参照シンボル情報 ................................................................... 第 12 章 236 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255 256 258 260 261 262 263 ライブラリアンの制限事項および Q &A ............................................. 265 12.1 ライブラリアンの制限事項 ............................................................................................... 266 12.2 ライブラリアンの使用上の Q &A ..................................................................................... 267 第 IV 部 オブジェクト形式コンバータ編 ............................................................ 269 第 13 章 オブジェクト形式コンバータの仕様 .................................................... 271 13.1 オブジェクト形式コンバータの概要 ................................................................................ 272 13.2 オブジェクト形式コンバータの種類 ................................................................................ 274 13.3 オブジェクト形式コンバータの実行 ................................................................................ 276 第 14 章 オブジェクト形式コンバータの共通オプション .................................. 277 14.1 オブジェクト形式コンバータのオプション一覧 .............................................................. 278 14.2 出力ファイル名の変更 (-o) ............................................................................................... 279 14.3 パディング (-p) ................................................................................................................. 281 July 31, 2015, CM41-00315-6 vii Su pp or t 第 15 章 So ft Manu al ロードモジュールコンバータ (f2ms, f2hs, f2is, f2es) ........................ 283 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 フォーマット変換 ) .......................................... 15.6 f2is( 絶対形式ロードモジュール→ HEX8 フォーマット変換 ), f2es( 絶対形式ロードモジュール→ HEX16 フォーマット変換 ) ...................................... 第 16 章 18.1 18.2 18.3 18.4 310 312 313 314 315 316 317 319 その他のコンバータ ............................................................................. 321 m2is(S フォーマット→ HEX8 フォーマット変換 ) .......................................................... m2es(S フォーマット→ HEX16 フォーマット変換 ) ....................................................... i2ms(HEX8 フォーマット→ S フォーマット変換 ) .......................................................... e2ms(HEX16 フォーマット→ S フォーマット変換 ) ....................................................... 第 19 章 298 301 302 303 304 305 307 308 バイナリコンバータ (m2bs, h2bs) ...................................................... 309 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 章 295 フォーマットアジャスタ (m2ms, h2hs) .............................................. 297 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 章 284 285 286 287 288 289 291 292 293 294 322 323 324 325 オブジェクト形式コンバータの制限事項および Q &A ........................ 327 19.1 オブジェクト形式コンバータの制限事項 ......................................................................... 328 19.2 オブジェクト形式コンバータの使用上の Q &A ............................................................... 329 viii CM41-00315-6, July 31, 2015 Support 付録 付録 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 C.6 C.7 C.8 付録 D 付録 E 付録 F 付録 G 付録 H H.1 H.2 H.3 H.4 H.5 H.6 H.7 H.8 付録 I 付録 J 付録 K 付録 L 付録 M 付録 N 索引 Soft Ma nual .............................................................................................................. 331 リンケージキットのエラーメッセージ ....................................................................... 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 タイプ ( レコード数管理レコード ) ........................................................................ S7 タイプ ( ターミネータレコード ) ........................................................................... S8 タイプ ( ターミネータレコード ) ........................................................................... S9 タイプ ( ターミネータレコード ) ........................................................................... リンカのオプション一覧表 ......................................................................................... ライブラリアンのオプション一覧表 ........................................................................... オブジェクト形式コンバータのコマンドおよびオプション一覧表 ............................ OS による仕様の相違点 .............................................................................................. F2MC-16LX スタンバイモード遷移命令チェックツール ............................................ F2MC-16LX スタンバイモード遷移命令チェックツールの概要 ................................. スタンバイモード遷移命令チェックツールの操作方法 .............................................. チェック手順 ............................................................................................................... 警告メッセージ ........................................................................................................... チェック方法 ............................................................................................................... 検出可能なスタンバイモード遷移命令 ....................................................................... スタンバイモード遷移命令チェックツールの制限事項 .............................................. スタンバイモード遷移のための低消費電力モード制御レジスタ (LPMCR) へ アクセスする際の注意事項 ......................................................................................... SOFTUNE リンカ (flnk907s) と旧版リンカ (link907a) の仕様の差異について ........... SOFTUNE ライブラリアン (flib907s) と旧版ライブラリアン (lib907a) の 仕様の差異について .................................................................................................... SOFTUNE ロードモジュールコンバータ (f2ms, f2hs) と 旧版ロードモジュールコンバータ (lmc907a) の仕様の差異について ......................... SOFTUNE 言語ツール移行時のオブジェクト同一性確認方法 ................................... 関数呼び出しインタフェース変更ガイド .................................................................... 主な変更内容 ............................................................................................................... 332 362 363 365 366 367 368 369 370 371 372 373 374 375 376 377 378 379 380 383 384 386 387 388 389 395 396 397 400 402 403 407 412 415 417 421 430 .............................................................................................................. 433 July 31, 2015, CM41-00315-6 ix Su pp or t x So ft Manu al CM41-00315-6, July 31, 2015 Support 第I部 Soft Ma nual リンケージキット編 リンケージキットに含まれるツールの概要と , ツール全体に共通する項目について説 明します。 第 1 章 リンケージキットの仕様 第 2 章 オプション 第 3 章 共通オプション 第 4 章 オプションファイル July 31, 2015, CM41-00315-6 1 Su pp or t 2 So ft Manu al CM41-00315-6, July 31, 2015 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 環境変数 July 31, 2015, CM41-00315-6 3 第 1 章 リンケージキットの仕様 1.1 リンケージキットの概要 Su pp or t 1.1 So ft Manu al リンケージキットの概要 リンケージキットは , オブジェクトモジュールの結合に使用するリンカと , オブジェ クトモジュールをまとめて管理するライブラリアン , その他 , ROM 書込み用のオブ ジェクト形式へのコンバータで構成されています。 ■ リンケージキットのサポート範囲 図 1.1-1 に , リンケージキットのサポート範囲を示します。 図 1.1-1 リンケージキットのサポート範囲 テキストエディタ Cソースプログラム .c アセンブラ ソースプログラム Cコンパイラ .asm アセンブラ オブジェクトモジュール ライブラリアン .obj リンクマップリスト ライブラリファイル リンカ .mp1 絶対形式 アセンブルリスト .lib 絶対形式 ロードモジュール .als コンバータ .abs リンカ出力リスト ROM化オブジェクト形式 .mpx .mhx .mpm .ehx .mps .ihx .hex デバッガ 4 ROMライタ CM41-00315-6, July 31, 2015 第 1 章 リンケージキットの仕様 1.2 起動方法 Support 1.2 Soft Ma nual 起動方法 リンケージキット ( リンカ , ライブラリアン , オブジェクト形式コンバータ ) を実行 するための , コマンドラインの形式および指定方法について説明します。 ■ コマンドラインの形式 SOFTUNEリンケージキットのコマンドラインの指定方法(起動コマンドシンタックス) は , 以下のとおりです。 • コマンドラインの指定方法 : コマンド名に続けて , ファイル名とオプションを必要 なだけ繰り返し指定する。 以下の説明では , オプションの指定をコマンド名の次にしてありますが , オプションの 記述位置は , ファイル名の前後どちらでもかまいません。オプションについて , 詳しく は「第 2 章 オプション」を参照してください。 ● リンカ flnk907s [ オプション ] … < ファイル名 > … < ファイル名 > には , 入力するオブジェクトモジュールファイル名を指定します。 複数のファイル名を指定するときは , スペースを入れます。 また , *.obj のようにワイルドカードの使用もできます。ファイル名のワイルドカード の展開はOSに依存するため, 「付録 G OSによる仕様の相違点」を参考にしてください。 リンカでは , -cpu オプションでターゲット CPU の指定が必要です。リンク処理実行の 際は , 必ず -cpu オプションを指定してください。 ● ライブラリアン flib907s [ オプション ] … < ファイル名 > < ファイル名 > には , 編集対象のライブラリファイルを指定します。 ライブラリアンでは , -cpu オプションでターゲット CPU の指定が必要です。ライブラ リ処理実行の際は , 必ず -cpu オプションを指定してください。 ● オブジェクト形式コンバータ コマンド名 [ オプション ] … < ファイル名 > < ファイル名 > には , それぞれのツールの機能に応じたオブジェクト形式のファイル名 を指定します。以下の 3 形式のファイルが対象となります。 • リンカ出力の絶対形式ロードモジュール • S フォーマット • HEX フォーマット July 31, 2015, CM41-00315-6 5 第 1 章 リンケージキットの仕様 1.3 強制終了 Su pp or t 1.3 So ft Manu al 強制終了 プログラムの実行を途中で止めたい場合は , CTRL キーを押しながら , C キーを押す ( 以降 , "CTRL-C を押す " と記述します ) ことにより行えます。CTRL-C が押される と , プログラムの実行が中断されます。 ■ 強制終了 CTRL-C により , プログラム処理を中止した場合 , 出力結果のファイルは正しく作成さ れません。リンケージキットが実行時に使用する作業ファイルは消去されます。 6 CM41-00315-6, July 31, 2015 第 1 章 リンケージキットの仕様 1.4 終了コード Support 1.4 Soft Ma nual 終了コード リンケージキットの各ツールは , その処理の終了状態を終了コードとして OS に返し ます。 ■ 終了コードの値と終了状態 リンケージキットの各ツールは , その処理の終了状態 ( 正常に終了したかまたはエラー が発生したかなどの状態 ) を終了コードとして OS に返します。終了コードと処理の終 了状態の関係を , 表 1.4-1 に示します。 表 1.4-1 終了コードと処理の終了状態 終了コード July 31, 2015, CM41-00315-6 処理の終了状態 0 正常に終了または警告レベルのエラーがあったとき 1 -cwno オプション指定時で , 警告レベルのエラーがあったとき 2 正しい出力結果を作成できないようなエラーがあったとき 3 処理の続行が不可能となる致命的エラーがあったとき 7 第 1 章 リンケージキットの仕様 1.5 起動メッセージ 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 CM41-00315-6, July 31, 2015 第 1 章 リンケージキットの仕様 1.6 終了メッセージ 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 July 31, 2015, CM41-00315-6 ERROR 9 第 1 章 リンケージキットの仕様 1.7 ヘルプメッセージ Su pp or t So ft Manu al ヘルプメッセージ 1.7 ヘルプメッセージとして表示されるメッセージは , 以下の 2 種類です。 • コマンドラインの記述形式 • 起動時オプションの一覧 ■ ヘルプメッセージ 起動時にコマンド名以外何も指定しなかった場合または -help オプションを指定したと き , コマンドラインの記述形式と起動時オプションの一覧を表示して終了します。詳し くは「3.2.3 ヘルプメッセージの表示 (-help)」を参照してください。 ● ヘルプメッセージの例 以下に , リンカの場合 ( 英文 ) のヘルプメッセージの例を示します。 図 1.7-1 ヘルプメッセージの例 *1 usage : flnk907s [-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 CM41-00315-6, July 31, 2015 第 1 章 リンケージキットの仕様 1.8 識別子 Support 1.8 Soft Ma nual 識別子 リンケージキットでプログラム作成時などに扱う識別子には , 以下の 7 種類があり ます。 • ファイル名 • モジュール名 • オプション名 • セクション名 • グループ名 • ROM/RAM 領域名 • シンボル名 ■ 識別子の構成文字種 識別子に使用可能な文字種は , 以下のとおりです。 • 英字 • 数字 • アンダスコア (_) 先頭文字に数字の使用は許されません。 また , ファイル名に使用可能な文字の種類は , 動作 OS に準拠します。したがって , ファ イル名から作られるモジュール名も同等です。 ■ 識別子の区別 英字の大文字小文字は区別されます。 ■ 識別子文字数の制限 識別子の文字数は , 255 文字 (255 バイト ) 以内です。これを超える長さの文字列は , 255 バイトで打ち切ります。 ■ リスト出力時の識別名表示 リンケージキットが作成する各種リストファイル中では , 常に 255 文字までの識別子の 名前全部を表示するようにはしていません。 長い識別子の名前は , 先頭の 20 文字程度のみを出力し , 残りの部分は表示していない ものもあります。 1 行の中に表示される文字数は , リストのページ幅指定の変更で増減しますので , 見や すいフォーマットを選択できます。 また , 複数行にわたりますが , 省略せずに表示するオプションも用意してあります。 July 31, 2015, CM41-00315-6 11 第 1 章 リンケージキットの仕様 1.9 ファイル名規則 Su pp or t 1.9 So ft Manu al ファイル名規則 入出力ファイルのファイル名は , OS での使用制限に準じています。 ファイル名は , オブジェクトモジュール中にも設定されるため , 文字数やコード系に 注意する必要がある場合があります。 ■ ファイル名の文字数 入出力ファイルのファイル名は , OS での使用制限に準じています。 ■ ファイル名の文字コード C やアセンブラのソースファイル名は , 出力されるオブジェクトモジュール内に , ソ スファイル名情報として設定されるほか , モジュール名としても設定されます。 モジュール名には ,「 1.8 識別子」で示されるように英字 , 数字 , アンダスコア (_) しか 使用できません。したがって , 漢字や空白を用いたファイル名では , アセンブル時に , モジュール名を指定するなどの工夫が必要です。 ● ファイル名として使用できる文字 (Windows 版 ) 英字 , 数字 , 仮名文字 , シフト JIS 漢字コードおよび下記以外の記号が使用できます。 \ / : ; , * ? " < > | 空白を含むファイル名を指定する場合には , ファイル名を 2 重引用符 (") で括ってくだ さい。 環境変数に空白を含むディレクトリ名を指定する場合には , 2 重引用符 (") で括らない でください。 12 CM41-00315-6, July 31, 2015 第 1 章 リンケージキットの仕様 1.10 環境変数 Support 1.10 Soft Ma nual 環境変数 リンケージキットでは , 以下の 6 種類の環境変数をサポートしています。 • TMP • FELANG • FETOOL • LIB907 • OPT907 • OPT ■ TMP( ワークディレクトリ ) TMP は , 作業用ディレクトリを指定します。詳しくは「 1.10.1 TMP( ワークディレク トリ )」を参照してください。 ■ FELANG FELANG は , メッセージの言語の選択 , 指定を行います。詳しくは「 1.10.2 FELANG」 を参照してください。 ■ FETOOL FETOOL は , 開発ツールをインストールしたディレクトリを指定します。詳しくは 「 1.10.3 FETOOL」を参照してください。 ■ LIB907 ( ライブラリファイル検索ディレクトリ ) LIB907は,ライブラリを格納したディレクトリを指定します。詳しくは,「1.10.4 LIB907」 を参照してください。 ■ OPT907 ( デフォルトオプションファイル格納ディレクトリ ) OPT907 は , リンカおよびライブラリアンのデフォルトオプションファイルを格納した ディレクトリを指定します。詳しくは ,「1.10.5 OPT907」を参照してください。 ■ OPT( デフォルトオプションファイル格納ディレクトリ ) OPT は , オブジェクトツールのデフォルトオプションファイルを格納したディレクト リを指定します。詳しくは ,「 1.10.6 OPT」を参照してください。 July 31, 2015, CM41-00315-6 13 第 1 章 リンケージキットの仕様 1.10 環境変数 Su pp or t 1.10.1 So ft Manu al TMP( ワークディレクトリ ) TMP( ワークディレクトリ ) は , リンケージキットが実行時に使用する作業用のディ レクトリを指定します。 TMP の記述形式 , 説明 , 指定例を示します。 ■ TMP( ワークディレクトリ ) 【記述形式】 SET TMP= < パス名 > 【説明】 リンケージキットが実行時に使用する作業用のディレクトリを指示します。 この環境変数 TMP は , ほかの開発ツール (C コンパイラやアセンブラなど ) でも使 用されます。 環境変数 TMP の設定がないときはカレントディレクトリを使用します。 【例】 SET 14 TMP=G:\ WORK CM41-00315-6, July 31, 2015 第 1 章 リンケージキットの仕様 1.10 環境変数 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 コンパイラやアセンブラなど ) で も使用されます。 【例】 SET July 31, 2015, CM41-00315-6 FELANG=ASCII 15 第 1 章 リンケージキットの仕様 1.10 環境変数 Su pp or t 1.10.3 So ft Manu al FETOOL FETOOL は , リンケージキットをインストールした親ディレクトリを指定します。 FETOOL の記述形式 , 説明 , 指定例などを示します。 ■ FETOOL 【記述形式】 SET FETOOL= < パス名 > < パス名 > には , ドライブ名を含めて指定してください。 【説明】 リンケージキットをインストールしたディレクトリを指定します。 リンケージキットは , ここで指定したディレクトリを起点として , メッセージファ イルやライブラリファイルの格納ディレクトリを知り , 実行に必要なファイルをア クセスします。 指定がない場合は , 実行されたロードモジュールのあるディレクトリの親ディレク トリとなります。 この環境変数 FETOOL は , ほかの開発ツール (C コンパイラやアセンブラなど ) で も使用されます。 【例】 SET FETOOL=C:\ Softune 【推奨ディレクトリ構造】 図 1.10-1 推奨ディレクトリ構造 \Softune \BIN \LIB リンケージキットのロードモジュールを格納 ターゲットCPUに依存しないメッセージファイルを格納 \907 F2MC-16ファミリ用ライブラリファイル およびメッセージファルを格納 【補足】 リンケージキットは , 上記のようなディレクトリ構造に各ファイルを格納して実行 されることを前提に作成されています。 FETOOL 環境変数は , "SOFTUNE" ディレクトリのパスをリンケージキットに知ら せるものです。 16 CM41-00315-6, July 31, 2015 第 1 章 リンケージキットの仕様 1.10 環境変数 Support 1.10.4 Soft Ma nual LIB907 LIB907( ライブラリファイル検索ディレクトリ ) は , リンカが検索するライブラリ ファイルを格納したディレクトリを指定します。 LIB907 の記述形式 , 説明 , 指定例などを示します。 ■ LIB907 【記述形式】 SET LIB907= < パス名 > [ ; < パス名 > … ] < パス名 > には , ドライブ名を含めて指定してください。 【説明】 リンカが検索するライブラリファイルを格納したディレクトリを指定します。 通常は , C ライブラリを格納したディレクトリを指定しておきます。 複数の検索パスを指定する場合は , < パス名 > を次の記号で区切ります。 • セミコロン (;) 複数指定時の検索順は , 指定した順となります。 【例】 SET LIB907=C:\ Softune\ LIB\907 【補足】 環境変数 FETOOL が指定されている場合 , 前項で説明したディレクトリ構造のライ ブラリ格納ディレクトリも検索されるため , 環境変数 LIB907 の設定を行わなくて も C ライブラリは検索されます。 ライブラリ検索パスは , リンカ実行時のオプション -L でも指定できます。 これらの複合指定によるライブラリ検索パスの優先順位は以下のようになります。 1. リンカのオプション -L で指定されたディレクトリ 2. 環境変数 LIB907 で指定されたディレクトリ 3. 環境変数 FETOOL より導かれるディレクトリ (%FETOOL%\ LIB\ 907) ユーザがライブラリを作成した場合などは , C ライブラリとの検索順に注意してパ スの指定を行ってください。 July 31, 2015, CM41-00315-6 17 第 1 章 リンケージキットの仕様 1.10 環境変数 Su pp or t 1.10.5 So ft Manu al OPT907 OPT907( デフォルトオプションファイル格納ディレクトリ ) は , リンカおよびライ ブラリアンのデフォルトオプションファイルを格納したディレクトリを指定します。 OPT907 の記述形式 , 説明 , 指定例などを示します。 ■ OPT907 【記述形式】 SET OPT907= < パス名 > < パス名 > には , ドライブ名を含めて指定してください。 【説明】 リンカおよびライブラリアンで使用するデフォルトオプションファイルを格納し たディレクトリを指定します。 この環境変数は省略できます。 省略した場合は , 開発環境ディレクトリ内のデフォルトオプションファイルを参照 します。 開発環境ディレクトリ内のデフォルトオプションファイルは以下のとおりです。 ● リンカ • %FETOOL%\ LIB\ 907\ FLNK907.OPT ● ライブラリアン • %FETOOL%\ LIB\907\ FLIB907.OPT 【例】 SET 18 OPT907=C:\ Softune\ LIB\ 907 CM41-00315-6, July 31, 2015 第 1 章 リンケージキットの仕様 1.10 環境変数 Support 1.10.6 Soft Ma nual OPT OPT( デフォルトオプションファイル格納ディレクトリ ) は , オブジェクトツールの デフォルトオプションファイルを格納したディレクトリを指定します。 OPT の記述形式 , 説明 , 指定例などを示します。 ■ OPT 【記述形式】 SET 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 July 31, 2015, CM41-00315-6 OPT=C: \ Softune \ LIB 19 第 1 章 リンケージキットの仕様 1.10 環境変数 Su pp or t 20 So ft Manu al CM41-00315-6, July 31, 2015 Support Soft Ma nual 第2章 オプション この章では , リンケージキットのオプションについ て説明します。 2.1 オプション 2.2 オプションパラメータでの数値表現 2.3 オプション指定時の注意と評価 2.4 包含 / 相反関係にあるオプションの指定 2.5 コマンドラインの指定例 July 31, 2015, CM41-00315-6 21 第 2 章 オプション 2.1 オプション 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 CM41-00315-6, July 31, 2015 第 2 章 オプション 2.2 オプションパラメータでの数値表現 Support 2.2 Soft Ma nual オプションパラメータでの数値表現 オプションパラメータでの数値表現には , 10 進数と 16 進数が使えます。 ■ オプションパラメータでの数値表現 オプションパラメータの数値の先頭が (0x) で始まるものは 16 進数 , そうでないものは 10 進数とみなします。16 進表現の a ~ f は , 大文字と小文字の区別なくどちらでも使 用できます。 【例】 0x100 … 16 進表現 (= 256) 100 … 10 進表現 (= 0x64) 0xff と 0xFF は同じ July 31, 2015, CM41-00315-6 23 第 2 章 オプション 2.3 オプション指定時の注意と評価 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 CM41-00315-6, July 31, 2015 第 2 章 オプション 2.4 包含 / 相反関係にあるオプションの指定 Support 2.4 Soft Ma nual 包含 / 相反関係にあるオプションの指定 ほかのオプションと包含関係にあるものは , 上位のオプション指定が有効になりま す。また , ほかのオプションと相反関係にあるものは , 後指定が有効になります。 ■ 包含関係にあるオプションの指定例 【例】 -Xm -pw 80 : リスト出力抑止とページ幅の指定 -pw オプションは , リスト出力を行うときのみ有効であるため , -Xm( リスト出力抑 止 ) オプションにより , 指定自体が意味のないものとなります。-pw 80 -Xm と指定 順が逆でも同じです。 ■ 相反関係にあるオプションの指定例 ほかのオプションと相反関係にあるものは , 後指定が有効になります。 【例 1】 -a -r 絶対形式出力指定と相対形式出力指定 ( リンカ )-r が有効となります。 【例 2】 -m mapfile -Xm リストファイル名指定とリスト出力抑止 -m は取り消され , リスト出力は行われま せん。 July 31, 2015, CM41-00315-6 25 第 2 章 オプション 2.5 コマンドラインの指定例 Su pp or t 2.5 So ft Manu al コマンドラインの指定例 コマンドライン指定例を 3 種類示し , 説明します。 ■ コマンドラインの指定例 【例 1】 flnk907s flnk907s file1.obj file2.obj -g -a -help コマンド名だけの指定の場合 , もしくは , 途中で , オプションがわからなくなったと きなど , -help オプションを指定すると , 簡単なヘルプメッセージを表示します。 【例 2】 flib907s sys.lib -m sys.mp2 … *1 flib907s -m sys.mp2 sys.lib … *2 オプションの指定位置は決まっていませんので , コマンドラインで自由に記述でき ます。 *1 と *2 の指定はどちらも有効であり , 同等の指定です。 【例 3】 flnk907s *.obj -g -o sample.abs ワイルドカードを使用した , 複数入力ファイル名の指定 26 CM41-00315-6, July 31, 2015 Support Soft Ma nual 第3章 共通オプション リンケージキットには , どのツールにも共通して使 用できるオプションがあります。これらのオプ ションは , C コンパイラやアセンブラにも用意され ています。 この章では , リンケージキットの共通オプションに ついて説明します。また , ツール固有のオプション については , それぞれの部で説明します。 3.1 共通オプション一覧 3.2 共通オプション詳細 July 31, 2015, CM41-00315-6 27 第 3 章 共通オプション 3.1 共通オプション一覧 Su pp or t 3.1 So ft Manu al 共通オプション一覧 ここでは , リンケージキットで共通して使用できるオプション一覧を示します。 ■ 共通オプション一覧 表 3.1-1 に , リンケージキットで共通に指定できるオプション一覧を示します。 表 3.1-1 共通オプション一覧 機能 28 オプション デフォルトオプションファイル読み込み抑止指定 -Xdof オプションファイル名指定 -f ヘルプメッセージの表示指定 -help プログラムの版数 , 起動メッセージ表示の指定 -V プログラムの版数 , 起動メッセージの出力抑止 -XV 終了メッセージの表示指定 -cmsg 終了メッセージの出力抑止 -Xcmsg ワーニング発生時の終了コードを 1 にする指定 -cwno ワーニング発生時の終了コードを 0 にする指定 -Xcwno 備考 デフォルト デフォルト デフォルト CM41-00315-6, July 31, 2015 第 3 章 共通オプション 3.2 共通オプション詳細 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)」を参照し てください。 July 31, 2015, CM41-00315-6 29 第 3 章 共通オプション 3.2 共通オプション詳細 Su pp or t 3.2.1 So ft Manu al デフォルトオプションファイル抑止指定 (-Xdof) デフォルトオプションファイルの読込みを取り消します。 本オプションの指定がない場合 , デフォルトオプションファイルは常に読み込まれま す。 ■ デフォルトオプションファイル抑止指定 (-Xdof) 【記述形式】 -Xdof 【パラメータ】 なし 【説明】 デフォルトオプションの読込みを取り消します。 本オプションの指定がない場合 , デフォルトオプションファイルは常に読み込まれ ます。 デフォルトオプションファイルに関しては ,「 4.5 デフォルトオプションファイル」 を参照してください。 【注意】 本オプションは , コマンドラインでの指定のみ有効です。 【例】 flnk907s test.obj -Xdof 30 CM41-00315-6, July 31, 2015 第 3 章 共通オプション 3.2 共通オプション詳細 Support 3.2.2 Soft Ma nual オプションファイルからの読込み指定 (-f) -f オプションは , オプションを記述したファイルからオプションを読み込むことを指 示します。また , このファイル内容を , コマンドラインに指定されたものと同等に扱 います。 ■ オプションファイルからの読込み指定 (-f) 【記述形式】 -f < オプションファイル名 > 【パラメータ】 < オプションファイル名 > オプションや入力ファイルを記述したファイル名 【説明】 < オプションファイル名 > で指定したファイルに , オプションや入力ファイル名を 記述しておきます。 オプションを記述したファイルから , オプションを読み込むことを指示します。 このファイル内容を , コマンドラインでの指定と同様に評価し , 処理します。 ファイル名の拡張子は , デフォルトで決められたものはありません。 【注意】 オプションファイル内では , -f オプション自身の指定はできません。 オプションファイルは , 1 行に最大 1023 文字まで記述できます。 【例 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】 flib907s syslib.lib -f objfile.opt syslib.lib に登録するモジュールを objfile.opt に記述し , ライブラリアンはこのファイ ル内容を参照してライブラリファイルを作成します。 July 31, 2015, CM41-00315-6 31 第 3 章 共通オプション 3.2 共通オプション詳細 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 ライブラリ名指定まで含め , 以下のように指定することもできます。 flib907s -f libfile.opt この場合 , objfile.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 回指定することも可能です。 flib907s 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 CM41-00315-6, July 31, 2015 第 3 章 共通オプション 3.2 共通オプション詳細 Support 3.2.3 Soft Ma nual ヘルプメッセージの表示 (-help) -help オプションは , プログラムを実行せずにヘルプメッセージを表示することを指 示します。コマンドラインの指定形式と , オプションの概要を表示します。 ■ ヘルプメッセージの表示 (-help) 【記述形式】 -help 【パラメータ】 なし 【説明】 -help オプションは , コマンドラインの指定形式とオプション一覧を簡単に表示しま す。 ヘルプメッセージは標準出力 (stdout) に出力されます。 コマンド名だけの指定時にも , 同じヘルプメッセージが出力されます。 入力ファイル名やほかのオプションが指定されている場合にも , 本オプションが指 定されていると , プログラムを実行せずにヘルプメッセージのみ表示します。 July 31, 2015, CM41-00315-6 33 第 3 章 共通オプション 3.2 共通オプション詳細 Su pp or t 3.2.4 So ft Manu al 版数 / メッセージ出力指定 (-V) -V オプションでは , プログラムの起動時のメッセージの出力を行います。 ■ 版数 / メッセージ出力指定 (-V) 【記述形式】 -V 【パラメータ】 なし 【説明】 -V オプションは , 起動メッセージの出力を行うようにする指定です。なお , リンケー ジキットの各ツールは , デフォルト実行では起動メッセージを出力しません。起動 メッセージ出力は , 必ずこの -V オプションを使って行います。 起動メッセージには , プログラム版数 , 著作権表示などが含まれます。 メッセージは標準出力 (stdout) に出力します。 【例 1】 flnk907s ccp903 本オプションを指定しない場合 , 実行開始時にメッセージを出力しません。 終了時は , OS のプロンプトが出て , 次のコマンド入力待ちになるだけです。 【例 2】 flib907s -V -V オプションだけが指定された場合 , プログラム名 , プログラム版数 , コピーライ トメッセージを表示したのち , 直ちにプログラムを終了します。 34 CM41-00315-6, July 31, 2015 第 3 章 共通オプション 3.2 共通オプション詳細 Support 3.2.5 Soft Ma nual 版数 / メッセージ出力抑止 (-XV) -XV オプションは , -V オプションを無効にします。これにより , プログラムの起動 メッセージの出力を行わないようにします。 ■ 版数 / メッセージ出力抑止 (-XV) 【記述形式】 -XV 【パラメータ】 なし 【説明】 リンケージキットの各ツールは , デフォルト実行では起動メッセージを出力しませ んので , 起動メッセージを出力させるには -V オプションを指定します。 -XV オプションは , -V 指定を無効にするときに指定します。 【例 1】 flnk907s ccp903 flnk907s ccp903 -XV デフォルト処理では , 実行開始時にメッセージを出力しません。 上記指定はどちらも同じです。 【例 2】 f2ms -f lkit.opt ccp903 -XV オプションファイルを利用した実行時 , オプションファイル内の指定を一時的に変 更したい場合があります。lkit.opt 内に -V オプションがある場合 , lkit.opt の内容を 変更せずコマンドライン上で -XV 指定を行うと , -V オプションを取り消すことがで きます。 July 31, 2015, CM41-00315-6 35 第 3 章 共通オプション 3.2 共通オプション詳細 Su pp or t 3.2.6 So ft Manu al 終了メッセージ表示指定 (-cmsg) 終了メッセージを表示します。 ■ 終了メッセージ表示指定 (-cmsg) 【記述形式】 -cmsg 【パラメータ】 なし 【説明】 プログラムの終了メッセージを表示します。 リンケージキットはデフォルトでは , プログラムの終了メッセージの表示を行いま せん。 【例 1】 flnk907s ccp903 本オプションを指定しない場合 , 終了時にメッセージを出力しません。 終了時は , OS のプロンプトが出て , 次のコマンド入力待ちになるだけです。 【例 2】 f2ms ccp903 -cmsg F2MS COMPLITED FOUND NO ERROR 終了時に , 終了メッセージ ( プログラム名 , エラーの有無 ) を表示します。 36 CM41-00315-6, July 31, 2015 第 3 章 共通オプション 3.2 共通オプション詳細 Support 3.2.7 Soft Ma nual 終了メッセージ表示抑止指定 (-Xcmsg) 終了メッセージの表示を抑止します。 ■ 終了メッセージ表示抑止指定 (-Xcmsg) 【記述形式】 -Xcmsg 【パラメータ】 なし 【説明】 終了メッセージの表示を抑止します。 リンケージキットは , デフォルトでプログラムの終了メッセージの表示を行いませ ん。 本オプションはプログラムの終了メッセージの表示オプション (-cmsg) を取り消す 場合に使用します。 【例 1】 flnk907s ccp903 flnk907s ccp903 -Xcmsg デフォルト処理では , 終了時にメッセージを出力しません。 上記指定はどちらも同じです。 【例 2】 f2ms -f lkit.opt ccp903 -Xcmsg オプションファイルを利用した実行時 , オプションファイル内の指定を一時的に変 更したい場合があります。lkit.opt 内に -cmsg オプションがある場合 , lkit.opt の内容 を変更せずコマンドライン上で -Xcmsg 指定を行うと , -cmsg オプションを取り消す ことができます。 July 31, 2015, CM41-00315-6 37 第 3 章 共通オプション 3.2 共通オプション詳細 Su pp or t 3.2.8 So ft Manu al ワーニング発生時の終了コードを 1 にする指定 (-cwno) プログラム実行時にワーニングのみが発生した場合の終了コードを 1 に変更します。 ■ ワーニング発生時の終了コードを 1 にする指定 (-cwno) 【記述形式】 -cwno 【パラメータ】 なし 【説明】 プログラム実行時にワーニングのみが発生した場合の終了コードを 1 に変更しま す。 SOFTUNE リンケージキットでは , 通常ワーニングのみが発生した場合の終了コー ドは 0 です。 【例 1】 flnk907s ccp903 -cwno プログラム実行時にワーニングのみ発生した場合 , OS への終了コードが 1 になりま す。 【例 2】 flnk907s ccp903 プログラム実行時にワーニングのみの発生の場合, OSへの終了コードはデフォルト である 0 のままです。 38 CM41-00315-6, July 31, 2015 第 3 章 共通オプション 3.2 共通オプション詳細 Support 3.2.9 Soft Ma nual ワーニング発生時の終了コードを 0 にする指定 (-Xcwno) 終了メッセージの表示を抑止します。 ■ ワーニング発生時の終了コードを 0 にする指定 (-Xcwno) 【記述形式】 -Xcwno 【パラメータ】 なし 【説明】 プログラム実行時にワーニングのみが発生した場合の終了コードをデフォルトで ある 0 に戻します。 SOFTUNE リンケージキットでは , 通常ワーニングのみが発生した場合の終了コー ドは 0 です。 本オプションはワーニング発生時の終了コードを 1 にするオプション (-cwno) を取 り消す場合に使用します。 【例 1】 flnk907s ccp903 flnk907s ccp903 -Xcwno デフォルト処理では , ワーニング発生時の終了コードは 0 です。 上記指定はどちらも同じです。 【例 2】 f2ms -f lkit.opt ccp903 -Xcwno オプションファイルを利用した実行時 , オプションファイル内の指定を一時的に変 更したい場合があります。lkit.opt 内に -cwno オプションがある場合 , lkit.opt の内容 を変更せずコマンドライン上で -Xcwno 指定を行うと , -cwno オプションを取り消す ことができます。 July 31, 2015, CM41-00315-6 39 第 3 章 共通オプション 3.2 共通オプション詳細 Su pp or t 40 So ft Manu al CM41-00315-6, July 31, 2015 Support Soft Ma nual 第4章 オプションファイル この章では , リンケージキットのオプションファイ ルについて説明します。 4.1 オプションファイルの概要 4.2 オプションファイル中での継続指定 4.3 オプションファイル中のコメント指定 4.4 オプションファイルの記述例 4.5 デフォルトオプションファイル July 31, 2015, CM41-00315-6 41 第 4 章 オプションファイル 4.1 オプションファイルの概要 Su pp or t 4.1 So ft Manu al オプションファイルの概要 オプションファイルは , コマンドライン入力を簡略化するために , あらかじめ処理に 必要なファイル名やオプションを記述しておくファイルです。 ■ オプションファイル オプションファイルは,コマンドラインで指定する入力ファイル名やオプションを記述 したファイルです。 記述シンタックスは , コマンドライン上での指定方法と同じです。 ただし , オプションファイル中では , 以下の 2 項目が加わります。 • コメント文が記述できる。 • 任意区切り位置で改行可能である。 コメント文は , コメント記号 (#) で始まり , 改行で終了します。 コメント文および改行記号は , コマンドライン上でのスペースと同等に扱われます。 ■ オプションファイル指定による実行 コマンドラインの指定だけでは入力できる文字数に制限があるため,指定するファイル 名やオプションが多い場合には指定しきれなくなります。また , 毎回そのような指定を 行うことは , 効率の低下と入力ミスによる誤動作の原因になります。 処理が定型化してきた場合や , 指定するオプションやファイル名が多い場合は , 毎回コ マンドライン入力を行う手間を省くために , ファイルに記述された内容を , コマンドラ インでの指定と同等に扱い処理できます。その際 , 処理に必要なファイル名やオプショ ンを , テキストエディタを使いオプションファイルに作成しておき , -f オプションを用 いて実行します。 【例】 flib 907 s -f optfile オプションファイル "optfile" の内容 prg.lib -a main.obj -a send.obj,receive.obj,exchange.obj -a account.obj -m prg.mp2 オプションファイル内の記述形式は , 上記の例のようにコマンドラインでの記述形 式と同じです。上記の例ではオプションを各行に分けていますが , 以下のように 1 行で記述してもかまいません。 ただし , 1 行の文字数は 1023 バイト以内にしてください。 prg.lib -a main.obj … -a account.obj -m prg.mp2 この例では , オプションだけではなく , 編集対象のライブラリファイル (prg.lib) の記 述も行っています。 このように , オプションファイル中には , (-f オプション , -Xdof オプションの指定を 除き ) コマンドラインで記述することのできるすべての指定が同じ形式で記述でき ます。 42 CM41-00315-6, July 31, 2015 第 4 章 オプションファイル 4.2 オプションファイル中での継続指定 Support 4.2 Soft Ma nual オプションファイル中での継続指定 オプションファイル中では , オプションやパラメータの区切りの箇所で改行し , 継続 して指定できます。 ■ オプションファイル中の継続指定 オプションファイルにオプションやファイル名を記述していると , オプションが 1 行に 記述しきれない場合や,見やすさのため複数行に渡って記述したいと思う場合がありま す。 このため , オプションファイル中では , オプションやパラメータの区切りの箇所で改行 できるようにしています。以下に , オプションファイルの記述例を 2 つ示します。 【例 1 オプションファイルの内容を 1 行で記述した場合の例】 : -a mod01, mod02, obj03, obj04 : 【例 2 オプションファイルの内容を 2 行で記述した場合の例】 : -a mod01, mod02, obj03, obj04 : July 31, 2015, CM41-00315-6 ←継続行 43 第 4 章 オプションファイル 4.3 オプションファイル中のコメント指定 Su pp or t 4.3 So ft Manu al オプションファイル中のコメント指定 オプションファイル中には , コメントを入れることができます。 ■ オプションファイル中のコメント指定 オプションファイル中にコメントを入れる場合 , コメント開始記号には (#) を使用しま す。 【例 オプションファイルの内容にコメントを入れた場合の例】 下線部分がコメントです。 # Example of Library Options syslib.lib -a mod01, mod02, obj03, obj04 44 # # INDICATES LIBRARY FILE Add Modules CM41-00315-6, July 31, 2015 第 4 章 オプションファイル 4.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 の後ろで改行 パラメータ全部を継続 July 31, 2015, CM41-00315-6 45 第 4 章 オプションファイル 4.5 デフォルトオプションファイル Su pp or t 4.5 So ft Manu al デフォルトオプションファイル オプションファイル機能の 1 つですが , 起動時オプション "-f" を指定しなくてもあ らかじめ指定されているオプションファイルを読込み実行します。 この機能をデフォルトオプションファイルといいます。 ■ デフォルトオプションファイル デフォルトオプションファイルは , オプションファイル機能の 1 つですが , 起動時オプ ション "-f" を指定しなくてもあらかじめ指定されているオプションファイルを読込み 実行します。この機能をデフォルトオプションファイルといいます。 デフォルトオプションファイルは , 常にプログラムの起動時に読み込まれるため , ユー ザの環境にあった起動時オプションをあらかじめ指定しておくことができます。 デフォルトオプションファイル機能を抑止するには , 起動時オプション "-Xdof" を指定 します。 このオプションが指定されると , デフォルトオプションファイルは読み込まれません。 デフォルトオプションファイル名は , 表 4.5-1 で示すように決まっています。 表 4.5-1 リンケージキットのデフォルトオプションファイル名 ツール名 プログラム名 オプションファイル名 リンカ flnk907s flnk907.opt ライブラリアン flib907s flib907.opt オブジェクト形式 コンバータ f2ms f2m.opt f2hs f2h.opt m2ms m2m.opt h2hs h2h.opt m2bs m2b.opt h2bs h2b.opt f2is f2i.opt f2es f2e.opt m2is m2i.opt m2es m2e.opt i2ms i2m.opt e2ms e2m.opt デフォルトオプションファイルの参照方法を次に示します。 46 CM41-00315-6, July 31, 2015 第 4 章 オプションファイル 4.5 デフォルトオプションファイル Support Soft Ma nual ● 環境変数 "OPT907" または "OPT" が設定されている場合 環境変数で設定されているディレクトリのファイルを参照します。 • リンカ , ライブラリアン - %OPT907% \ デフォルトオプションファイル • オブジェクトツール - %OPT% \ デフォルトオプションファイル ● 環境変数 "OPT907" または "OPT" が設定されていない場合 開発環境ディレクトリ内のデフォルトオプションファイルを参照します。 • リンカ , ライブラリアン - %FETOOL% \ LIB \ 907 \ デフォルトオプションファイル • オブジェクトツール - %FETOOL% \ LIB \ デフォルトオプションファイル <注意事項> デフォルトオプションファイルが見つからない場合 , リンケージキットはエラーメッセー ジを表示しません。 July 31, 2015, CM41-00315-6 47 第 4 章 オプションファイル 4.5 デフォルトオプションファイル Su pp or t 48 So ft Manu al CM41-00315-6, July 31, 2015 Support 第 II 部 Soft Ma nual リンカ編 リンカの仕様 , オプションおよび出力リストなどについて説明します。 第 5 章 リンカの仕様 第 6 章 リンカのオプション 第 7 章 リンカの出力リスト ファイル 第 8 章 リンカの制限事項 および Q &A July 31, 2015, CM41-00315-6 49 Su pp or t 50 So ft Manu al CM41-00315-6, July 31, 2015 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 DIR 属性セクションの配置について 5.11 CPU 情報ファイル 5.12 リンカでのオブジェクト混在 5.13 リンカでの関数呼び出しインタフェースの異なるオブ ジェクトの混在について 5.14 未使用関数削除 July 31, 2015, CM41-00315-6 51 第 5 章 リンカの仕様 5.1 リンカの概要 Su pp or t 5.1 So ft Manu al リンカの概要 リンカは , アセンブラが出力した複数のオブジェクトモジュールを結合し , アドレス 解決などを行って実行形式のロードモジュールを作成するツールです。 ■ リンカの概要 開発するプログラム規模が大きくなると , 1 本のソースプログラムだけですべてを記述 するのには無理が生じてきます。 また , C コンパイラを使用した開発では , 通常 C のライブラリファイルの取り込みが必 要になります。 複数の関連しあったオブジェクトモジュールを結合して , メモリ配置アドレスを割当 て , 実行可能な形式のロードモジュールを作成するのがリンカの役割です。 図 5.1-1 にリンカと入出力ファイルの関係を示します。 図 5.1-1 リンカと入出力ファイルの関係 アセンブラ ライブラリ 相対形式 オブジェクト (.lib) (.obj) リンカ アセンブルリスト (.lst) 絶対形式 アセンブルリスト (.als) オブジェクト 内容リスト 相対形式 ロードモジュール (.mp1) (.rel) 絶対形式 ロードモジュール (.abs) 52 (.mpx) (.mps) (.mpm) CM41-00315-6, July 31, 2015 第 5 章 リンカの仕様 5.2 リンカの機能 Support 5.2 Soft Ma nual リンカの機能 リンカには多くの機能がありますが , 大きく分けると以下の 4 つに分類できます。 • 入出力ファイル / メッセージに関する制御 • セクションの結合 / 配置に関する制御 • ライブラリの検索に関する制御 • エントリアドレス / シンボル値の設定 ■ 入出力ファイル / メッセージに関する制御 入出力ファイルとその制御の概要について説明します。詳しくは「 5.2.1 入出力ファイ ル / メッセージに関する制御」を参照してください。 • 入力ファイルは , 以下の 4 つです。 - 「アセンブラ出力オブジェクトモジュールファイル」 - 「リストファイル」 - 「リンカ出力の相対形式ロードモジュールファイル」 - 「ライブラリファイル」 • オブジェクトモジュールファイルとロードモジュールファイルは , コマンドライン またはオプションファイル中に記述した順に処理されます。 • 出力ファイルは , 以下の 3 つです。 - 最終目的となる「絶対形式ロードモジュールファイル」 - 再入力可能な「相対形式ロードモジュールファイル」 - 「リンクマップリストファイル」 • 出力ロードモジュールの形式(絶対/相対)指定や,出力ファイル名の変更ができます。 • マップリストは 1 ページの行数やページ幅の変更ができます。 • オプションを指定することにより , 以下の 4 つのファイルを出力できます。 これらのファイルを出力するには , リンク時のロードモジュールの形式を絶対指定 にしてください。 - アセンブラが出力したリストファイルを絶対形式にした「絶対形式アセンブルリ ストファイル」 - 各モジュールで使用している外部シンボルについてモジュール間の定義 / 参照の 相互参照を表示した「外部シンボル相互参照情報リスト」 - モジュールごとに使用したローカルシンボルに関する情報を表示した「ローカル シンボル情報リスト」 - 各モジュール内のセクション配置アドレスを表示した「セクション詳細マップリ スト」 • メッセージにはプログラム版数などの情報を含む起動メッセージ , 簡単な使用方法 を示すヘルプメッセージおよびエラーメッセージがあります。起動メッセージ出力 の有無を選択したり , ワーニング検出レベルを選択したりすることができます。 July 31, 2015, CM41-00315-6 53 第 5 章 リンカの仕様 5.2 リンカの機能 Su pp or t So ft Manu al ■ セクションの結合 / 配置に関する制御 セクションの結合 / 配置に関する制御の概要について説明します。詳しくは ,「 5.2.2 セクションの結合 / 配置に関する制御」を参照してください。 • ROM および RAM のアドレス範囲を指定することで , 領域外への配置チェックがで きます。 • セクションの指定では複数セクションをグループ化し , まとめて処理したり , 属性 別のセクション選択などができます。 • セクションの指定には , ワイルドカードが使用できるため , セクションが多数ある 場合のセクション結合や配置の指定が簡潔に行えます。 • ROM 化支援機能を備えています。 • 指定した ROM および RAM 領域内への自動配置ができます。 ■ ライブラリの検索に関する制御 ライブラリの検索に関する制御について概要を説明します。詳しくは「 5.2.3 ライブラ リの検索に関する制御」を参照してください。 • C での開発時に , リンクに必要な C の実行時ライブラリを自動識別して結合できま す ( デフォルトライブラリファイルの検索 )。 • ユーザが作成した複数のライブラリを検索できます。 • 個々のシンボルごとに , 検索するライブラリファイルを指定できます。 • ライブラリ検索の抑止ができます。 ■ エントリアドレス / シンボル値の設定 一時的に未定義外部シンボルに値を割り付けたり,エントリアドレスを設定したりでき ます。詳しくは「 5.2.4 エントリアドレス / シンボル値の設定」を参照してください。 54 CM41-00315-6, July 31, 2015 第 5 章 リンカの仕様 5.2 リンカの機能 Support 5.2.1 Soft Ma nual 入出力ファイル / メッセージに関する制御 リンカの機能のうち , 入出力ファイル / メッセージに関する制御を行うそれぞれの機 能について説明します。 ■ 入力オブジェクトファイルの指定 リンカの入力となるファイルは , アセンブラ出力のオブジェクトモジュールファイル と , リンカ出力の相対形式ロードモジュールファイルです。 入力するファイルすべてを指定します。ワイルドカードを使用することで簡単に指定 が行えます。 ■ 出力ロードモジュールファイル名の指定 リンク後に生成される出力ロードモジュールファイル名は,デフォルトではリンカが最 初に入力したモジュールのファイル名をもとに作られます。 デフォルトファイル名は,リンク結果の全体を示す名称としては不適当である場合が多 いため , このデフォルト出力ファイル名を変更するための機能です。 特に , ワイルドカードを使用してファイル名を指定した場合には , 出力ファイル名がわ かりにくくなるため , 出力ファイル名の指定を行うことを推奨します。 ■ デバッグ情報の継承 デバッグのためには , シンボル情報やソースファイルに関する情報が必要です。 C およびアセンブラで , デバッグ情報作成の指定 (-g オプション ) を行うと , オブジェ クトモジュール中にデバッグ情報が作成されます。 リンカでは , このデバッグ情報を継承してロードモジュール中に出力するか , 削除する かを選択できます。 ■ 出力フォーマットの指定 リンクした結果として , 絶対形式ロードモジュールを生成するのか , 相対形式ロードモ ジュールを生成するのかを指定する機能です。 ■ リストファイル名の指定 リストファイルは出力オブジェクトファイル名をもとに作成されますが,このデフォル トファイル名を変更するための機能です。 ■ リストファイルの形式変更 リストファイル作成ではページ制御を行っていますが , 1 ページの行数や 1 行の文字数 を変更できます。 また , シンボル名の文字数が長いときは 1 行に表示できる範囲で打ち切っていますが , ユーザの定義どおりの名称で表示するように指示できます。 ■ 警告チェックレベルの選択 警告は軽微なエラーであり,リンク処理が継続できる程度の不都合が発生した場合に通 知されるメッセージですが , 修正を要するものと , そのままで特に問題のないものとが あります。これらのチェックレベルを選択できます。 ■ 起動メッセージ表示の選択 起動時のツール名と著作権の表示を行うか否かを選択できます。 ■ 終了メッセージ表示の選択 終了メッセージの表示を行うか否かを選択できます。 July 31, 2015, CM41-00315-6 55 第 5 章 リンカの仕様 5.2 リンカの機能 Su pp or t 5.2.2 So ft Manu al セクションの結合 / 配置に関する制御 リンカの機能のうち , セクションの結合 / 配置に関する制御を行うそれぞれの機能に ついて説明します。 ■ ROM および RAM 領域の指定 ROM 領域と RAM 領域のアドレス範囲を指定して領域名称を定義すると , セクション の配置指定時にアドレス指定の代わりにこの領域名称を用いることができ,範囲外への 配置に対するチェックが可能になります。 セクションの自動配置を行う場合には , この領域指定範囲内に配置します。 ■ セクションの配置順と配置アドレスの指定 すべてのセクションは任意の順序で , 任意の領域に配置できます。セクション名の指定 には , ワイルドカードが使用できます。 また , セクション内容種別を付加した指定が可能なため , ワイルドカードと組み合わせ ることで同じ内容種別 (code, data など ) のセクションだけを集めることもできます。 ■ セクションのグループ化 リンカは , セクション単位に結合と配置を行いますが , 多くのセクション名を使ってプ ログラムを作成した場合 , セクションの配置指定が煩雑になります。 複数セクションにグループ名を付け , 連続領域に集めることで , そのまとまりをあたか も 1 つのセクションのように扱うことができます。 ■ ROM 化支援 C でのプログラム開発においては初期値付変数が生成され , その変数の書換えなどの処 理を行うことが頻繁にあります。 組込み用のアプリケーションにおいては , 初期値データは ROM に置き , 実行前に RAM へデータを転送しないと使用できないことになります。 このような使用を可能にするための機能です。詳しくは「 5.9 ROM → RAM 転送セク ション」を参照してください。 56 CM41-00315-6, July 31, 2015 第 5 章 リンカの仕様 5.2 リンカの機能 Support 5.2.3 Soft Ma nual ライブラリの検索に関する制御 リンカの機能のうち , ライブラリの検索に関する制御を行うそれぞれの機能について 説明します。 ■ ライブラリ検索パス指定 ライブラリの検索パスは , 通常 C ライブラリを格納したディレクトリを環境変数で指 定しておきますが,ユーザが自身で作成したライブラリを別のディレクトリに格納した 場合などに指定します。 ■ 検索ライブラリファイル指定 C コンパイラが提供する実行時ライブラリ以外に , ユーザが独自に作ったライブラリ ファイルの名前を検索対象ライブラリとして指定します。 ■ シンボルごとの検索ライブラリファイル指定 複数のライブラリファイルの検索を行うリンク処理において,ライブラリ間に同一の外 部シンボルが含まれていることが分かっている場合,どのライブラリのモジュールとリ ンクするかを明確に指定するために使用します。 ■ ライブラリ検索の抑止 デフォルトライブラリの検索を禁止したり,すべてのライブラリ検索を行わないように したりすることができます。 July 31, 2015, CM41-00315-6 57 第 5 章 リンカの仕様 5.2 リンカの機能 Su pp or t 5.2.4 So ft Manu al エントリアドレス / シンボル値の設定 リンクの機能のうち , エントリアドレス / シンボル値の設定に関する機能について説 明します。 ■ エントリアドレス指定 プログラムの実行開始アドレスを , 出力ロードモジュール中に設定する機能です。 ■ 外部シンボル値の設定 プログラムが未完成であるか , 外部シンボル名を間違えているかなどが原因で , リンク 後に定義されていない外部シンボルがある場合はエラーとなります。 このエラーを一時的に取り除き,とりあえず実行可能なロードモジュールを作成したい 場合に仮の値を設定する機能です。 58 CM41-00315-6, July 31, 2015 第 5 章 リンカの仕様 5.3 セクションの種類 Support 5.3 Soft Ma nual セクションの種類 リンカが結合処理を行うときの最小単位はセクションです。 セクションはプログラムでの使用目的の違いにより , 配置や結合の方法に特長があり ます。 セクション名 , 内容種別 , 配置属性 , 結合属性などについて説明します。 ■ セクション名 セクションを識別するために付けた名前です。 ■ セクション内容種別 使用目的の違いによるセクション内容種別には以下の 7 つがあります。 実行 , Read, Write の属性は , アセンブラが決定します。表 5.3-1 にセクションの種別を 示します。 表 5.3-1 セクションの種別 種別 説明 属性 CODE プログラムコード領域 実行 , Read DATA 変数領域 Read, Write CONST 初期値付変数領域 Read STACK スタック領域 Read, Write IO IO 領域 Read, Write DIR direct 領域 Read, Write DIRCONST 初期値付 direct 領域 Read ■ セクションの配置属性 セクションの配置に関する属性は , 再配置可能か否かの 2 種類あります。表 5.3-2 にセ クションの配置属性を示します。 表 5.3-2 セクションの配置属性 属性 説 明 ABS 絶対番地の指定されたセクションです。 REL 再配置可能なセクションです。 July 31, 2015, CM41-00315-6 59 第 5 章 リンカの仕様 5.3 セクションの種類 Su pp or t So ft Manu al ■ セクションの結合属性 セクションの結合に関する属性は , 共有か連結かの 2 種類あります。表 5.3-3 にセク ションの結合属性を示します。 表 5.3-3 セクションの結合属性 属性 説 明 PUBLIC 次々に連続して結合されます。 COMMON 同じアドレスに重ねあわせて結合されます。 ■ セクションの識別 リンカでは , セクション名と内容種別と結合属性が同一で , REL 属性のセクションを同 一セクションとして扱います。 ABS 属性セクションは , リンカの配置処理の対象にはなりません。 リンカは , セクション名によってセクションの識別を行うため , 同じセクション名で内 容種別や属性の異なるセクションは定義しないでください。 60 CM41-00315-6, July 31, 2015 第 5 章 リンカの仕様 5.4 セクションの結合 Support 5.4 Soft Ma nual セクションの結合 リンカでは ,「複数のオブジェクトを結合する」という表現を多く用いますが , 正確 には「オブジェクト中のセクションを結合する」という意味です。 セクションの結合方法には , 単純連結結合 (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 July 31, 2015, CM41-00315-6 61 第 5 章 リンカの仕様 5.5 セクションの配置 Su pp or t 5.5 So ft Manu al セクションの配置 リンカは , 同一のセクションを結合したのちそれぞれのセクションの配置アドレスを 決定します。ここでは , ユーザがアドレス指定をした場合を含めて , リンカのセク ション配置の方法を説明します。 ■ セクションのリンク 結合と配置処理は , 相対セクションのみが対象となります。 絶対セクションは , 結合・配置の対象にはなりません。 セクションの結合・配置は , 以下のような手順で行います。 1. それぞれのオブジェクトモジュールから同一セクションを集める。 2. 集めた同一セクション同士を , 結合属性に従って結合する。 3. 同一セクションを結合したものを配置する。 セクション配置順序に関係するオプションが指定されている場合はそれに従って行わ れ,指定がない場合はオブジェクトファイル中での出現順がそのまま配置の順番になり ます。 詳しくは ,「 5.5.1 セクションの結合順序が指定されなかった場合の配置例」,「 5.5.2 セクションの結合順序が指定された場合の配置例」,「 5.5.3 セクショングループの指 定がある場合の配置例」を参照してください。 62 CM41-00315-6, July 31, 2015 第 5 章 リンカの仕様 5.5 セクションの配置 Support 5.5.1 Soft Ma nual セクションの結合順序が指定されなかった場合の配 置例 セクションの結合順序が指定されなかった場合の配置例を図 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属性 を持つとした場合 July 31, 2015, CM41-00315-6 63 第 5 章 リンカの仕様 5.5 セクションの配置 Su pp or t 5.5.2 So ft Manu al セクションの結合順序が指定された場合の配置例 セクションの結合順序が指定された場合の配置例を図 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属性 を持つとした場合 64 CM41-00315-6, July 31, 2015 第 5 章 リンカの仕様 5.5 セクションの配置 Support 5.5.3 Soft Ma nual セクショングループの指定がある場合の配置例 セクショングループの指定がある場合の配置例を図 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が, 同一グループにグループ化 される場合 July 31, 2015, CM41-00315-6 65 第 5 章 リンカの仕様 5.6 セクションの自動配置 Su pp or t 5.6 So ft Manu al セクションの自動配置 通常リンカは , ユーザの配置指定に従って , セクション配置アドレスの決定を行いま す。しかし , -AL オプションを指定することで , セクション配置アドレスの決定を自 動的にリンカに任せることが可能です。 -ra, -ro オプションで指定した領域内へセクション配置を行うとき , アブソリュート セクションが存在していれば , 配置アドレスが重ならないように , リロケータブルセ クションの配置を行います。このとき , アライメント値およびサイズの大きいセク ションから順に配置し , 空き領域が最小となるような最適配置を行います。 ■ セクションの自動配置 本リンカは , 以下に示す 2 つのタイプでセクションの自動配置をサポートしています。 • -AL 1 が指定された場合のセクションの自動配置 • -AL 2 が指定された場合のセクションの自動配置 セクションの自動配置の詳細については 「5.6.1 , -AL 1 が指定された場合のセクション の自動配置」,「5.6.2 -AL 2 が指定された場合のセクションの自動配置」を参照してく ださい。 66 CM41-00315-6, July 31, 2015 第 5 章 リンカの仕様 5.6 セクションの自動配置 Support 5.6.1 Soft Ma nual -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 配置先は , 配置可能で最小の空きエリアが選択されます。 July 31, 2015, CM41-00315-6 67 第 5 章 リンカの仕様 5.6 セクションの自動配置 Su pp or t So ft Manu al ■ -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 1 が指定された場合の配置例 0xC1000 code4 0xC1100 0xC1120 code6 AbsSec 0xC1220 code5 0xC1420 code3 0xC1620 code1 0xC17A0 code2 0xC18A0 未使用(空き) 0xC18FF -scで指定された領域ROM 68 CM41-00315-6, July 31, 2015 第 5 章 リンカの仕様 5.6 セクションの自動配置 Support 5.6.2 Soft Ma nual -AL 2 が指定された場合のセクションの自動配置 -AL 2 が指定されれば , リンカは , -sc オプションで配置アドレス指定が行われな かったセクションに対して , そのセクションの種別から , ROM 領域に配置すべきか , RAM 領域に配置すべきかをリンカが判断し , それぞれの領域内の空き領域に配置し ます。 ここでは , セクションの種別ごとの配置先や配置アドレス決定の順序について説明し ます。 また , -AL 2 が指定された場合の配置例を図 5.6-4 に示します。 ■ セクション種別と配置先 -AL 2 が指定された場合 , リンカは配置指定の行われていないセクションを自動的に配 置します。このとき , リンカはセクション種別により , 表 5.6-4 に示すように配置先 ( 領域 ) の決定を行います。 表 5.6-4 セクション種別と配置先 配置先 セクション種別 ROM 領域 (-ro で指定された領域 ) CODE CONST DIRCONST RAM 領域 (-ra で指定された領域 ) IO DIR DATA STACK July 31, 2015, CM41-00315-6 69 第 5 章 リンカの仕様 5.6 セクションの自動配置 Su pp or t So ft Manu al ■ 配置アドレスの決定方法 -AL 2 が指定された場合 , リンカは , 表 5.6-5 に示す順にセクション配置アドレス決定を 行います。 表 5.6-5 で示す順のように , 自動配置よりもユーザ指定が優先されるようになっていま す。 なお,リンカは,配置可能な場所を検索する場合,常に低位アドレスから検索を行います。 表 5.6-5 セクション配置先 順番 処理対象のセクション 配置先と配置方法 1 ABS 属性を持つセクション セクションが持つアドレスに配置する。 2 -rgオプションで指定されたレジスタバンク 該当するレジスタバンク領域に配置する。 3 -sc オプションで , "-sc Section=0x0100" のよ うに,配置アドレスの指定が行われているセ クション 指定されたアドレスに配置する。 4 -sc オプションで , "-sc Section=ROM" のよう に,配置領域の指定が行われているセクショ ン 指定された領域内で,ほかのセクションと重 ならないように,配置可能な場所を検索して 配置する。 5 配置に関する指定が行われていないセク ション 表 5.6-4 に従って配置領域の決定を行い , そ の領域内で,ほかのセクションと重ならない ように , 配置可能な場所を検索して配置す る。 ■ -AL 2 が指定された場合の配置例 リンカのオプション指定と各モジュールに含まれるセクションが , 図 5.6-3 , 表 5.6-6 の 場合の配置例を示します。 レジスタバンク 0 の領域は 0x0180 ~ 0x018F の 16 バイトとします。 図 5.6-3 リンカのオプション指定 file1.obj, file2.obj file3.obj -ro ROM=0xFF8000/0xFFFFFF -ra RAM=0x000000/0x0007FF -sc ivect=0xFFFF00 -AL 2 70 CM41-00315-6, July 31, 2015 第 5 章 リンカの仕様 5.6 セクションの自動配置 Support Soft Ma nual 表 5.6-6 各モジュールに含まれるセクション モジュール セクション名 種別 配置属性 アドレス サイズ p1 CODE REL - 0x0C00 p4 CODE REL - 0x1000 stk STACK REL - 0x0100 ivect CONST REL - 0x0100 i1 IO ABS 0x0000 0x0080 d1 DATA REL - 0x0040 d3 DATA ABS 0x0200 0x0180 p3 CODE REL - 0x1000 d2 CONST REL - 0x0300 p2 CODE ABS 0x9000 0x0C00 d4 DATA REL - 0x0100 file1.obj file2.obj file3.obj 図 5.6-4 に , -AL 2 が指定された場合の配置例を示します。 このように , -AL 2 を使用すると , リンカが適当に指定された領域内でセクションの自 動配置を行うので , ユーザはプログラムの動作上必要な , 最小限の領域指定やセクショ ン配置指定で済み , セクションの配置を指定する手間を軽減できます。 図 5.6-4 -AL 2 が指定された場合の配置例 0xFF8000 0x0000 i1 0x0080 0x00C0 d1 d4 0x01C0 0x0200 0x0480 stk 0xFF9000 p2 p4 0xFFAC00 0xFFFF00 July 31, 2015, CM41-00315-6 p3 未使用(空き) 未使用(空き) 0xFFFFFF RAM領域 未使用(空き) 0xFF9C00 0xFFBC00 0x07FF p1 d2 0xFF8F00 未使用(空き) d3 0x0380 0xFF8C00 ivect ROM領域 71 第 5 章 リンカの仕様 5.7 ライブラリの検索 Su pp or t 5.7 So ft Manu al ライブラリの検索 リンカでの検索を行いたいライブラリファイルは , 以下の 3 とおりの方法で指定で きます。 • デフォルトライブラリの設定 • -l オプションによる指定 • -el オプションによる指定 ■ 検索ライブラリの指定 リンカは , 指定された入力ファイルの結合がすべて終了した時点で , 未定義のシンボル が残っていれば , その解決のためにライブラリファイルの検索を行います。 ライブラリファイルの検索は , 検索漏れが発生しないように再帰的に行われます。 検索すべきライブラリファイルは , 以下の 3 とおりの方法で指定できます。 ● デフォルトライブラリの設定 プログラムを C 言語で記述した場合 , リンク時には C ライブラリが必要となります。 リンク時にユーザが検索すべきライブラリファイルを指定することは面倒であり,指定 を間違えれば意図しないモジュールを結合してしまうこともあります。 このようなことを防ぐために, Cコンパイラは選択すべきライブラリファイル名の情報 をアセンブラの疑似命令で指示し,アセンブラはその情報をオブジェクトモジュール内 に設定します。 このようにして,リンクされるオブジェクトモジュール内に設定されたライブラリファ イル名をデフォルトライブラリとよびます。 ● -l オプションによる指定 デフォルトライブラリとして設定されていないライブラリファイルを検索対象とした い場合は , ユーザがリンク時に指定しなくてはなりません。 ユーザ自身がライブラリファイルを作成し , これをリンクしたい場合 , アセンブラでラ イブラリ指定の疑似命令を記述するか , リンカ起動時に -l オプションで指定します。 なお , -l オプションについて詳しくは「 6.2.22 ライブラリ検索パスの指定 (-L)」を参照 してください。 ● -el オプションによる指定 ライブラリファイルは複数個指定できます。 異なるライブラリファイルに,同一名の外部定義シンボルが含まれている場合もあり得 ます ( 原因の判りにくい障害を招く恐れがありますので , 極力避けてください )。 -el オプションは , シンボルごとにシンボル検索を行うライブラリファイル名を特定す るための指定です。詳しくは「 6.2.23 シンボル個別のライブラリの指定 (-el)」を参照 してください。 ■ ライブラリファイルの検索順序 リンカは , まず -el オプションで指定のあるシンボルについてシンボル参照を解決し , 次に -l オプションで指定された順にライブラリの検索を行い , 最後にデフォルトライ ブラリを検索します。ライブラリファイルから,モジュールの取り込みがなくなるまで, この一連の検索が続けられます。 72 CM41-00315-6, July 31, 2015 第 5 章 リンカの仕様 5.7 ライブラリの検索 Support 5.7.1 Soft Ma nual ライブラリファイルが 1 つの場合の検索例 1 ライブラリファイルが 1 つの場合の検索例は 3 つあります。このうち 1 つを図 5.7-1 に示し , この図に従って説明します。 ■ ライブラリファイルが 1 つの場合の検索例 1 図 5.7-1 ライブラリファイルが 1 つの場合の検索例 1 リンク後の ロードモジュール オブジェクトX X 参照 (S1) 参照 (S2) オブジェクトY Y 定義 {S2} ライブラリファイル シンボルテーブル {S1} → A {S2} → B : A 定義 {S1} B 定義 {S2} : + X 参照 (S1) 参照 (S2) 抽出モジュール Y 定義 {S2} A 定義 {S1} A 定義 {S1} オブジェクトモジュールXとYを結合した結果, X内の外部参照シンボル(S2)は, Y内の外部定義 シンボル{S2}によって解決されます。 X内の外部参照シンボル(S1)が未解決なため ライブラリを検索します。 モジュールAに, 外部定義シンボル{S1}が含ま れているため, このモジュールを新たにリンク します。 これで, 未解決の外部参照シンボルはなくなる ため, モジュールX, Y, Aから成るロードモ ジュールを作成してリンク処理を終了します。 ライブラリ中のモジュールBに外部定義シンボル {S2}がありますが, 既にリンクされたモジュール Yに存在しているため, (S2)に関してはライブラ リ検索の対象になりません。 (注意事項) 図中の( )で括ったシンボル名は"参照"を, { }で括ったシンボル名は "定義"を表します。 July 31, 2015, CM41-00315-6 73 第 5 章 リンカの仕様 5.7 ライブラリの検索 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 参照 (S1) 参照 (S2) オブジェクトY Y 参照 (S2) ライブラリファイル + X 参照 (S1) 参照 (S2) 抽出モジュール Y 参照 (S2) A 定義 {S1} B 定義 {S2} A 定義 {S1} B 定義 {S2} シンボルテーブル {S1} → A {S2} → B : オブジェクトモジュールXとYを結合した結果, X, Y内の外部参照シンボル(S1)と(S2)は, 共に 未解決となります。 A 定義 {S1} ライブラリを検索し, モジュールAに外部定義 シンボル{S1}が, モジュールBに外部定義シン ボル{S2}が含まれているため, この2つのモ ジュールを新たにリンクします。 B 定義 {S2} : これで, 未解決の外部参照シンボルはなくなる ため, モジュールX, Y, A, Bから成るロードモ ジュールを作成してリンク処理を終了します。 (注意事項) 図中の( )で括ったシンボル名は"参照"を, { }で括ったシンボル名は "定義"を表します。 74 CM41-00315-6, July 31, 2015 第 5 章 リンカの仕様 5.7 ライブラリの検索 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) + オブジェクトY 抽出モジュール Y 参照 (S1) X 参照 (S1) Y 参照 (S1) A 定義 {S1} 参照 (S2) A 定義 {S1} 参照 (S2) B 定義 {S2} B 定義 {S2} ライブラリファイル シンボルテーブル {S1} → A {S2} → B : A 定義 {S1} 参照 (S2) B 定義 {S2} : オブジェクトモジュールXとYを結合した結果, X, Y内の外部参照シンボル(S1)が未解決となりま す。 ライブラリを検索し, モジュールAに外部定義 シンボル{S1}が含まれているため, このモジュー ルを新たにリンクします。 この結果, 外部参照シンボル(S2)が新たな未解 決シンボルとなったため, もう一度ライブラリを 検索し, {S2}の定義されているモジュールBをリ ンクします。 これで, 未解決の外部参照シンボルはなくなる ため, モジュールX, Y, A, Bから成るロードモ ジュールを作成してリンク処理を終了します。 (注意事項) July 31, 2015, CM41-00315-6 図中の( )で括ったシンボル名は"参照"を, { }で括ったシンボル名は "定義"を表します。 75 第 5 章 リンカの仕様 5.7 ライブラリの検索 Su pp or t 5.7.4 So ft Manu al ライブラリファイルが複数の場合の検索例 1 ライブラリファイルが複数の場合の検索例は 2 つあります。このうち 1 つを図 5.7-4 に示し , この図に従って説明します。 ■ ライブラリファイルが複数の場合の検索例 1 図 5.7-4 ライブラリファイルが複数の場合の検索例 1 リンク後の ロードモジュール オブジェクトX X 参照 (S1) + Y 参照 (S3) オブジェクトY Y 参照 (S3) ライブラリファイル1 シンボルテーブル {S1} → A {S2} → B : X 参照 (S1) 抽出モジュール A 定義 {S1} A 定義 {S1} C 定義 {S3} C 定義 {S3} 検索対象のライブラリファイルが複数ある場 合,指定された順にライブラリ検索を行います。 A 定義 {S1} X, Yモジュールのリンク後, 未解決シンボルの (S1)と(S3)が残ります。 B 定義 {S2} ライブラリ1, ライブラリ2の順で検索します。 : ライブラリファイル2 シンボルテーブル {S3} → C : ライブラリ1の検索で{S1}の定義のあるモ ジュールAをリンクします。 次に(S3)についてライブラリ1を検索します が, 見つからないためライブラリ1の検索を終了 し, ライブラリ2を検索します。 {S3}がモジュールCで定義されているため, このモジュールをリンクします。 (注意事項) C 定義 {S3} : 76 図中の( )で括ったシンボル名は"参照" を, { }で括ったシンボル名は"定義"を 表します。 CM41-00315-6, July 31, 2015 第 5 章 リンカの仕様 5.7 ライブラリの検索 Support 5.7.5 Soft Ma nual ライブラリファイルが複数の場合の検索例 2 ライブラリファイルが複数の場合の検索例は 2 つあります。このうち 1 つを図 5.7-5 に示し , この図に従って説明します。 ■ ライブラリファイルが複数の場合の検索例 2 図 5.7-5 ライブラリファイルが複数の場合の検索例 2 リンク後の ロードモジュール オブジェクトX X 参照 (S1) ライブラリファイル1 シンボルテーブル {S1} → A {S2} → B : A 定義 {S1} B 定義 {S2} : ライブラリファイル2 シンボルテーブル {S1} → C : C 定義 {S1} : July 31, 2015, CM41-00315-6 + 抽出モジュール X 参照 (S1) A 定義 {S1} A 定義 {S1} 検索対象のライブラリファイルが複数ある場 合,指定された順にライブラリ検索を行います。 複数のライブラリファイルに同一名の外部シン ボル含まれているような場合, 先に検索したライ ブラリ中のモジュールをリンクします。 Xモジュールの未解決シンボル(S1)の解決のた めに, ライブラリ1, ライブラリ2の順で検索しま す。 ライブラリ1の検索で{S1}の定義のあるモ ジュールAをリンクします。 この時点で, 未解決シンボルはなくなったため, ライブラリの検索は終了します。 この場合, ライブラリ2の検索は行われませ ん。 (注意事項) 図中の( )で括ったシンボル名は"参照" を, { }で括ったシンボル名は"定義"を 表します。 77 第 5 章 リンカの仕様 5.7 ライブラリの検索 Su pp or t 5.7.6 So ft Manu al ライブラリファイルが個別に指定された場合の処理 ライブラリファイルが個別に指定された場合の処理を図 5.7-6 に示し , この図に従っ て説明します。 ■ ライブラリファイルが個別に指定された場合の処理 図 5.7-6 ライブラリファイルが個別に指定された場合の処理 リンク後の ロードモジュール オブジェクトX X 参照 (S1) 参照 (S2) ライブラリファイル1 シンボルテーブル {S1} → A {S2} → B : A 定義 {S1} 抽出モジュール C 定義 {S2} X 参照 (S1) 参照 (S2) C 定義 {S2} A 定義 {S1} A 定義 {S1} ライブラリファイルが個別に指定された外部参 照シンボルは, ます最初に検索されます。 B 定義 {S2} ここでは, (S2)シンボルをライブラリ2から取 り込むように指定されたものとします。 : (S2)についてライブラリ2を検索し, モジュー ルCをリンクします。 ライブラリファイル2 シンボルテーブル {S2} → C : C 定義 {S2} : 78 + (S1)の解決に, ライブラリファイル1を検索 し, モジュールAをリンクします。 ライブラリファイル1中の{S2}は, 検索対象に なりません。 (注意事項) ・図中の( )で括ったシンボル名は"参照" を, { }で括ったシンボル名は"定義"を表 します。 ・指定されたライブラリに, 検索対象の外部 定義シンボルが見つからなかった場合, この例のようにほかの検索対象ライブラリ中 に該当するシンボルがあればシンボル解決 が行われるため注意してください。 CM41-00315-6, July 31, 2015 第 5 章 リンカの仕様 5.8 ROM/RAM 領域 Support 5.8 Soft Ma nual 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/0x57F 領域名 CodeA は , 0x1000 ~ 0x3FFF のアドレス範囲を示します。 領域名 DataA は , 0x0180 ~ 0x057F のアドレス範囲を示します。 領域名を使用したセクション配置指定は ,【例 3】のようになります。 【例 3】 -sc CODE=CodeA, DATA=DataA 領域名を使用したセクション配置では , 指定したアドレス範囲内に配置されたか否 かをチェックできます。 July 31, 2015, CM41-00315-6 79 第 5 章 リンカの仕様 5.9 ROM → RAM 転送セクション Su pp or t 5.9 So ft Manu al ROM → RAM 転送セクション C コンパイラを使用したプログラム開発においては初期値付変数が生成され , その変 数の書換えなどの処理を行うことが頻繁にあります。 これらの変数は実行時に書換えられるため , アプリケーション実行時は RAM になく てはなりません。したがって , 組込み用のプログラムにおいては , 初期値データは ROM に置き , アプリケーション実行前に RAM へ初期値データを転送しないと使用 できないことになります。 ROM → RAM 転送セクションは , このような使用を可能にするための機能です。 ■ ROM → RAM 転送セクション C コンパイラを使用したプログラム開発においては初期値付変数が生成され , その変数 の書換えなどの処理を行うことが頻繁にあります。 組込み用プログラムでは , 初期値付変数データは ROM に置かれますが , これらの変数 は実行時に書換えられるため,アプリケーション実行時はRAMになくてはなりません。 したがって , アプリケーション実行前に RAM へ初期値データを転送して使用すること になります。 本リンカでは , このような使用を簡単にするため , ROM → RAM 転送セクションを指 定することで , プログラムの参照アドレスは RAM 上で解決し , 初期値データは ROM 上に配置するしくみをサポートしています。 ■ ROM → RAM 転送セクションの使用方法 ROM→RAM転送セクションの指定は, -scオプションを用いて次のように使用します。 初期値付変数がまとめられているセクションを INIT とします。 DATA は , 初期値なし変数のセクションとし , start は , ROM 上の初期値付変数データ を RAM へ転送するプログラム , CODE は , 実行されるアプリケーションプログラムと します。 -sc DATA+ INIT =0x1000,start+CODE+ @INIT =0xC000 ここで , 上記のように , RAM 側 (0x1000) に INIT を配置するように指定し , ROM 側 (0xC000) にもセクション名の先頭に @ マークを付加して INIT を配置するように指定 します。 このように配置指定を行うと INIT は ROM → RAM 転送セクションとして処理され , 図 5.9-1 のような配置になり , INIT のアドレス解決は RAM 側で行われ , 初期値データは ROM 側に配置されます。 80 CM41-00315-6, July 31, 2015 第 5 章 リンカの仕様 5.9 ROM → RAM 転送セクション Support Soft Ma nual 図 5.9-1 ROM → RAM 転送セクションの配置例 0x1000 RAM 0xC000 ROM DATA INIT _RAM_INIT (転送先先頭アドレスシンボル) start CODE (INIT) _ROM_INIT (転送元先頭アドレスシンボル) このとき , _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 Data, data .res.w 0x1 .section Prog1, code movw A, val1 movw rw2, A movw A, val2 movw rw3, A .section Prog2, code movw A, val3 cmpw A, #0 val3: .end July 31, 2015, CM41-00315-6 81 第 5 章 リンカの仕様 5.9 ROM → RAM 転送セクション Su pp or t So ft Manu al 上記プログラムでは , 初期値付変数が記述されているセクション init, 変数領域が記述 されているセクション Data, プログラムコードが記述されているセクション Prog1, Prog2 があります。 それぞれのセクションについてアセンブル後の実行 , Read, Write の可 / 不可は , 表 5.91 のようになります。 表 5.9-1 アセンブル後の各セクションの属性 セクション名 実行 Read Write init × ○ ○ Data × ○ ○ Prog1 ○ ○ × Prog2 ○ ○ × ○ …可 × …不可 ここで , リンク時に , init と Prog1 の ROM → RAM 転送セクション指定を行うと , それ ぞれのセクションのリンク後の実行 , Read, Write の可 / 不可は , 表 5.9-2 のようになり ます。 表 5.9-2 リンク後の各セクションの属性 セクション名 init(RAM 側 ) 実行 Read Write × ○ ○ 備考 リンカにより用意された ROM 側 のセクション Write が不可に変更された init(ROM 側 ) × ○ × Data × ○ ○ Prog1(RAM側) ○ ○ ○ Write が可に変更された Prog1(ROM側) ○ ○ × リンカにより用意された ROM 側 のセクション Prog2 ○ ○ × ○ …可 × …不可 82 CM41-00315-6, July 31, 2015 第 5 章 リンカの仕様 5.10 DIR 属性セクションの配置について Support 5.10 Soft Ma nual DIR 属性セクションの配置について F2MC-16 ファミリでは , 複数のダイレクトページの使用が可能です。しかし , コン パイラの出力したモジュールをリンクする際は注意をしてください。 ■ ダイレクトページについて ダイレクトページは , DIR 属性 セクションを配置するための領域です。 1 つのダイレクトページのサイズは 256 バイトです。 F2MC-16 ファミリでは , 複数のダイレクトページを使用可能です。複数のダイレクト ページの使用法については , 各チップのハードウェアマニュアルを参照してください。 ■ DIR 属性セクションの配置について DIR 属性 セクションは , 連続して配置する必要があり , 結合された領域は 256 バイト境 界をまたいで配置できません。DIR セクションは , リンク時に以下のように配置されま す。 ● DIR 属性セクション合計サイズが 256 バイト以下の場合 リンカは , DIR 属性 セクションを 1 つのダイレクトページに配置します。 図 5.10-1 DIR 属性セクション合計サイズが 256 バイト以下の場合 0x000 DIRDATA DIRDATA + DIRINIT ダイレクトページ1 Link DIRINIT 0x100 DIRDATA+DIRINNIT < = 256Byte ダイレクトページ2 0x200 July 31, 2015, CM41-00315-6 83 第 5 章 リンカの仕様 5.10 DIR 属性セクションの配置について Su pp or t So ft Manu al ● 1 つの DIR 属性セクションサイズが 256 バイトを超える場合 1 つの DIR セクションが 256 バイトを超える場合 , リンカはエラー (***E4363L: セク ションの最大サイズを超えました ( セクション名 )) を出力します。 図 5.10-2 1 つの DIR セクションが 256 バイトを超える場合 0x000 ダイレクトページ1 DIRDATA × Link + 0x100 リンク中断 ダイレクトページ2 DIRINIT 0x200 DIRDATA > 256Byte DIRDATAセクションが256バイトを超えたため,リンク 時にエラー(***E4363:セクションの最大サイズを 超えました (DIRDATA))を出力します。 ● 各DIR属性セクションが256バイト以下でかつDIRセクション合計が256バイトを超える場合 リンカは , DIR 属性セクションをダイレクトページに収まるように (256 バイト境界を またがないように ) 複数のダイレクトページに配置します。 図 5.10-3 各 DIR 属性セクションが 256 バイト以下でかつ DIR セクション合計が 256 バイトを超え る場合 0x000 DIR_ 1 DIRDATA DIRDATA ダイレクトページ1 + Link 0x100 DIRINIT DIRINIT ダイレクトページ2 DIRDATA+DIRINIT > 256Byte かつ DIRDATA < = 256Byte DIRINIT < = 256Byte 0x200 256バイト境界をまたがないように複数 のダイレクトページに配置します。 84 CM41-00315-6, July 31, 2015 第 5 章 リンカの仕様 5.10 DIR 属性セクションの配置について Support Soft Ma nual ■ DIR 属性セクション合計サイズチェックについて コンパイラは , DIR 属性セクションが 1 つのダイレクトページに配置されることを前提 に処理を行います。 図 5.10-3 の場合 , DIR 属性セクションがアクセスできない領域に配置されることにな ります ( 図 5.10-3 では DIRINIT ができなくなります )。 リンカには , DIR 属性セクションの合計サイズが 256 バイトを超えた場合警告を出力す る機能があります。 (「6.2.48 DIR 属性セクション合計サイズチェック指定 (-check_dirsize)」参照 ) 警告が出力された場合 , DIR 属性セクションの合計サイズが 256 バイト以下になるよう ソースを修正してください。 <注意事項> 以下のような場合 , DIR 属性セクションの合計サイズが 256 バイトを超えても問題ありま せん。 • アセンブラソースにおいて複数のダイレクトページを使用している場合 • リアルタイム OS のタスクごとに異なったダイレクトページを使用している場合 DIR 属性セクションの合計サイズが 256 バイトを超えても問題ない場合 , DIR セクション 合計サイズのチェックは抑止できます (「6.2.49 DIR 属性セクション合計サイズチェック 抑止指定 (-Xcheck_dirsize)」参照 )。 July 31, 2015, CM41-00315-6 85 第 5 章 リンカの仕様 5.11 CPU 情報ファイル Su pp or t 5.11 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 情報ファイル名 • 907.csv ● 検索ディレクトリ • %FETOOL% \ LIB\907 ■ 内蔵 ROM/RAM 領域自動設定の抑止指定 リンカは , デフォルトで -cpu オプションから CPU を特定し , CPU 情報ファイルから該 当するチップの情報を抽出し , ROM/RAM 領域を自動的に設定します。 本機能を抑止したい場合は , -Xset_rora オプションを指定します。 <注意事項> CPU 情報ファイルが見つからない場合または CPU 情報ファイル内に該当 MB 番号の情報 が存在しない場合 , リンカはエラーを出力します。 86 CM41-00315-6, July 31, 2015 第 5 章 リンカの仕様 5.12 リンカでのオブジェクト混在 Support 5.12 Soft Ma nual リンカでのオブジェクト混在 リンカ (flnk907s) では , -cpu オプションで指定したターゲット CPU が上位互換 CPU の場合に , 下位 CPU 用に作られたオブジェクトやライブラリの混在が可能で す。 ■ オブジェクト混在 リンカ (flnk907s) では , -cpu オプションで指定したターゲット CPU が上位互換の場合 に , 下位 CPU 用に作られたオブジェクトやライブラリの混在が可能です。 リンカは , -w オプションで 2 が指定されているときのみ , オブジェクトの混在が起こっ た場合にインフォメーションを出力します。 ■ -cpu オプションとオブジェクト混在可能 CPU 一覧 表 5.12-1 に , -cpu オプションと混在可能な下位 CPU 用のオブジェクト , ライブラリを 示します。 表 5.12-1 -cpu オプションとオブジェクト混在可能 CPU 一覧 オブジェクト / ライブラリ作成時の -cpu オプション リンク時の -cpu オプション指定 F2MC-16L/16/16H F2MC-16LX F2MC-16FX F2MC-16F F2MC-16L/16/16H の CPU ◎ × × × F2MC-16LX の CPU ○ ◎ ○ × F2MC-16FX の CPU ○ ○ ◎ × F2MC-16F の CPU ○ ○ ○ ◎ ◎ : 同一ターゲットです。混在ではありません。 ○: 混在可能ですが,リンカは, -wオプションで2が指定された場合にイン フォメーションを出力します。 × : 混在できません。リンカはエラーを出力します。 July 31, 2015, CM41-00315-6 87 第 5 章 リンカの仕様 5.13 リンカでの関数呼び出しインタフェースの異なるオブ ジェクトの混在について Su pp or t 5.13 So ft Manu al リンカでの関数呼び出しインタフェースの異なるオブ ジェクトの混在について ここでは , リンカでの関数呼び出しインタフェースの異なるオブジェクトの混在に ついて説明します。 ■ リンカでの関数呼び出しインタフェースの異なるオブジェクトの混在 F2MC-16 ファミリでは , 以下のような関数呼び出しインタフェースをサポートしてい ます。 • 引数のスタック渡し ( 従来の関数呼び出しインタフェース ) • 引数のレジスタ (RW0, RW1) 渡し 引数のレジスタ 渡しのオブジェクトと引数のスタック渡しのオブジェクトとでは引数 の受け渡し方法とレジスタの使用方法が異なります。そのため , 関数呼び出しインタ フェースの異なるオブジェクトを混在して使用するとプログラムが正しく動作しませ ん。 リンカでは , 引数のスタック渡しのオブジェクトと引数のレジスタ 渡しのオブジェク トは , ターゲット CPU が同じでも混在できません。 関数呼び出しインタフェースの異なるオブジェクトが混在していた場合 , リンカはエ ラーを出力し処理を中断します。 (*** E4313L : 関数呼び出しインタフェースの異なるモジュールがあります ( ファイル 名 )) 関数呼び出しインタフェースが同じ場合 , 従来どおりターゲット CPU によるオブジェ クト混在チェックを行います。ターゲット CPU によるオブジェクト混在チェックは , 「5.12 リンカでのオブジェクト混在」を参照してください。 88 CM41-00315-6, July 31, 2015 第 5 章 リンカの仕様 5.14 未使用関数削除 Support 5.14 Soft Ma nual 未使用関数削除 未使用関数削除機能は , 使用しない関数のオブジェクトコードを削除して ROM 使用 量を削減するための機能です。 ■ 未使用関数とは 未使用関数とは , プログラムの動作上一度も参照されない関数を指します。 【例】未使用関数の例 main.c void main(void) { func1(); func3(); } void func1(void) { func4(); } void func2(void) { func8(); } module1.c void func3(void) { func7(); } void func4(void) { } void func5(void) { } void func6(void) { } module2.c void func7(void) { func5(); } void func8(void) { func6(); } 上記構成プログラムの場合 , 以下の関数が未使用関数です。 • func2() • func6() • func8() ■ 未使用関数削除機能 未使用関数削除機能は , 使用しない関数のオブジェクトコードを削除して ROM 使用量 を削減するための機能です。 未使用関数削除機能は , 以下のように未使用関数のオブジェクトコードを削除します。 1. -K LNKOPT オプションを指定して , C ソースをコンパイルします。 リンク時に未使用関数を抽出するための情報を未使用関数削除情報ファイル (ufi ファイル ) に出力します。 リンカが関数を削除できるように , CODE セクションを関数単位に分割します。 2. コンパイラが出力した ufi ファイルを解析し , 未使用関数を抽出します。 3. 2. で未使用関数と判定された関数の CODE セクションを削除します。 July 31, 2015, CM41-00315-6 89 第 5 章 リンカの仕様 5.14 未使用関数削除 Su pp or t 90 So ft Manu al CM41-00315-6, July 31, 2015 Support Soft Ma nual 第6章 リンカのオプション リンカの各オプションについて詳しく説明します。 6.1 リンカのオプション一覧 6.2 リンカのオプション詳細 July 31, 2015, CM41-00315-6 91 第 6 章 リンカのオプション 6.1 リンカのオプション一覧 Su pp or t 6.1 So ft Manu al リンカのオプション一覧 リンカの動作を細かく指示するために , オプションがあります。 ■ リンカのオプション一覧 リンカのオプション一覧を , 表 6.1-1 に示します。 表 6.1-1 リンカのオプション一覧 (1 / 3) 機能 入出力 出力ロード 制御 モジュールに オプ 関する指定 ション 出力リストに 関する指定 -o デバッグ情報出力指定 -g デバッグ情報削除指定 -Xg デフォルト 絶対形式ロードモジュール出力指定 -a デフォルト 相対形式ロードモジュール出力指定 -r ROM 領域のフィル指定 -fill マップリストファイル名指定 -m マップリスト出力抑止指定 -Xm リスト表示の名前省略解除 -dt 92 デフォルト デフォルト -mmi リスト行の桁数指定 -pw デフォルト 132 リスト 1 ページの行数指定 -pl デフォルト 60 ROM 領域のチェックサム指定 -cs 出力メッセージ 警告メッセージ出力レベル指定 に関する指定 ライブラリ制御 オプション 備考 出力ロードモジュールファイル名指定 メモリ使用情報リストの 出力指定 配置 / 結合オプション オプション -w ROM 領域指定 -ro RAM 領域指定 -ra セクション配置 -sc セクショングループ指定 -gr レジスタバンク領域の指定 -rg 自動配置指定 -AL 検索ライブラリファイル指定 -l ライブラリ検索パス指定 -L シンボル個別のライブラリ指定 -el ライブラリ検索抑止指定 -nl デフォルトライブラリ検索抑止指定 -nd デフォルト 0 CM41-00315-6, July 31, 2015 第 6 章 リンカのオプション 6.1 リンカのオプション一覧 Support Soft Ma nual 表 6.1-1 リンカのオプション一覧 (2 / 3) 機能 未使用関数削除機能 関連オプション その他のリンク制御 オプション 未使用関数削除指定 -lnkopt C ソース実行開始シンボル指定 -entryc 削除対象外関数指定 -Xdel 未使用関数削除情報ファイル格納パス指定 -ufiin エントリアドレス指定 -e 外部シンボル値の仮設定 -df ターゲット CPU 指定 -cpu CPU 情報ファイル指定 -cif デバッグ情報存在チェック抑止指定 内蔵 ROM/RAM 領域の自動設定 -set_rora -Xset_rora ユーザ指定領域のチェック指定 -check_rora ユーザ指定領域のチェック抑止指定 -Xcheck_rora セクション配置領域チェック指定 -check_locate セクション配置領域チェック抑止指定 -Xcheck_locate ユーザ指定外セクションのチェック指定 -check_section スタンバイモード遷移命令チェック指定 スタンバイモード遷移命令チェック抑止指定 備考 デフォルト _main 必須 -NCI0302LIB 内蔵 ROM/RAM 領域自動設定の抑止指定 ユーザ指定外セクションのチェック抑止指定 デフォルト デフォルト デフォルト -Xcheck_section デフォルト -check_SCF デフォルト -Xcheck_SCF フェッチ単位チェックの指定 -Wf 引数のレジスタ渡し用ロードモジュール出力指定 -rp 引数のスタック渡し用ロードモジュール出力指定 -Xrp デフォルト -check_dirsize デフォルト DIR 属性 セクション合計サイズチェック指定 DIR 属性 セクション合計サイズチェック抑止指定 -Xcheck_dirsize サイズ 0 のセクション配置チェック指定 -check_size0_sec サイズ 0 のセクション配置チェック抑止指定 July 31, 2015, CM41-00315-6 オプション -Xcheck_size0_sec デフォルト 93 第 6 章 リンカのオプション 6.1 リンカのオプション一覧 Su pp or t So ft Manu al 表 6.1-1 リンカのオプション一覧 (3 / 3) 機能 絶対形式アセンブル リスト出力関連 オプション 相対アセンブルリスト入力ディレクトリ指定 -alin 絶対アセンブルリスト出力ディレクトリ指定 -alout 絶対アセンブルリスト出力指定 -als 絶対アセンブルリスト出力モジュール指定 -alsf 絶対アセンブルリスト出力抑止指定 -Xals ROM/RAM, ARRAY リスト出力指定 -alr ROM/RAM, ARRAY リスト出力モジュール指定 -alrf ROM/RAM, ARRAY リスト出力抑止指定 -Xalr ROM/RAM, ARRAY リストのシンボルとアドレス の表示位置指定 オブジェクト内容 リスト出力関連 オプション 共通オプション -xl 外部シンボル相互参照情報リストファイル名指定 -xlf 外部シンボル相互参照情報リスト出力抑止指定 -Xxl ローカルシンボルリスト出力指定 -sl ローカルシンボルリストファイル名の指定 -slf ローカルシンボルリスト出力抑止指定 -Xsl セクション詳細マップリスト出力指定 -ml セクション詳細マップリストファイル名の指定 -mlf セクション詳細マップリスト出力抑止指定 -Xml デフォルトオプションファイル読み込み抑止指定 -Xdof -f ヘルプメッセージ表示指定 -help 版数 / メッセージ出力指定 -V 版数 / メッセージ出力抑止 -XV 終了メッセージ表示指定 終了メッセージ表示抑止指定 備考 -na/-an 外部シンボル相互参照情報リスト出力指定 オプションファイル読み込み指定 94 オプション デフォルト -cmsg -Xcmsg ワーニング発生時の終了コードを 1 にする指定 -cwno ワーニング発生時の終了コードを 0 にする指定 -Xcwno デフォルト デフォルト CM41-00315-6, July 31, 2015 第 6 章 リンカのオプション 6.2 リンカのオプション詳細 Support 6.2 Soft Ma nual リンカのオプション詳細 ここでは , リンカの各オプションについて説明します。 なお , リンケージキットで共通のオプションは ,「第 3 章 共通オプション」で説明 しています。 ■ 出力モジュールに関するオプション 出力モジュールに関するオプションの詳細を「6.2.1 出力ロードモジュールファイル名 指定 (-o)」~「6.2.6 ROM 領域のフィル指定 (-fill)」で説明します。 ■ 出力リストに関するオプション 出力リストに関するオプションの詳細を「6.2.7 マップリストファイル名の指定 (-m)」~ 「6.2.13 ROM 領域のチェックサム指定 (-cs)」で説明します。 ■ 出力メッセージに関する指定 出力メッセージに関するオプションの詳細を「6.2.14 警告メッセージ出力レベルの指 定 (-w)」で説明します。 ■ 配置 / 結合オプション 配置 / 結合に関するオプションの詳細を「6.2.15 ROM 領域の指定 (-ro)」~「6.2.20 自 動配置指定 (-AL)」で説明します。 ■ ライブラリ制御オプション ライブラリ制御オプションの詳細を「6.2.21 検索ライブラリファイルの指定 (-l)」~ 「6.2.25 デフォルトライブラリ検索の抑止指定 (-nd)」で説明します。 ■ 未使用関数削除機能関連オプション 未使用関数削除機能関連オプションの詳細を「6.2.26 未使用関数削除指定 (-lnkopt)」~ 「6.2.29 未使用関数削除情報ファイル格納パス指定 (-ufiin)」で説明します。 ■ その他のリンク制御オプション その他のリンク制御に関するオプションの詳細を「6.2.30 エントリアドレスの指定 (-e)」~ 「6.2.51 サイズ 0 のセクション配置チェック抑止指定 (-Xcheck_size0_sec)」で説明しま す。 ■ 絶対形式アセンブルリスト出力関連オプション 絶対形式アセンブルリスト出力に関するオプションの詳細を「6.2.52 相対アセンブル リスト入力ディレクトリ指定 (-alin)」~「6.2.60 ROM/RAM, ARRAY リストのシンボ ルとアドレスの表示位置指定 (-na, -an)」で説明します。 ■ オブジェクト内容リスト出力関連オプション オブジェクト内容リスト出力に関するオプションの詳細を「6.2.61 外部シンボル相互 参照情報リスト出力指定 (-xl)」~「6.2.69 セクション詳細マップリスト出力抑止指定 (-Xml)」で説明します。 July 31, 2015, CM41-00315-6 95 第 6 章 リンカのオプション 6.2 リンカのオプション詳細 Su pp or t 6.2.1 So ft Manu al 出力ロードモジュールファイル名指定 (-o) リンク結果のロードモジュールファイル名を指定します。このオプションが指定さ れないときは , 最初に入力したファイル名から出力ファイル名を作ります。 ■ 出力ロードモジュールファイル名指定 (-o) 【記述形式】 -o < ロードモジュールファイル名 > ( デフォルト ) 【パラメータ】 < ロードモジュールファイル名 > 出力ロードモジュールファイル名です。 【説明】 リンク結果の出力ロードモジュールファイル名を指定します。 本オプション指定がない場合は , リンカが最初に入力したファイル名をもとに , リ ンクモードに応じた拡張子を付加した名称で出力ファイルを作ります。 リンクモード デフォルト拡張子 絶対形式出力 (-a オプション ) .abs 相対形式出力 (-r オプション ) .rel < ロードモジュールファイル名 > の指定で拡張子を省略した場合も , リンクモードの違 いにより同様の拡張子が付加されます。 【例 1】 flnk907s putc.obj,getc.obj ファイル名 putc.abs でロードモジュールファイルを作成します。 【例 2】 flnk907s *.obj -o outfile ファイル名 outfile.abs でロードモジュールファイルを作成します。 この例のように , 入力オブジェクトファイル指定にワイルドカードを使用する場合 には , 本オプションを使用して出力ファイル名を明確にしておくことをお勧めしま す。 【例 3】 flnk907s *.obj -o outfile. ファイル名 outfile. でロードモジュールファイルを作成します。 ファイル名の最後にピリオドがある場合は , 拡張子ありとみなします。 【例 4】 flnk907s *.obj -r -o outfile.rel ファイル名 outfile.rel で相対形式ロードモジュールファイルを作成します。 96 CM41-00315-6, July 31, 2015 第 6 章 リンカのオプション 6.2 リンカのオプション詳細 Support 6.2.2 Soft Ma nual デバッグ情報の出力指定 (-g) C コンパイラやアセンブラで , デバッグ情報の出力指定をして作られたオブジェクト モジュールには , デバッガで利用するためのデバッグ情報が含まれています。 デバッグ情報をリンク後も継承して使用するためには , -g オプションを指定します。 ■ デバッグ情報の出力指定 (-g) 【記述形式】 -g 【パラメータ】 なし 【説明】 リンカは , 入力するオブジェクトモジュールファイルまたは相対形式ロードモ ジュールファイルにデバッグ情報が含まれている場合 , デフォルト出力ではデバッ グ情報を削除します。 出力ロードモジュールファイル中にデバッグ情報を残したい場合に , 本オプション を使用します。 リンカは , デバッグ情報を新たに作り出すことはありませんので , 入力ファイルに デバッグ情報が含まれていない場合は , 指定することに意味はありません。 デバッグ時にシンボリックデバッグを行いたい場合には , C コンパイラ~アセンブ ラ~リンカのすべてのツールで -g オプションの指定をしてください。 【例】 flnk907s -f rllnk.opt b1 b2 図 6.2-1 デバッグ情報の出力指定例 rllnk.opt -r -g -pw 100 -o rel1.rel July 31, 2015, CM41-00315-6 # relocatable LM output # debug info. # page width # output filename 97 第 6 章 リンカのオプション 6.2 リンカのオプション詳細 Su pp or t 6.2.3 So ft Manu al デバッグ情報の削除指定 (-Xg) C コンパイラやアセンブラで , デバッグ情報の出力指定をして作られたオブジェクト モジュールには , デバッガで利用するためのデバッグ情報が含まれています。 デバッグ情報をリンク後に取り去るためには , -Xg オプションを指定します。または , -g オプションの指定を行わないようにします。 ■ デバッグ情報の削除指定 (-Xg) 【記述形式】 ( デフォルト ) -Xg 【パラメータ】 なし 【説明】 リンカは , 入力するオブジェクトモジュールファイルまたは相対形式ロードモ ジュールファイルにデバッグ情報が含まれている場合 , デフォルト出力ではデバッ グ情報を削除しますので , 本オプションを指定する必要はありません。 オプションファイルを利用したリンクにおいて , オプションファイル中に -g オプ ションがある場合など , -g オプションを無効にするときに使用します。 【例】 flnk907s -f rllnk.opt a1 a2 a3 -Xg -o a123.rel 図 6.2-2 デバッグ情報の削除指定例 rllnk.opt -r -g -pw 100 -o rel1.rel 98 # relocatable LM output # debug info. # page width # output filename CM41-00315-6, July 31, 2015 第 6 章 リンカのオプション 6.2 リンカのオプション詳細 Support 6.2.4 Soft Ma nual 絶対形式ロードモジュールの出力指定 (-a) -a オプションは , リンカの最終目的ファイルである , 絶対形式のロードモジュールを 作成することを指示するオプションです。 ■ 絶対形式ロードモジュールの出力指定 (-a) 【記述形式】 ( デフォルト ) -a 【パラメータ】 なし 【説明】 絶対形式のロードモジュールファイル出力を指示します。 リンカのデフォルト出力は絶対形式ですので , 通常使用することはありません。 -r オプション指定を打ち消し -a 指定に変更する場合に指定します。 絶対形式の出力ファイルは , 以下の名前で作成されます。 • -o オプション指定がないとき : 最初に指定された入力ファイルの拡張子を ".abs" とした名称 • -o オプション指定があるとき : 指定された名称。拡張子指定がないときは , ".abs" を付加した名称 【例】 flnk907s a1 a2 a3 -r -o a123.abs -a コマンドラインの途中の -r オプションを無効にします。 出力ロードモジュールファイルは , 絶対形式で作成されます。 July 31, 2015, CM41-00315-6 99 第 6 章 リンカのオプション 6.2 リンカのオプション詳細 Su pp or t So ft Manu al 相対形式ロードモジュールの出力指定 (-r) 6.2.5 -r オプションは , 再入力可能な相対形式ロードモジュールを作成することを指示する オプションです。相対形式のロードモジュールは , アドレス解決を行わないで複数の モジュールを 1 つのファイルにまとめた形式を持っています。 ■ 相対形式ロードモジュールの出力指定 (-r) 【記述形式】 -r 【パラメータ】 なし 【説明】 相対形式のロードモジュールファイル出力を指示します。 リンカのデフォルト出力 ( 絶対形式 ) を変更するときに指定します。 -a オプションのあとに -r オプションを指定すると , -a オプションを無効にすること ができます。 -AL オプションの指定は 0 または -AL の指定なしにしてください。詳しくは「6.2.20 自動配置指定 (-AL)」を参照してください。 相対形式のロードモジュールは , アドレス解決を行わないで複数のオブジェクトモ ジュールを 1 つのファイルにまとめた形式です。リンカへの再入力が可能であり , 以降のリンク処理で指定する入力ファイル数を少なくできることが利点ですが , こ の中のモジュールに変更が生じた場合には , ライブラリ形式ファイルと異なり差し 替えることはできません。 このオプションが指定された場合 , 絶対形式アセンブルリスト , オブジェクト内容 リストに関するオプションはすべて無視され,それらのファイルは出力されません。 出力ファイルは , 以下の名前で作成されます。 • -o オプション指定がないとき :最初に指定された入力ファイルの拡張子を ".rel"と した名称 • -o オプション指定があるとき : 指定された名称。拡張子指定がないときは , ".rel" を付加した名称 【例】 flnk907s a1 a2 a3 -r -o a123.rel リンカの出力オブジェクトを相対形式にします。 <注意事項> 最初に指定された入力ファイルが , 拡張子 ".rel" であるとき , 出力ファイル名が同じになり ます。この場合 , 入力ファイルの内容は保存されませんので , 不都合が有る場合には , -o オプションで出力ファイル名の指定をしてください。 100 CM41-00315-6, July 31, 2015 第 6 章 リンカのオプション 6.2 リンカのオプション詳細 Support 6.2.6 Soft Ma nual ROM 領域のフィル指定 (-fill) -fill オプションは指定した領域を指定した値で埋めるオプションです。 ■ ROM 領域のフィル指定 (-fill) 【記述形式】 -fill < スタートアドレス >/< エンドアドレス >,< フィル値 >[/< ビット幅 >] [/< エンディアン >] 【パラメータ】 < スタートアドレス > 値を埋める領域の開始アドレスを指定します。このパラメータは省略できません。 < エンドアドレス > 値を埋める領域の終了アドレスを指定します。このパラメータは省略できません。 < フィル値 > スタートアドレスとエンドアドレスで指定した領域 ( 以下 , フィル領域とよぶ ) の オブジェクトデータがない箇所を埋める値を指定します。このパラメータは省略で きません。 < ビット幅 > フィル値のビット幅は 8,16 または 32 のどれかを指定します。このパラメータは省 略できます。 省略時のビット幅は 8 です。 8: 8 ビット 16: 16 ビット 32: 32 ビット < エンディアン > フィル値のエンディアンを B または L で指定します。このパラメータは省略できま す。省略時のエンディアンは L です。 B: ビッグエンディアン L: リトルエンディアン 【説明】 フィル領域のオブジェクトデータがない箇所を指定したフィル値で埋めます。値を 埋める領域が複数ある場合 ,-fill オプションを複数指定してください。値を埋める領 域が重複した場合 , 重複した領域は後に指定した -fill オプションのフィル値で埋め られます。 -cs オプションの値を埋める領域と -fill オプションの値を埋める領域が重複した場 合 , 重複した領域は常に -fill オプションのフィル値で埋められます。 本オプションは,絶対形式ロードモジュール作成時に有効となります。相対形式ロー ドモジュール作成時は , 以下の警告メッセージが出力され , 本オプションの指定は 無視されます。 [ 警告メッセージ ] *** W1321L: REL モード時には (-fill) オプションは無視されます。 July 31, 2015, CM41-00315-6 101 第 6 章 リンカのオプション 6.2 リンカのオプション詳細 Su pp or t So ft Manu al 【例】 以下のような指定を行った場合,各領域は図 6.2-3 のようにフィル値で埋められます。 flnk907s -fill 0xFD0000/0xFEFFFF,0x0055AAFF/32/ B -fill 0xFF0000/0xFFFFFF,0x1234/16/L -fill 0xFF8000/0xFFFFFF,0x5678/16/B 図 6.2-3 フィル領域指定例 flnk907s -fill 0xFD0000/0xFEFFFF,0x0055AAFF/32/B ① -fill 0xFF0000/0xFFFFFF,0x1234/16/L ② -fill 0xFF8000/0xFFFFFF,0x5678/16/B ③ フィル領域 フィル領域配置イメージ 0xFD0000 ①で指定したフィル値で埋められます。 ①の指定領域 (0x00,0x55,0xAA,0xFF,0x00, 0x55,0xAA,00xFF,・・・) ①の指定領域 0xFEFFFF 0xFF0000 0xFF7FFF 0xFF8000 ②の指定領域 ②の指定領域 ③の指定領域 0xFFFFFF ②で指定したフィル値で埋められます。 (0x34,0x12,0x34,0x12,・・・) ③で指定したフィル値で埋められます。 ③の指定領域 (0x56,0x78,0x56,0x78,・・・) ②と③のフィル対象領域は重なっています。 ③のフィル領域指定が②より後に行われているため, 重なっている領域は③で指定したフィル値で埋められます。 オブジェクトデータと値を埋める領域が重なる場合 , 図 6.2-4 のように , 各領域がフィ ル値で埋められた後 , オブジェクトデータが配置されます。 図 6.2-4 最終的なオブジェクトデータ セクション配置前のオブジェクトデータ セクション配置後のオブジェクトデータ 0xFD0000 フィル領域配置後にセクションを 配置されます。 オブジェクトデータ オブジェクトデータ 0xFEFFFF 0xFF0000 0xFF7FFF 0xFF8000 オブジェクトデータ オブジェクトデータ 0xFFFFFF 102 CM41-00315-6, July 31, 2015 第 6 章 リンカのオプション 6.2 リンカのオプション詳細 Support 6.2.7 Soft Ma nual マップリストファイル名の指定 (-m) リンカが出力するマップリストファイルのファイル名を指定します。 このオプションが指定されないときは , 出力ロードモジュールファイル名からファイ ル名を作ります。 ■ マップリストファイル名の指定 (-m) 【記述形式】 -m < マップリストファイル名 > ( デフォルト ) 【パラメータ】 < マップリストファイル名 > 出力マップリストファイル名パラメータは省略できません。 【説明】 リンカは , デフォルトでマップリストファイルを出力します。このとき , 出力ロー ドモジュールファイルの拡張子を , ".mp1" とした名称のファイルが作られます。 -m オプションは , デフォルトのマップリストファイル名を変更したいときに使用し ます。 -Xm オプションの後に -m オプションを指定すると , -Xm オプションを無効にする ことができます。 【例】 flnk907s a1 a2 a3 -r -o a123.rel -m a123.map リンカが出力するマップリストファイル名を a123.map にします。 July 31, 2015, CM41-00315-6 103 第 6 章 リンカのオプション 6.2 リンカのオプション詳細 Su pp or t 6.2.8 So ft Manu al マップリスト出力の抑止指定 (-Xm) リンカにマップリストファイルを出力しないことを指示します。このオプションを 指定しないときは , 必ずマップリストファイルが作成されます。 ■ マップリスト出力の抑止指定 (-Xm) 【記述形式】 -Xm 【パラメータ】 なし 【説明】 マップリストファイルの出力の抑止を行います。 -m オプションの後に -Xm オプションを指定すると , -m オプションを無効にするこ とができます。 -Xm オプションの指定により , -dt, -pw, -pl オプションは無効になります。 【例】 flnk907s a1 a2 a3 -r -o a123.rel -Xm マップリストファイルの作成は行わないようにします。 104 CM41-00315-6, July 31, 2015 第 6 章 リンカのオプション 6.2 リンカのオプション詳細 Support 6.2.9 Soft Ma nual リスト表示の名前の省略解除 (-dt) リンカのマップリスト , オブジェクト内容リストには , セクション名やシンボル名な ど名前の表示がありますが , デフォルトでのリスト出力では見やすさを考慮して , 長 い名前は途中までを表示するようにしています。 このオプションは , 名前を省略せずに出力することを指示します。 マップリストの表示フォーマットについては ,「 7.2 リンクリストファイル」を参照 してください。 ■ リスト表示の名前の省略解除 (-dt) 【記述形式】 -dt 【パラメータ】 なし 【説明】 マップリスト , オブジェクト内容リストで表示されるシンボル名およびセクション 名を途中で省略せずに表示します。この場合 , 1 つのシンボル名 , セクション名は数 行に渡って表示されます。 デフォルト出力では 80 文字程度の表示ができますが , リスト 1 行の表示桁数を小さ な値に設定したときに表示可能な文字数も減りますので , シンボル名およびセク ション名の省略表示が起こりえます。 【例】 flnk907s a1 a2 a3 -o a123.abs -m a123.map -dt 使用されているシンボル名およびセクション名は , 省略することなくリストに表示 します。 July 31, 2015, CM41-00315-6 105 第 6 章 リンカのオプション 6.2 リンカのオプション詳細 Su pp or t So ft Manu al メモリ使用情報リストの出力指定 (-mmi) 6.2.10 リンカが出力するマップリストファイルの中にメモリ使用情報を出力するように指 示します。 ■ メモリ使用情報リストの出力指定 (-mmi) 【記述形式】 -mmi 【パラメータ】 なし 【説明】 リンカが , デフォルトで出力するマップリストファイルの中に , オプションで指定 された ROM 領域と RAM 領域の使用状況を示すメモリ使用情報リストを出力しま す。 使用可能領域 , 使用した領域や領域内ギャップの位置とサイズ等の情報を表示しま す。 【例】 flnk907s l0mp00 im_lnk -mmi -ra RAM1=0x1000/0x1FFF, RAM2=0x2000/0x23FF -ro ROM1=0xBC000/0xBCFFF,ROM2=0xBD000/0xBFFFF -AL 2 <注意事項> -mmi が指定されていても , 以下の場合は出力を行いません。 • メモリ領域の設定がない (-ra, -ro の指定がない )。 • マップリストファイルの出力が有効になっていない。 106 CM41-00315-6, July 31, 2015 第 6 章 リンカのオプション 6.2 リンカのオプション詳細 Support Soft Ma nual リスト行の桁数指定 (-pw) 6.2.11 リンカ出力のマップリスト , オブジェクト内容リストは , デフォルトでは 1 行に 132 桁までを表示します。このオプションは , 1 行の表示桁数を変更するときに指定しま す。 ■ リスト行の桁数指定 (-pw) 【記述形式】 -pw < 桁数 > ( デフォルト : 132) 【パラメータ】 < 桁数 > 1 行に表示する桁数。70 ~ 1023 の範囲で指定します。 【説明】 リンクリストファイル , オブジェクト内容リストの 1 行の長さの指定を行います。 この指定がない場合は , 132 桁になります。 【例】 flnk907s a1 a2 a3 -o a123.abs -m a123.map -dt -pw 80 リスト行の表示桁数を 80 にします。 <注意事項> 以下のリストは -pw オプションで 1 行の桁数を指定できます。 • リンクマップリスト (.mp1) • セクション詳細マップリスト (.mpm) 以下のリストは -pw オプションで 1 行の桁数を指定できません。 • 絶対形式アセンブルリスト (.als) • 外部シンボル相互参照情報リスト (.mpx) • ローカルシンボル情報リスト (.mps) July 31, 2015, CM41-00315-6 107 第 6 章 リンカのオプション 6.2 リンカのオプション詳細 Su pp or t So ft Manu al リスト 1 ページの行数指定 (-pl) 6.2.12 リンカ出力のマップリスト , オブジェクト内容リストは , デフォルトでは 1 ページに 60 行までを表示します。 このオプションは , 1 ページの表示行数を変更するときに指定します。 ■ リスト 1 ページの行数指定 (-pl) 【記述形式】 -pl < 行数 > ( デフォルト : 60) 【パラメータ】 < 行数 > 1 ページに表示する行数。0 または 20 ~ 255 の範囲で指定します。 【説明】 リンクリストファイル , オブジェクト内容リストの 1 ページの行数の指定を行いま す。 この指定がない場合は 60 行となります。 0 の指定は , ページ制御を行わないようにするものです。 【例】 flnk907s 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) 108 CM41-00315-6, July 31, 2015 第 6 章 リンカのオプション 6.2 リンカのオプション詳細 Support 6.2.13 Soft Ma nual 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 です。 July 31, 2015, CM41-00315-6 109 第 6 章 リンカのオプション 6.2 リンカのオプション詳細 Su pp or t So ft Manu al 【説明】 チェックサム演算領域に対して , 指定した演算方法によるチェックサム演算を行い ます。結果はマップファイルに出力されます。このとき , チェックサム演算領域の オブジェクトデータがない箇所は , チェックサム演算の前にフィル値で埋められま す。 マ ッ プ フ ァ イ ル へ の 出 力 例 を 図 6.2-5 に 示 し ま す。図 中 の S_Addr., E_Addr., Algorithm および Value は , それぞれスタートアドレス , エンドアドレス , チェック サム演算方法およびチェックサム演算の結果に該当します。 図 6.2-5 マップファイルへの出力例 Check Sum(s) S_Addr. -E_Addr. 0x00FF0000-0x00FFFFFF Algorithm SUM32=1 Value 0x92DA8F5B 複数の領域をまとめてチェックサム演算する場合は, 1 つの-cs オプションに複数の 領域を指定してください。複数の領域を指定する場合は , チェックサム演算領域を カンマで区切って指定してください。 複数の領域を個別にチェックサム演算する場合は , -cs オプションを複数記述して ください。 チェックサム演算領域が重なった場合 , 重なった領域は後に指定した -cs オプショ ンのフィル値で埋められます。 -cs オプションの値を埋める領域と -fill オプションの値を埋める領域が重なった場 合 , 重なった領域は常に -fill オプションのフィル値で埋められます。 本オプションは , 絶対形式ロードモジュール作成時に有効となります。 相対形式ロードモジュール作成時は , 以下の警告メッセージが出力され , 本オプ ションの指定は無視されます。 [ 警告メッセージ ] *** W1321L: REL モード時には (-cs) オプションは無視されます。 110 CM41-00315-6, July 31, 2015 第 6 章 リンカのオプション 6.2 リンカのオプション詳細 Support Soft Ma nual 【例 1】 flnk907s -cs 0xFE8000/0xFF7FFF,SUM32,0x7F 32 ビット単純加算で 0xFE8000/0xFF7FFF の領域のチェックサム演算を行います。 チェックサム演算対象領域でオブジェクトデータがない箇所は 0x7F で埋めます ( 図 6.2-6 参照 )。 図 6.2-6 チェックサム演算の例 1 チェックサム演算領域の設定 セクション配置後の オブジェクトデータ オブジェクトデータ 0xFE8000 オブジェクトデータ チェックサム 演算対象領域 オブジェクトデータがない箇所は, 0x7Fで埋められた後,チェックサム 演算が行われます。 オブジェクトデータ 0xFF7FFF 0xFFFFFF マップリスト出力 Check Sum(s) S_Addr. -E_Addr. 0x00FE8000-0x00FF7FFF July 31, 2015, CM41-00315-6 Algorithm SUM32=0 Value 0x252B7378 111 第 6 章 リンカのオプション 6.2 リンカのオプション詳細 Su pp or t So ft Manu al 【例 2】 flnk907s -fill 0xFF0000/0xFF7FFF,0xFF/8 -cs 0xFE8000/ 0xFFFFFF,SUM16=2,0x7F 16 ビット単純加算 ( 補数 2) で 0xFE8000/0xFFFFFF の領域のチェックサム演算を行 います。 -cs と -fill を同時に指定した場合 , オブジェクトデータがなくフィル指定されていな い箇所が 0x7F で埋められた後にチェックサム演算が行われます ( 図 6.2-7 参照 )。 図 6.2-7 チェックサム演算の例 2 チェックサム演算 領域の設定 フィル対象 領域の設定 セクション配置後の オブジェクトデータ オブジェクトデータ 0xFE8000 オブジェクトデータ 0xFEFFFF 0xFF0000 チェックサム 演算対象領域 フィル対象領域 オブジェクトデータがなく, フィル指定がない箇所は, 0x7Fで埋められた後,チェッ クサム演算が行われます。 オブジェクトデータ 0xFF7FFF 0xFF8000 オブジェクトデータ 0xFFFFFF 0xFF0000~0xFF7FFFは,フィルオプションにより 0xFFで埋められます。 マップリスト出力 Check Sum(s) S_Addr. -E_Addr. Algorithm 0x00FE8000-0x00FFFFFF SUM16=2 112 Value 0xCA64 CM41-00315-6, July 31, 2015 第 6 章 リンカのオプション 6.2 リンカのオプション詳細 Support Soft Ma nual 【例 3】 flnk907s -cs 0xFE8000/0xFEFFFF,0xFF8000/0xFFFFFF,CRC16,0x7F 16 ビット巡回冗長検査 (CRC16) で 0xFE8000/0xFEFFFF と 0xFF8000/0xFFFFFF の領 域のチェックサム演算を行います ( 図 6.2-8 参照 )。 図 6.2-8 チェックサム演算の例 3 チェックサム演算領域の設定 セクション配置後の オブジェクトデータ オブジェクトデータ 0xFE8000 チェックサム 演算対象領域 オブジェクトデータ 0xFEFFFF 0xFF8000 それぞれの領域のオブジェクト データがない箇所が0x7Fで埋め られた後, チェックサム演算が 行われます。 この2つの領域は,まとめてチェッ クサム演算が行われます。 オブジェクトデータ チェックサム 演算対象領域 0xFFFFFF マップリスト出力 Check Sum(s) S_Addr. -E_Addr. Algorithm 0x00FE8000-0x00FEFFFF CRC16=0x8005 0x00FF8000-0x00FFFFFF July 31, 2015, CM41-00315-6 Value 0xEB83 113 第 6 章 リンカのオプション 6.2 リンカのオプション詳細 Su pp or t So ft Manu al 【例 4】 flnk907s -cs 0xFE8000/0xFEFFFF,CRC16,0x7F -cs 0xFF8000/ 0xFFFFFF,CRC32,0xFF 16 ビット巡回冗長検査 (CRC16) で 0xFE8000/0xFEFFFF の領域のチェックサム演算 を行います。 また , 32 ビット巡回冗長検査 (CRC32) で 0xFF8000/0xFFFFFF の領域のチェックサ ム演算を行います ( 図 6.2-9 参照 )。 図 6.2-9 チェックサム演算の例 4 チェックサム演算領域の設定 セクション配置後の オブジェクトデータ オブジェクトデータ 0xFE8000 チェックサム 演算対象領域 オブジェクトデータ 0xFEFFFF オブジェクトデータ 0xFF8000 チェックサム 演算対象領域 オブジェクトデータがない箇所が 0x7Fで埋められた後,チェックサム 演算が行われます。 オブジェクトデータがない箇所が 0xFFで埋められた後,チェックサム 演算が行われます。 0xFFFFFF マップリスト出力 Check Sum(s) S_Addr. -E_Addr. Algorithm Value 0x00FE8000-0x00FEFFFF CRC16=0x8005 0xA1A9 0x00FF8000-0x00FFFFFF CRC32=0x04C11DB7 0xF154670A 114 CM41-00315-6, July 31, 2015 第 6 章 リンカのオプション 6.2 リンカのオプション詳細 Support Soft Ma nual 【例 5】 flnk907s -cs 0xFE8000/0xFFFFFF,SUM16=1,0x7F -cs 0xFF8000/ 0xFFFFFF,SUM32=2,0xFF 16 ビット単純加算で 0xFE8000/0xFFFFFF の領域のチェックサム演算を行います。 0xFE8000/0xFF7FFF の領域でオブジェクトデータがない箇所は0x7F で埋められます。 また,32ビット単純加算で0xFF8000/0xFFFFFFの領域のチェックサム演算を行います。 0xFF8000/0xFFFFFF の領域でオブジェクトデータがない箇所は 0xFF で埋められま す ( 図 6.2-10 参照 )。 図 6.2-10 チェックサム演算の例 5 セクション配置後の オブジェクトデータ チェックサム演算領域の設定 オブジェクトデータ 0xFE8000 オブジェクトデータ オブジェクトデータがない箇所が 0x7Fで埋められた後,チェックサム 演算が行われます。 チェックサム 演算対象領域 オブジェクトデータ 0xFF8000 オブジェクトデータがない箇所が 0xFFで埋められた後,チェックサム 演算が行われます。 チェックサム 演算対象領域 0xFFFFFF チェックサム演算対象領域が重なった場合,後で指定した -csオプションのフィル値が有効となります。 マップリスト出力 Check Sum(s) S_Addr. -E_Addr. Algorithm 0x00FE8000-0x00FFFFFF SUM16=1 0x00FF8000-0x00FFFFFF SUM32=2 July 31, 2015, CM41-00315-6 Value 0xBC1B 0xFFF01C34 115 第 6 章 リンカのオプション 6.2 リンカのオプション詳細 Su pp or t 6.2.14 So ft Manu al 警告メッセージ出力レベルの指定 (-w) 警告メッセージの出力レベルを設定します。リンカの警告メッセージを完全に抑止 するときや , リンカの動作状態の確認をするときに使用します。 ■ 警告メッセージ出力レベルの指定 (-w) 【記述形式】 -w < 数値 > 【パラメータ】 < 数値 > 警告レベルとして 0, 1 または 2 を指定します。 【説明】 警告レベルのメッセージ出力を抑止したり , より詳細なメッセージ出力を行うよう に得たい情報をコントロールしたりします。 • 0: 警告レベルのメッセージを出力しません。 • 1: 通常のチェックです。( デフォルト ) • 2: 通常無視してよいレベルのものと , 単なるリンカの動作内容を通知するメッ セージまで出力します。 詳細は ,「付録 A リンケージキットのエラーメッセージ」を参照してください。 【例】 flnk907s a1 a2 a3 -o a123.abs -w 2 -Xm すべてのメッセージを出力します。 116 CM41-00315-6, July 31, 2015 第 6 章 リンカのオプション 6.2 リンカのオプション詳細 Support 6.2.15 Soft Ma nual ROM 領域の指定 (-ro) プログラムで使用する予定の ROM 領域を定義することにより , セクションの配置を 行うときのアドレス指定を簡略化します。 また , プログラムサイズのチェックも可能にします。 ■ ROM 領域の指定 (-ro) 【記述形式】 -ro < 領域名 >= < スタートアドレス >/ < エンドアドレス > [, < 領域名 >= < スタートアドレス >/ < エンドアドレス >] … 【パラメータ】 < 領域名 > 設定するアドレス領域を示す名前 < スタートアドレス > 設定するアドレス領域の先頭アドレス < エンドアドレス > 設定するアドレス領域の最終アドレス 【説明】 ROM 領域の定義を行います。領域は , 必要に応じていくつでも定義できます。 スタートアドレスとエンドアドレスを指定して , その領域に名前を付けます。 このオプションで定義した領域名は , セクション配置オプションで使用します。 -ro オプションの定義だけではリンカの動作には何の効果もおよぼさないので , 必ず セクション配置オプションでのアドレス指定パラメータに , ここで定義した領域名 を使うことになります。 スタートアドレスとエンドアドレスの指定には , バンク番号 (8 ビット ) を含めたア ドレスを指定します。 【例】 flnk907s *.obj -o ap.abs -ro RomA=0x1000/0x2FFF -sc code=RomA ••• セクション名 code のセクションを , 0x1000 ~ 0x2FFF のアドレスに配置することを 指定します。 0x1000 番地から順に配置し , 0x2FFF 番地を越えた場合には警告メッセージを出力 します。 July 31, 2015, CM41-00315-6 117 第 6 章 リンカのオプション 6.2 リンカのオプション詳細 Su pp or t 6.2.16 So ft Manu al RAM 領域の指定 (-ra) プログラムで使用する予定の RAM 領域を定義することにより , セクションの配置を 行うときのアドレス指定を簡略化します。 また , プログラムサイズのチェックも可能にします。 ■ RAM 領域の指定 (-ra) 【記述形式】 -ra < 領域名 >= < スタートアドレス >/ < エンドアドレス > [, < 領域名 >= < スタートアドレス >/ < エンドアドレス >] … 【パラメータ】 < 領域名 > 設定するアドレス領域を示す名前 < スタートアドレス > 設定するアドレス領域の先頭アドレス < エンドアドレス > 設定するアドレス領域の最終アドレス 【説明】 RAM 領域の定義を行います。領域は , 必要に応じていくつでも定義できます。 スタートアドレスとエンドアドレスを指定して , その領域に名前を付けます。 このオプションで定義した領域名は , セクション配置オプションで使用します。 -ra オプションの定義だけではリンカの動作には何の効果もおよぼさないので , 必ず セクション配置オプションでのアドレス指定パラメータに , ここで定義した領域名 を使うことになります。 スタートアドレスとエンドアドレスの指定には , バンク番号 (8 ビット ) を含めたア ドレスを指定します。 【例】 flnk907s *.obj -o ap.abs -ra RamD=0x0100/0x01FF -sc data=RamD ••• セクション名 data のセクションを , 0x0100 ~ 0x1FF のアドレスに配置することを指 定します。 0x0100 番地から順に配置し , 0x01FF 番地を越えた場合には警告メッセージを出力 します。 118 CM41-00315-6, July 31, 2015 第 6 章 リンカのオプション 6.2 リンカのオプション詳細 Support 6.2.17 Soft Ma nual セクション配置順 / アドレスの指定 (-sc) セクション配置の開始アドレスおよび配置順をリンカに指示します。 ■ セクション配置順 / アドレスの指定 (-sc) 【記述形式】 -sc < セクション名リスト > [/ < 内容種別 >] [/ < アライメント >] [={ < アドレス > | < 領域名 >}] [, ••• ] 【パラメータ】 < セクション名リスト > セクション名またはセクショングループ名リストセクション名の指定には , ワイル ドカードが使えます。複数指定するときは , + 記号で連結します。 < 内容種別 > code, data, stack, const, dir, dirconst, IO < アライメント > 配置可能な領域の境界を以下に示すキーワードで指定できます。 • BYTE: 配置可能なバイト境界に配置します。前に配置済みのセクションがあ れば , 隙間なく配置されます。 • WORD: 配置可能なアドレスのワード境界に配置されます。 • PAGE: 配置可能なアドレスのページ境界に配置されます。 < アドレス > 配置先頭アドレス < 領域名 > ROM/RAM 指定オプションで指定した領域名 【説明】 セクション配置の順序指定および配置アドレスの指定を行います。 セクション配置の順序は , パラメータに記述された順序に従います。 アドレスまたは領域名指定がない場合は , 0 番地から配置します。 セクション名の先頭に @ マークを付けると , 実行時にデータを ROM から RAM に 転送して動作する ROM → RAM 転送セクションの ROM 側のアドレス指定になりま す。 ワイルドカードを使用する場合は , 以下の文字で囲んでください。ただし , オプショ ンファイル中ではワイルドカードを "( ダブルクォート ) で囲まないでください。 【例 1】 flnk907s *.obj -o ap.abs -sc "*/code"=0xC1000,D=0x1000 ••• 図 6.2-11 にこの場合の配置例を示します。 0xC1000 番地から内容種別が code のセクションを配置し , 0x1000 番地からセクショ ン D を配置します。 July 31, 2015, CM41-00315-6 119 第 6 章 リンカのオプション 6.2 リンカのオプション詳細 Su pp or t So ft Manu al 図 6.2-11 セクションの配置例 1 0x1000 D 0xC1000 内容種別がcodeの セクション 【例 2】 flnk907s *.obj -o ap.abs -ro ROM=0xC1000/0xCFFFF -ra RAM= 0x1000/0x13FF -sc P+code+text1=ROM,D=RAM 図 6.2-12 にこの場合の配置例を示します。 ROM/RAM オプションを使用したセクション配置指定の場合 , 配置終了アドレスの チェックが行えます。 図 6.2-12 セクションの配置例 2 0x1000 D 0xC1000 P code text1 0xCFFFF < セクション名リスト > に使用できるワイルドカード文字は "*" のみで , 記述パター ンは以下の 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, _ など ~*~ 120 例 -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" であるすべてのセクション とマッチします。 CM41-00315-6, July 31, 2015 第 6 章 リンカのオプション 6.2 リンカのオプション詳細 Support Soft Ma nual <注意事項> ワイルドカード指定に一致するセクションには , ほかの -sc オプションで指定されたセク ションや絶対アドレス ( セクションの配置属性が ABS) を持つセクションは含まれません。 -sc*=RAM -sc CODE=RAM 上記のような指定でワイルドカード指定は "CODE" 以外の再配置可能なセクション ( セク ションの配置属性が REL) すべてと一致します。 July 31, 2015, CM41-00315-6 121 第 6 章 リンカのオプション 6.2 リンカのオプション詳細 Su pp or t 6.2.18 So ft Manu al セクショングループの指定 (-gr) 複数のセクションをユーザの目的に応じて 1 つに連結し , グループ名をつけます。 セクションの配置指定時にこのグループ名を使用することで , 複数セクションをまと めて扱えます。 ■ セクショングループの指定 (-gr) 【記述形式】 -gr < グループ名 >= < セクション名リスト > [/ < 内容種別 >] [, … ] 【パラメータ】 < グループ名 > グループ化する複数セクションの総称 < セクション名リスト > グループ化するセクション名を記述します。 ワイルドカードが使用できます。 複数指定するときは , + 記号で連結します。 < 内容種別 > code,data,stack,const,dir,dirconst,IO 【説明】 グループ化するセクションの指定と , グループ内でのセクションの配置の順序指定 を行います。 セクション配置の順序は , パラメータに記述された順序に従います。 グループ名は , セクション名やほかのグループ名と重複しないユニークなものであ る必要があります。 1 つのグループに属するセクションが , ほかのグループに属してはいけません。 ワイルドカードを使用する場合は , "( ダブルクォート ) で囲んでください。ただし , オプションファイル中ではワイルドカードを "( ダブルクォート ) で囲まないでくだ さい。 【例 1】 flnk907s *.obj -o ap.abs -ro ROM=0xC1000/0xCFFFF -ra RAM= 0x1000/0x13FF ••• -gr romG=P+CODE+text1 -sc romG=ROM,D=RAM ••• グループ化オプションを使用した場合は , セクション名を幾つも指定するかわりに , その全体をグループ名で代表することができます。 【例 2】 flnk907s *.obj -o ap.abs -gr cdgrp="*/code" -sc cdgrp=0xC1000 内容種別が code であるセクションをすべて結合して cdgrp というグループ名を付け ます。それを -sc オプションで 0xC1000 番地に配置します。 122 CM41-00315-6, July 31, 2015 第 6 章 リンカのオプション 6.2 リンカのオプション詳細 Support 6.2.19 Soft Ma nual レジスタバンク領域の指定 (-rg) プログラムで使用するレジスタバンク領域の指定を行います。 ■ レジスタバンク領域の指定 (-rg) 【記述形式】 -rg < レジスタバンク番号 > [{, < レジスタバンク番号 > | - < レジスタバンク番号 >}] … 【パラメータ】 < レジスタバンク番号 > 設定するレジスタバンクの番号を指定します。 【説明】 プログラムで使用するレジスタバンク領域の設定を行います。 プログラム中で汎用レジスタを使用する場合には , 本オプションで領域の確保が必 要です。 連続するレジスタバンク番号を指定する場合には , "3-8" のようにハイフンを用いて 一括指定が可能です ( この場合 , レジスタバンク 3, 4, 5, 6, 7, 8 を指定 )。 本指定が行われない場合 , リンカはレジスタバンク領域の確保を行いません。 表 6.2-1 に -rg オプションで確保される領域を示します。 表 6.2-1 レジスタバンク番号と領域 番号 確保される領域 番号 確保される領域 0 0x000180 ~ 0x00018F 16 0x000280 ~ 0x00028F 1 0x000190 ~ 0x00019F 17 0x000290 ~ 0x00029F 2 0x0001A0 ~ 0x0001AF 18 0x0002A0 ~ 0x0002AF 3 0x0001B0 ~ 0x0001BF 19 0x0002B0 ~ 0x0002BF 4 0x0001C0 ~ 0x0001CF 20 0x0002C0 ~ 0x0002CF 5 0x0001D0 ~ 0x0001DF 21 0x0002D0 ~ 0x0002DF 6 0x0001E0 ~ 0x0001EF 22 0x0002E0 ~ 0x0002EF 7 0x0001F0 ~ 0x0001FF 23 0x0002F0 ~ 0x0002FF 8 0x000200 ~ 0x00020F 24 0x000300 ~ 0x00030F 9 0x000210 ~ 0x00021F 25 0x000310 ~ 0x00031F 10 0x000220 ~ 0x00022F 26 0x000320 ~ 0x00032F 11 0x000230 ~ 0x00023F 27 0x000330 ~ 0x00033F 12 0x000240 ~ 0x00024F 28 0x000340 ~ 0x00034F 13 0x000250 ~ 0x00025F 29 0x000350 ~ 0x00035F 14 0x000260 ~ 0x00026F 30 0x000360 ~ 0x00036F 15 0x000270 ~ 0x00027F 31 0x000370 ~ 0x00037F July 31, 2015, CM41-00315-6 123 第 6 章 リンカのオプション 6.2 リンカのオプション詳細 Su pp or t So ft Manu al 【例】 flnk907s *.obj -o ap.abs -rg 0,1,5-7 ••• レジスタバンク領域 0, 1, 5, 6, 7 を確保します。 124 CM41-00315-6, July 31, 2015 第 6 章 リンカのオプション 6.2 リンカのオプション詳細 Support 6.2.20 Soft Ma nual 自動配置指定 (-AL) セクションの自動配置の指定を行います。 ■ 自動配置指定 (-AL) 【記述形式】 -AL { 0 | 1 | 2 } 【パラメータ】 <0 > 自動配置を行いません。( デフォルト ) <1 > 領域内にアブソリュートセクションが存在するとき , そのセクションと重複しない ように配置します。 <2 > セクションの属性から , ROM 領域に配置すべきか , RAM 領域に配置すべきかを判 断し , それぞれの領域内の空き領域に配置します。 (link907a 自動配置互換 ) 【説明】 セクションの自動配置の指定を行います。 相対形式のロードモジュールを作成するときは , -AL オプションの指定は 0 または -AL の指定なしにしてください。詳しくは「6.2.5 相対形式ロードモジュールの出 力指定 (-r)」を参照してください。 • パラメータ 1 の場合 : -ra, -ro オプションで指定した領域内へセクション配置を行うとき , アブソリュー トセクションが存在していれば , 配置アドレスが重ならないように , リロケータ ブルセクションの配置を行います。このとき , アライメント値およびサイズの大 きいセクションから順に配置し , 空き領域が最小となるような最適配置を行いま す。 • パラメータ 2 の場合 : -sc オプションで配置指定が行われなかったセクションに対して , セクションの属 性から , ROM 領域に配置すべきか , RAM 領域に配置すべきかを判断し , それぞれ の領域内の空き領域に配置します。 「5.6 セクションの自動配置」を合わせて参照してください。 【例】 flnk907s -AL 1 -ro ROM=0x1000/0x1FFF -sc code1+code2+code3=ROM ... ただし , 各セクションは以下のようなものであるとします。 • code1 : リロケータブル , サイズ =0x18 • code2 : リロケータブル , サイズ =0x10 • code3 : リロケータブル , サイズ =0x30 • AbsSec : アブソリュート , アドレス範囲 =0x1010 ~ 0x1017 July 31, 2015, CM41-00315-6 125 第 6 章 リンカのオプション 6.2 リンカのオプション詳細 Su pp or t So ft Manu al この場合の , リンクマップを示します。 図 6.2-13 リンクマップ例 S_Addr. -E_Addr Size Section Type AL Sec 00001000-0000100F 00000010 CODE P R-XI 02 REL code2 00001010-00001017 00000008 CODE NR-XI 00 ABS AbsSec 00001018-00001047 00000030 CODE P R-XI 02 REL code3 00001048-0000105F 00000018 CODE P R-XI 02 REL code1 <注意事項> -AL 1 が指定されていても , 以下の場合は自動配置を行いません。 • 領域の設定がない (-ra, -ro の指定がない )。 • -sc のアドレス指定で領域名を使用していない。 • 指定した領域内に配置されるアブソリュートセクションがない。 -AL 2 を指定した場合 , 以下の場合はエラーになりリンク処理を行いません。 • 領域の設定がない (-ra, -ro の指定がない )。 -w 2 を指定すると自動配置機能が働いた場合メッセージが出力されます。 126 CM41-00315-6, July 31, 2015 第 6 章 リンカのオプション 6.2 リンカのオプション詳細 Support 6.2.21 Soft Ma nual 検索ライブラリファイルの指定 (-l) デフォルトライブラリ以外に検索すべきライブラリを指示します。複数のライブラ リファイルがある場合 , 検索順に指定します。 ■ 検索ライブラリファイルの指定 (-l) 【記述形式】 -l < ライブラリファイル名 > [, … ] 【パラメータ】 < ライブラリファイル名 > 検索するライブラリファイル名を記述します。パス名付きの指定も可能。ワイルド カード使用可能。 【説明】 指定された順に , ライブラリファイルを検索します。 デフォルトライブラリより先に , ここで指定したライブラリが検索されます。 パス名なしでライブラリファイルを指定した場合に検索されるディレクトリは , -L オプションで指定したディレクトリ , 環境変数 LIB907 で指定のディレクトリ , 環境 変数 FETOOL より導かれるシステムライブラリパスの順になります。 カレントディレクトリは検索しません。カレントディレクトリを検索対象にしたい ときは , -L オプションまたは環境変数 LIB907 にピリオド (.) を指定してください。 -nl オプションより後で , -l オプションを指定することで -nl オプションを無効にす ることができます。 ワイルドカードを使用する場合は , "( ダブルクォート ) で囲んでください。ただし , オプションファイル中ではワイルドカードを "( ダブルクォート ) で囲まないでくだ さい。 【例】 flnk907s *.obj -o ap.abs -l .. \ lib \ com.lib,libu flnk907s *.obj -o ap.abs -l "p*.lib" ファイル名の先頭 1 文字が "p" であるすべてのライブラリファイルが検索対象にな ります。 July 31, 2015, CM41-00315-6 127 第 6 章 リンカのオプション 6.2 リンカのオプション詳細 Su pp or t 6.2.22 So ft Manu al ライブラリ検索パスの指定 (-L) ライブラリファイルを検索するパス名の指定を行います。 ■ ライブラリ検索パスの指定 (-L) 【記述形式】 -L < ライブラリパス名 > [, … ] 【パラメータ】 < ライブラリパス名 > ライブラリファイルを格納したパス名 【説明】 -l オプションで指定したライブラリファイルが , どのディレクトリにあるのかをリ ンカに指示します。 通常は , 本オプションを指定しなくてもよいように環境変数 LIB907 を設定してお きます。 LIB907 で指定したパスには , C コンパイラに付属の C ライブラリを格納しますので , 特別にユーザが作成したライブラリを別ディレクトリで管理したいような場合に , -L オプションを使用してください。 複数のパスが指定された場合は , 指定順に検索します。 ライブラリファイルは , まずここで指定されたパスから探し , なければ環境変数 LIB907 で指定されたパス , 環境変数 FETOOL より導かれるシステムライブラリパ スの順で検索します。 ライブラリファイルの指定で , パス名まで含めて指定された場合は , そのパスだけ を検索します。 -nl オプションがある場合は , ライブラリ検索を行わないので -L オプションは無効 になります。 【例】 flnk907s *.obj -o ap.abs -L C: \ usr \ usrlib -l com.lib,libu 128 CM41-00315-6, July 31, 2015 第 6 章 リンカのオプション 6.2 リンカのオプション詳細 Support 6.2.23 Soft Ma nual シンボル個別のライブラリの指定 (-el) 外部参照シンボルの値の解決に使用するライブラリファイルを特定できます。 ■ シンボル個別のライブラリの指定 (-el) 【記述形式】 -el < シンボル名リスト >= < ライブラリファイル名 > [, … ] 【パラメータ】 < シンボル名リスト > 外部参照シンボル名を記述します。 複数シンボルを指定する場合は , / で区切ります。 < ライブラリファイル名 > 検索対象とするライブラリファイル名 パス名付きの指定も可能です。なお , ワイルドカードは使用できません。 【説明】 本オプションで指定した外部参照シンボルの値の解決に使用するライブラリファ イルを特定します。 同じ外部定義シンボル名を含むモジュールが , 複数ライブラリに存在しているのが 分かっており , リンカが標準で行うライブラリ検索順では希望しないモジュールが 結合されてしまうときに使用します。 この機能を使用せざるを得ないのは , 複数のライブラリを使用するときにライブラ リの作成方法に問題があるためです。思わぬ障害混入の原因を含んでいますので , できれば使用しないことが望ましいものです。 ライブラリファイルの作り直しを検討してください。 なお , パス名指定なしでライブラリファイル名を指定した場合の検索ディレクトリ は , -l オプションと同じです。 【例】 flnk907s *.obj -o sp.abs -L C: \ usr \ usrlib -l libu, sublib -el sym1=sublib July 31, 2015, CM41-00315-6 129 第 6 章 リンカのオプション 6.2 リンカのオプション詳細 Su pp or t 6.2.24 So ft Manu al ライブラリ検索の抑止指定 (-nl) ライブラリファイルの検索を行わないことを指示します。 ■ ライブラリ検索の抑止指定 (-nl) 【記述形式】 -nl 【パラメータ】 なし 【説明】 ライブラリファイルの検索を行わないようにします。 【例 1】 flnk907s -L C: \ usr \ usrlib -l libu,sublib *.obj -o ap.abs -nl 先に指定した -L, -l, -el オプションを無効にし , デフォルトライブラリも含めて , ラ イブラリの検索を行わないようにします。 【例 2】 flnk907s -l libl *.obj -o ap.abs -nl -l lib2 一度指定した lib1.lib をキャンセルして , lib2.lib を検索するように指定し直すことが できます。 この例のように , 複数の -l オプションの間に -nl オプションを指定すると , -nl の指 定以前に指定していた -l オプションはすべてキャンセルされます。しかし , -L オプ ションの指定 , -el オプション指定 , -nd オプション指定およびデフォルトライブラ リの検索は -nl 指定以前の設定状態になります。 したがって , この例の場合は , lib2.lib とデフォルトライブラリを検索します。 130 CM41-00315-6, July 31, 2015 第 6 章 リンカのオプション 6.2 リンカのオプション詳細 Support 6.2.25 Soft Ma nual デフォルトライブラリ検索の抑止指定 (-nd) デフォルトライブラリとは , C コンパイラが使用することを仮定したライブラリファ イルであり , オブジェクトファイル中にそのライブラリファイル名が設定されていま す。 このデフォルトライブラリファイルの検索を行わないことを指示します。 ■ デフォルトライブラリ検索の抑止指定 (-nd) 【記述形式】 -nd 【パラメータ】 なし 【説明】 デフォルトライブラリファイルの指定を無効とし , 検索しないようにします。 【例】 flnk907s -L C: \ usr \ usrlib -l libu,sublib *.obj -o ap.abs -nd -l オプションで指定したライブラリのみを検索し , デフォルトライブラリの検索は 行わないようにします。 July 31, 2015, CM41-00315-6 131 第 6 章 リンカのオプション 6.2 リンカのオプション詳細 Su pp or t 6.2.26 So ft Manu al 未使用関数削除指定 (-lnkopt) -lnkopt オプションは , 未使用関数を削除するオプションです。 ■ 未使用関数削除指定 (-lnkopt) 【記述形式】 -lnkopt 【パラメータ】 なし 【説明】 未使用関数を削除します。 未使用関数を削除するには , C ソースを -K LNKOPT オプションを指定してコンパ イルする必要があります。 コンパイル時に -K LNKOPT オプションを指定していない場合 , -lnkopt オプション は無視します。 ライブラリ形式のファイル (.lib) 内に格納されているオブジェクト形式ファイル (.obj) は削除対象となります。 相対形式のロードモジュールファイル (.rel) からは未使用関数があっても削除の対 象外です。 C ソースで __interrupt 宣言を付与した関数は削除の対象外です。 アセンブラソースで記述された CODE セクションは , 削除の対象外です。 【例 1】 fcc907s sample1.c -K LNKOPT -c fcc907s sample2.c -K LNKOPT -c flnk907s -lnkopt sample1.obj sample2.obj 未使用関数を削除します。 【例 2】 fcc907s sample1.c -c fcc907s sample2.c -c flnk907s -lnkopt sample1.obj sample2.obj 未使用関数を削除しません。 132 CM41-00315-6, July 31, 2015 第 6 章 リンカのオプション 6.2 リンカのオプション詳細 Support Soft Ma nual <注意事項> 以下の場合 , 未使用関数削除機能は , 実際には使用している関数を削除することがありま す。 • アセンブラソースからのみ参照される関数 • OS のタスク • 関数ポインタから間接参照される関数 • アドレス値で参照される関数 実際には使用している関数が削除された場合 , 以下のリンクエラーが発生します。 E4305L: 外部シンボルが定義されていません プログラム中に存在する関数に対してE4305Lが発生した場合,-XdelオプションでE4305L が発生した関数を削除対象から除外してください。 July 31, 2015, CM41-00315-6 133 第 6 章 リンカのオプション 6.2 リンカのオプション詳細 Su pp or t 6.2.27 So ft Manu al C ソースのプログラム実行開始シンボル指定 (entryc) -entryc オプションは , C ソースのプログラム実行開始シンボルを指定するオプショ ンです。 -entryc オプションが省略された場合のプログラム実行開始シンボルは , "_main" で す。 ■ C ソースのプログラム実行開始シンボル指定 (-entryc) 【記述形式】 -entryc < シンボル名 > 【パラメータ】 < シンボル名 > C ソースのプログラム実行開始シンボルを指定します。 【説明】 -entryc オプションは C ソースのプログラム実行開始シンボルを指定するオプション です。指定するシンボル名は C ソースの関数が func() である場合 , 先頭の文字にア ンダバーを追加し , "_func" とします。指定されたシンボル名が static かつ複数ある 場合 , リンカのコマンド指定順で先に見つかったほうが対象として選択されます。 リンカは , -entryc オプションで指定されたシンボル名からのコールツリーを解析し , 未使用関数を抽出します。 -entryc オプションが省略された場合 , プログラム実行開始シンボルには "_main" が 設定されます。 -entrycオプションを複数回指定した場合 , 最後に指定した -entryc オプションが有効 になります。 -lnkopt オプションが無効の場合 , -entryc オプションは無視します。 【例】 flnk907s -lnkopt -entryc _start start() を C ソースのプログラム実行開始として , 未使用関数を抽出します。 134 CM41-00315-6, July 31, 2015 第 6 章 リンカのオプション 6.2 リンカのオプション詳細 Support 6.2.28 Soft Ma nual 削除対象外関数指定 (-Xdel) -Xdel オプションは , 未使用関数削除機能で削除しない関数を指定するオプションで す。 ■ 削除対象外関数指定 (-Xdel) 【記述形式】 -Xdel < シンボル名 > 【パラメータ】 < シンボル名 > 未使用関数削除機能で削除しない関数のシンボル名を指定します。 【説明】 -Xdel オプションは , 未使用関数削除機能で削除しない関数を指定するオプションで す。指定するシンボル名は C ソースの関数が func() である場合 , 先頭の文字にアン ダバーを追加し , "_func" とします。 -Xdel オプションで指定された関数は , 未使用関数削除機能により未使用の関数と判 定されても削除されません。また , 指定されたシンボル名が static かつ複数ある場 合 , リンカのコマンド指定順で先に見つかったほうが対象として選択されます。 -Xdel オプションは , 複数指定できます。 -lnkopt オプションが無効の場合 , -Xdel オプションは無視します。 -Xdel オプションは , 以下の場合に使用します。 • 実際には使用している関数が未使用関数削除機能で削除された場合 • OS のタスクのように C ソースのプログラム実行開始シンボルが複数ある場合 【例】 flnk907s -lnkopt -Xdel _func func() が未使用関数削除機能で未使用関数と判定されても , 削除しません。 July 31, 2015, CM41-00315-6 135 第 6 章 リンカのオプション 6.2 リンカのオプション詳細 Su pp or t 6.2.29 So ft Manu al 未使用関数削除情報ファイル格納パス指定 (-ufiin) -ufiin オプションは , 未使用関数削除情報ファイル (ufi ファイル ) の格納パスを指定 するオプションです。 -ufiin オプションが省略された場合 , オブジェクトファイルが格納されているパスに ある ufi ファイルを使用します。 ■ 未使用関数削除情報ファイル格納パス指定 (-ufiin) 【記述形式】 -ufiin < パス > 【パラメータ】 < パス > 未使用関数削除情報ファイル (ufi ファイル ) が格納されているパスを指定します。 絶対パスと相対パスが指定できます。 【説明】 -ufiin オプションは , ufi ファイルの格納パスを指定するオプションです。 -ufiin オプションが省略された場合 , オブジェクトファイルが格納されているパスに ある ufi ファイルを使用します。 -ufiin オプションを複数回指定した場合 , 最後に指定した -ufiin オプションが有効に なります。 -lnkopt オプションが無効の場合 , -ufiin オプションは無視します。 格納パスにオブジェクト形式ファイルと対になる名前の ufi ファイルが見つからな い場合 , 関数はそのオブジェクト形式ファイルから未使用関数削除機能で削除され ません。 【例】 flnk907s -lnkopt -ufiin C:\sample\ufi "C:\sample\ufi" に格納された ufi ファイルを使用します。 136 CM41-00315-6, July 31, 2015 第 6 章 リンカのオプション 6.2 リンカのオプション詳細 Support 6.2.30 Soft Ma nual エントリアドレスの指定 (-e) ユーザプログラムの実行開始アドレスを , 外部定義シンボルで指定します。 ■ エントリアドレスの指定 (-e) 【記述形式】 -e < シンボル名 > 【パラメータ】 < シンボル名 > エントリポイントのシンボル名 外部定義シンボル以外は指定できません。 【説明】 ユーザプログラムの実行開始アドレスを , 外部定義シンボルで指定したものに変更 します。 実行開始アドレスは , アセンブラの .end 疑似命令で指定できます。 エントリポイントは , シュミレータデバッガで , 実行開始時の PC( プログラムカウ ンタ ) の初期値として設定されます。 【例】 flnk907s *.obj -o ap.abs -e ProgStart July 31, 2015, CM41-00315-6 137 第 6 章 リンカのオプション 6.2 リンカのオプション詳細 Su pp or t 6.2.31 So ft Manu al 外部シンボル値の仮設定 (-df) ユーザプログラム未定義シンボルの値を強制的に定義します。 ■ 外部シンボル値の仮設定 (-df) 【記述形式】 -df < シンボル名 >={ < 数値 > | < 外部定義シンボル名 >} 【パラメータ】 < シンボル名 > 外部参照シンボルのシンボル名 < 数値 > 定義する値 < 外部定義シンボル名 > 値の定義されている外部シンボル名 【説明】 未定義の外部参照シンボルの値を強制的に定義します。 リンカはリロケーション解決にこの値を用いてオブジェクトデータを作成します が , 出力する絶対形式ロードモジュールファイル中のシンボル情報には影響を与え ません。 デバッガなどでロードした場合 , ここで指定したシンボル名は未定義のままです。 【例】 flnk907s -L \ usr \ usrlib -l libu,sublib *.obj -o ap.abs -df Sym1=100 Sym1 が定義されていないとき , 値を 100 とします。 138 CM41-00315-6, July 31, 2015 第 6 章 リンカのオプション 6.2 リンカのオプション詳細 Support Soft Ma nual ターゲット CPU 指定 (-cpu) 6.2.32 ターゲット CPU の指定を行います。 リンクを行うプログラムのターゲット CPU を MB 番号で指定します。 ■ ターゲット CPU 指定 (-cpu) 【記述形式】 -cpu <MB 番号 > 【パラメータ】 <MB 番号 > ターゲット CPU の MB 番号 【説明】 リンクを行うプログラムのターゲット CPU を MB 番号で指定します。 【例】 flnk907s *.obj -o ap.abs -cpu MB90611A flnk907s *.obj -o ap.abs -cpu MB90704 <注意事項> リンク処理を実行する際には , 本オプションでターゲット CPU の指定が必要です。 このオプションの省略はできません。 July 31, 2015, CM41-00315-6 139 第 6 章 リンカのオプション 6.2 リンカのオプション詳細 Su pp or t So ft Manu al CPU 情報ファイル指定 (-cif) 6.2.33 リンカで使用する CPU 情報ファイルを指定します。 ■ CPU 情報ファイル指定 (-cif) 【記述形式】 -cif <CPU 情報ファイル名 > 【パラメータ】 <CPU 情報ファイル名 > リンカで使用する CPU 情報ファイル 【説明】 リンカで使用する CPU 情報ファイルを指定します。 【例】 flnk907s *.obj -o ap.abs -cpu MB90704 -cif C:\Softune\lib\907\cpu_info\MB90704.csv <注意事項> SOFTUNE Tools は , CPU 情報ファイルを参照して , CPU に関する情報を取得します。 関連するツール間で異なる CPU 情報ファイルを参照した場合 , 作成するプログラムに問 題が発生する可能性があります。 SOFTUNE Tools に標準で添付されている CPU 情報ファイルは , 以下の場所にあります。 インストール先ディレクトリ \lib\907\907.csv コンパイラ・アセンブラパックを異なるディレクトリにインストールし , SOFTUNE Workbench を使用せずにコンパイラ , アセンブラおよびリンケージキットを使用する場 合, 各ツールに対して同一のCPU情報ファイルを参照するように-cifで指定してください。 140 CM41-00315-6, July 31, 2015 第 6 章 リンカのオプション 6.2 リンカのオプション詳細 Support 6.2.34 Soft Ma nual デバッグ情報存在チェック抑止指定 (-NCI0302LIB) ライブラリファイルのモジュールに対するデバッグ情報存在チェックを抑止します。 ■ デバッグ情報存在チェック抑止指定 (-NCI0302LIB) 【記述形式】 -NCI0302LIB 【パラメータ】 なし 【説明】 デバッグ情報出力指定 (-g) と警告レベル 2(-w 2) を指定してリンカを動作させると , リンカはデバッグ情報が存在しないモジュールに対して , 以下のインフォメーショ ンを出力します。 I0302L: デバッグ情報が存在しません ( ファイル名 ) 本オプションを指定すると , リンカはライブラリファイルから抽出したモジュール に対して , 上記インフォメーションメッセージの出力を行いません。 【例】 flnk907s -cpu MB90704 -g -w 2 test.obj -l lib907c.lib *** I0302L: デバッグ情報が存在しません (C: \ Softune \ lib \ 907 \ lib907c.lib) *** I0302L: デバッグ情報が存在しません (C: \ Softune \ lib \ 907 \ lib907c.lib) ・ ・ ・ → インフォメーション I0302L が出力されます。 flnk907s -cpu MB90704 -g -w 2 test.obj -l lib907c.lib -NCI0302LIB → インフォメーション I0302L は出力されません。 July 31, 2015, CM41-00315-6 141 第 6 章 リンカのオプション 6.2 リンカのオプション詳細 Su pp or t 6.2.35 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 オプションで使用可能です。 【例】 flnk907s *.obj -o ap.abs -cpu MB90704 -set_rora 142 CM41-00315-6, July 31, 2015 第 6 章 リンカのオプション 6.2 リンカのオプション詳細 Support 6.2.36 Soft Ma nual 内蔵 ROM/RAM 領域自動設定の抑止指定 (-Xset_rora) CPU 情報ファイルからターゲット CPU の内蔵 ROM/RAM 領域情報の設定を抑止し ます。 ■ 内蔵 ROM/RAM 領域自動設定の抑止指定 (-Xset_rora) 【記述形式】 -Xset_rora 【パラメータ】 なし 【説明】 CPU 情報ファイルからターゲット CPU の内蔵 ROM/RAM 領域情報の設定を抑止し ます。 【例】 flnk907s *.obj -o ap.abs -cpu MB90704 -Xset_rora July 31, 2015, CM41-00315-6 143 第 6 章 リンカのオプション 6.2 リンカのオプション詳細 Su pp or t 6.2.37 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 内に プログラムが収まっているかのチェックも行えます。 【例】 flnk907s -cpu MB90754 -check_rora -ro ROM = 0x00080800/0x000fffff -ra RAM1=0x00001000/0x00008fff , RAM2=0x00080000/0x000807ff … W1368L: -ro オプションで内蔵 ROM 領域の範囲外が指定されています (ROM) W1369L: -ra オプションで内蔵 RAM 領域の範囲外が指定されています (RAM1) →下線部の指定が範囲外のため警告が出力されます。 flnk907s -cpu MB90754 -check_rora -ro ROM = 0x000A0000/0x000fffff -ra RAM1=0x00001000/0x00005fff, RAM2=0x00080000/0x000807ff … → 正常範囲指定 警告はありません。 144 CM41-00315-6, July 31, 2015 第 6 章 リンカのオプション 6.2 リンカのオプション詳細 Support Soft Ma nual <注意事項> • ワーニング出力抑止 (-w 0) が指定されている場合でも本オプションが指定されている 場合は警告が出力されます。 • 本オプションは , 絶対形式ロードモジュール作成時のみ有効です。リロケータブルロー ドモジュール作成時は , 本オプションは無視されます。 • 本オプションは CPU 情報ファイル内の内蔵 ROM 情報および内蔵 RAM 情報を用いて います。したがって , CPU 情報ファイル内に該当情報が存在しない場合には警告は出 力されません。-cpu オプションで正確な MB 番号指定を行ってください。 July 31, 2015, CM41-00315-6 145 第 6 章 リンカのオプション 6.2 リンカのオプション詳細 Su pp or t 6.2.38 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 オプションを取り消す際に用います。 【例】 flnk907s -cpu MB90754 -check_rora -ro ROM = 0x00080800/0x000fffff -ra RAM1 = 0x00001000/0x00008fff, RAM2=0x00080000/0x000807ff … W1368L: -ro オプションで内蔵 ROM 領域の範囲外が指定されています (ROM) W1369L: -ra オプションで内蔵 RAM 領域の範囲外が指定されています (RAM1) →下線部の指定が範囲外のため警告が出力されます。 flnk907s -cpu MB90754 -check_rora -ro ROM = 0x00080800/0x000fffff -ra RAM1 = 0x00001000/0x00008fff, RAM2=0x00080000/0x000807ff -Xcheck_rora … →下線部の指定が範囲外ですが , -Xcheck_rora でチェック抑止を行っているため警 告は出力されません。 146 CM41-00315-6, July 31, 2015 第 6 章 リンカのオプション 6.2 リンカのオプション詳細 Support 6.2.39 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 領域外への配置です ( セクション名 ) 以下にセクションタイプとチェック領域を示します。 チェック対象領域 セクションタイプ -check_rora オプション指定あり ROM 領域に配置されるべきセクション CODE -ro 指定領域外かつ内蔵 ROM 領域外 CONST に配置されているセクションに対し て警告出力。 DIRCONST -check_rora オプション指定なし -ro 指定領域外に配置されているセク ションに対して警告出力。 ROM → RAM 転送元セクション RAM 領域に配置されるべきセクション STACK -ra 指定領域外かつ内蔵 RAM 領域外 DIR に配置されているセクションに対し ROM → RAM 転送先セクション て警告出力。 RAM 領域または IO 領域に配置されるべきセクション DATA -ra 指定領域外かつ内蔵 RAM 領域 , 内蔵 IO 領域外に配置されているセク ションに対して警告出力。 IO 領域に配置されるべきセクション IO 内蔵 IO 領域外に配置されているセク ションに対して警告出力。 July 31, 2015, CM41-00315-6 -ra 指定領域外に配置されているセク ションに対して警告出力。 -ra 指定領域外に配置されているセク ションに対して警告出力。 内蔵 IO 領域外に配置されているセク ションに対して警告出力。 147 第 6 章 リンカのオプション 6.2 リンカのオプション詳細 Su pp or t So ft Manu al シングルチップモードでご使用の場合は , -check_rora と併せて指定することで , 内蔵メ モリ領域外にプログラムが配置されていないことをチェックできます。 また , その他の場合でも ROM 領域指定 , RAM 領域指定 (-ro, -ra オプション ) と併せて 指定することでメモリ領域外にプログラムが配置されていないことをチェックできま す。 【例】 下図のようなメモリマップでDATA タイプのDATA_A, DATA_B, DATA_C とCODE タイプの CODE_D, CODE_E, CODE_F と STACK タイプの STACK_G が配置されて いる場合のチェックは次のようになります。 flnk907s -cpu MB90754 -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) 0x000000 I/O DATA A 0x000800 アクセス禁止 0x001000 RAM1 内蔵RAM 20K DATA B STACK G 0x006000 アクセス禁止 DATA C 0x080000 RAM2 内蔵RAM 2K DATA D 0x080800 アクセス禁止 0x0A0000 ROM 内蔵ROM 384K CODE E CODE F 0x100000 アクセス禁止 0xffffff DATA_A は内蔵 IO 領域内に配置されているため警告は出力されません。 DATA_B は -ra で指定した領域内に配置されているため警告は出力されません。 DATA_C は -ra で指定した領域外から配置されているため警告が出力されます。 CODE_D は -ro で指定した領域外に配置されているため警告が出力されます。 CODE_E は -ro で指定した領域内に配置されているため警告は出力されません。 CODE_F は -ro で指定した領域外に配置されているため警告が出力されます。 STACK_G は -ra で指定した領域外に配置されているため警告が出力されます。 148 CM41-00315-6, July 31, 2015 第 6 章 リンカのオプション 6.2 リンカのオプション詳細 Support Soft Ma nual <注意事項> • ワーニング出力抑止 (-w 0) が指定されている場合でも本オプションが指定されている 場合は警告が出力されます。 • 本オプションは , 絶対形式ロードモジュール作成時のみ有効です。リロケータブルロー ドモジュール作成時は , 本オプションは無視されます。 • 本オプションの使用にあたっては , -ro, -ra オプションを用いた領域指定を行う必要が あります。 • リンカ処理対象外である ABS 属性のセクションに対してもチェックを行います。 July 31, 2015, CM41-00315-6 149 第 6 章 リンカのオプション 6.2 リンカのオプション詳細 Su pp or t 6.2.40 So ft Manu al セクション配置領域チェック抑止指定 (-Xcheck_locate) セクション配置領域チェックを抑止します。 -check_locate オプションを取り消す際に使用します。 ■ セクション配置領域チェック抑止指定 (-Xcheck_locate) 【記述形式】 -Xcheck_locate 【パラメータ】 なし 【説明】 セクション配置領域チェックを抑止します。 -check_locate オプションを取り消す際に用います。 150 CM41-00315-6, July 31, 2015 第 6 章 リンカのオプション 6.2 リンカのオプション詳細 Support 6.2.41 Soft Ma nual ユーザ指定外セクションのチェック指定 (-check_section) ユーザにより配置指定が行われていないセクションが存在しないかチェックを行い ます。 ■ ユーザ指定外セクションのチェック指定 (-check_section) 【記述形式】 -check_section 【パラメータ】 なし 【説明】 ユーザにより配置指定が行われていないセクションが存在しないかチェックを行 います。 リンカは本オプションが指定されている場合 , セクション配置指定 (-sc) オプション で指定されていないセクションに対して以下の警告を出力します。 W1375L: -sc オプションで配置指定の行われていないセクションです ( セクション名 )。 本オプションが指定されていない場合 , リンカはチェックを行いません。 【例】 CODE, INIT, CONST, DATA, STACK のセクションを持つオブジェクトをリンクし た場合の動作を示します。 flnk907s -cpu MB90754 -check_section -ro ROM=0x000a0000/0x000fffff -ra RAM1=0x00001000/0x00008fff,RAM2=0x00080000/0x000807ff -sc CODE+CONST=ROM -sc DATA=RAM1 -sc STACK=RAM2 object1 object2 … W1375L: -sc オプションで配置指定の行われていないセクションです (INIT) → セクション INIT に対して配置指定が行われていません。-check_section オプショ ンが指定されているため , セクション INIT に対して警告が出力されます。 flnk907s -cpu MB90754 -check_section -ro ROM=0x000a0000/0x000fffff -ra RAM1=0x00001000/0x00008fff,RAM2=0x00080000/0x000807ff -gr ROMGROUP=CODE+CONST -sc DATA=RAM1 -sc STACK=RAM2 object1 object2 … W1375L: -sc オプションで配置指定の行われていないセクションです (CODE) W1375L: -sc オプションで配置指定の行われていないセクションです (INIT) W1375L: -sc オプションで配置指定の行われていないセクションです (CONST) → セクション CODE, CONST は -gr でグループ化されていますが , -sc オプション配 置指定を行っていないためCODE, CONSTセクションに対して警告が出力されます。 flnk907s -cpu MB90754 -check_section -ro ROM=0x000a0000/0x000fffff -ra RAM1=0x00001000/0x00008fff,RAM2=0x00080000/0x000807ff -sc *=ROM -sc DATA=RAM1 -sc STACK=RAM2 object1 object2 … → ワイルドカードでセクション名を指定したことにより , セクション DATA, July 31, 2015, CM41-00315-6 151 第 6 章 リンカのオプション 6.2 リンカのオプション詳細 Su pp or t So ft Manu al STACK 以外のすべてのセクションに対して配置指定が行われています。すべての セクションに対して配置指定が行われているため警告は出力されません。 <注意事項> • ソースプログラム中で配置アドレス指定が行われているセクションはチェック対象外 です。 • -grオプションでセクショングループ指定を行っていても , -scオプションで配置指定を 行っていない場合は警告が出力されます。 • -sc オプションのセクション名にワイルドカードを用いて指定した場合 , ワイルドカー ドに一致したセクションはすべて配置指定が行われています。したがって , ワイルド カードに一致したセクションに対して警告は出力されません。セクション名をワイル ドカードで指定する際には注意を行ってください。 152 CM41-00315-6, July 31, 2015 第 6 章 リンカのオプション 6.2 リンカのオプション詳細 Support 6.2.42 Soft Ma nual ユーザ指定外セクションのチェック抑止指定 (-Xcheck_section) ユーザにより配置指定が行われていないセクションの存在チェックを抑止します。 -check_section オプションを取り消す際に用います。 ■ ユーザ指定外セクションのチェック抑止指定 (-Xcheck_section) 【記述形式】 -Xcheck_section 【パラメータ】 なし 【説明】 配置指定が行われていないセクションの存在チェックを抑止します。 -check_section オプションを取り消す際に用います。 本オプションがデフォルトです。 【例】 CODE, INIT, CONST, DATA, STACK のセクションを持つオブジェクトをリンクし た場合の動作を示します。 flnk907s -cpu MB90754 -check_section -Xcheck_section -ro ROM=0x000a0000/0x000fffff -ra RAM1=0x00001000/0x00008fff,RAM2=0x00080000/0x000807ff -sc CODE+CONST=ROM -sc DATA=RAM1 -sc STACK=RAM2 object1 object2 … → セクション INIT に対して配置指定が行われていません。-Xcheck_section でチェッ ク指定の取り消しを行っているため警告は出力されません。 flnk907s -cpu MB90754 -ro ROM=0x000a0000/0x000fffff -ra RAM1=0x00001000/0x00008fff,RAM2=0x00080000/0x000807ff -sc CODE+CONST=ROM -sc DATA=RAM1 -sc STACK=RAM2 object1 object2 … → セクションINITに対して配置指定が行われていませんが, -check_sectionでチェッ ク指定を行っていないため警告は出力されません。リンカのデフォルト動作です。 July 31, 2015, CM41-00315-6 153 第 6 章 リンカのオプション 6.2 リンカのオプション詳細 Su pp or t 6.2.43 So ft Manu al スタンバイモード遷移命令チェック指定 (-check_SCF) リンカは , スタンバイモード遷移命令のチェックを必ず行います。 ■ スタンバイモード遷移命令チェック指定 (-check_SCF) 【記述形式】 -check_SCF 【パラメータ】 なし 【説明】 本オプションが指定された場合 , リンカは必ずスタンバイモード遷移命令のチェッ クを行います。 リンカのデフォルト動作では , 起動時に指定された MB 番号が「スタンバイモード 遷移のための低消費電力モード制御レジスタ (LPMCR) へアクセスする際の注意事 項」に該当する品種であった場合にのみスタンバイモード遷移命令のチェックを行 いますが , 本オプションが指定されている場合には 「スタンバイモード遷移のため , の低消費電力モード制御レジスタ (LPMCR) へアクセスする際の注意事項」に該当 する・しないに かかわらず,必ずスタンバイモード遷移命令のチェックを行います。 【例】 -check_SCF オプション指定が行われている場合 flnk907s -cpu MB90F462 main.obj standby.obj -check_SCF *** W1378L: 適切でないスタンバイモード遷移命令列をフェッチ検索で検出 しました (mov io, #imm8, 00F90001 standby.asm:61) *** W1379L: 適切でないスタンバイモード遷移命令列をバイト検索で検出し ました (mov io, #imm8, 00F90003 standby.asm:101) *** W1378L: 適切でないスタンバイモード遷移命令列をフェッチ検索で検出 しました (mov io, #imm8, 00F90007 standby.asm:122) *** W1378L: 適切でないスタンバイモード遷移命令列をフェッチ検索で検出 しました (mov io, #imm8, 00F9000D standby.asm:183) *** W1379L: 適切でないスタンバイモード遷移命令列をバイト検索で検出し ました (mov io, #imm8, 00F9002F standby.asm:211) *** I0312L: S.C.F チェックで 5 個のワーニングが出力されました MB90F462 は「スタンバイモード遷移のための低消費電力モード制御レジスタ (LPMCR) へアクセスする際の注意事項」に該当しませんが , "-check_SCF" オプショ ン指定により , スタンバイモード遷移命令のチェックが行われます。 154 CM41-00315-6, July 31, 2015 第 6 章 リンカのオプション 6.2 リンカのオプション詳細 Support Soft Ma nual -check_SCF オプション指定が行われていない場合 flnk907s -cpu MB90F462 main.obj standby.obj -check_SCF MB90F462 は「スタンバイモード遷移のための低消費電力モード制御レジスタ (LPMCR) へアクセスする際の注意事項」に該当しないためスタンバイモード遷移命 令のチェックは行われません。 July 31, 2015, CM41-00315-6 155 第 6 章 リンカのオプション 6.2 リンカのオプション詳細 Su pp or t 6.2.44 So ft Manu al スタンバイモード遷移命令チェック抑止指定 (-Xcheck_SCF) リンカは , スタンバイモード遷移命令のチェックを行いません。 ■ スタンバイモード遷移命令チェック抑止指定 (-Xcheck_SCF) 【記述形式】 -Xcheck_SCF 【パラメータ】 なし 【説明】 本オプションが指定された場合 , リンカはスタンバイモード遷移命令のチェックは 行いません。 リンカのデフォルト動作では , 起動時に指定された MB 番号が「スタンバイモード 遷移のための低消費電力モード制御レジスタ (LPMCR) へアクセスする際の注意事 項」に該当する品種であった場合にはスタンバイモード遷移命令のチェックを行い ますが , 本オプションが指定されている場合には 「スタンバイモード遷移のための , 低消費電力モード制御レジスタ (LPMCR) へアクセスする際の注意事項」に該当す る・しないに かかわらず , スタンバイモード遷移命令のチェックは行いません。 【例】 -Xcheck_SCF オプション指定が行われている場合 flnk907s -cpu MB90F387 main.obj standby.obj -Xcheck_SCF MB90F387 は「スタンバイモード遷移のための低消費電力モード制御レジスタ (LPMCR) へアクセスする際の注意事項」に該当しますが , "-Xcheck_SCF" オプショ ン指定により , スタンバイモード遷移命令のチェックが行われません。 -Xcheck_SCF オプション指定が行われていない場合 flnk907s -cpu MB90F387 main.obj standby.obj flnk907s -cpu MB90F462 main.obj standby.obj -check_SCF *** W1378L: 適切でないスタンバイモード遷移命令列をフェッチ検索で検出 しました (mov io, #imm8, 00F90001 standby.asm:61) *** W1379L: 適切でないスタンバイモード遷移命令列をバイト検索で検出し ました (mov io, #imm8, 00F90003 standby.asm:101) *** W1378L: 適切でないスタンバイモード遷移命令列をフェッチ検索で検出 しました (mov io, #imm8, 00F90007 standby.asm:122) *** W1378L: 適切でないスタンバイモード遷移命令列をフェッチ検索で検出 しました (mov io, #imm8, 00F9000D standby.asm:183) *** W1379L: 適切でないスタンバイモード遷移命令列をバイト検索で検出し ました (mov 156 io, #imm8, 00F9002F standby.asm:211) CM41-00315-6, July 31, 2015 第 6 章 リンカのオプション 6.2 リンカのオプション詳細 Support Soft Ma nual *** I0312L: S.C.F チェックで 5 個のワーニングが出力されました MB90F387 は「スタンバイモード遷移のための低消費電力モード制御レジスタ (LPMCR) へアクセスする際の注意事項」に該当するのでスタンバイモード遷移命令 のチェックが行われます。 July 31, 2015, CM41-00315-6 157 第 6 章 リンカのオプション 6.2 リンカのオプション詳細 Su pp or t 6.2.45 So ft Manu al フェッチ単位チェックの指定 (-Wf) リンカは , スタンバイモード遷移命令のチェック時にフェッチ単位のチェックのみを 行います。 ■ フェッチ単位チェックの指定 (-Wf) 【記述形式】 -Wf 【パラメータ】 なし 【説明】 本オプションが指定された場合 , スタンバイモード遷移命令のチェック時にフェッ チ単位でのチェックのみを行います。 リンカのデフォルト動作では , スタンバイモード遷移命令のチェック時にフェッチ 単位によるチェックとバイト単位によるチェックの両方が行われます。しかし , 本 オプションが指定されている場合には , フェッチ単位のチェックしか行いません。 スタンバイモード遷移命令のチェック方法等詳細につきましては 「F2MC-16LX ファ ミリ スタンバイモード遷移命令チェックツールマニュアル」を参照してください。 【例】 -Wf オプション指定が行われている場合 flnk907s -cpu MB90F387 main.obj standby.obj -Wf *** W1378L: 適切でないスタンバイモード遷移命令列をフェッチ検索で検出 しました (mov io, #imm8, 00F90001 standby.asm:61) *** W1378L: 適切でないスタンバイモード遷移命令列をフェッチ検索で検出 しました (mov io, #imm8, 00F90007 standby.asm:122) *** W1378L: 適切でないスタンバイモード遷移命令列をフェッチ検索で検出 しました (mov io, #imm8, 00F9000D standby.asm:183) *** I0312L: S.C.F チェックで 3 個のワーニングが出力されました "-Wf" オプション指定により , のフェッチ単位のチェックのみ行われバイト単位の チェックは行われません。 -Wf オプション指定が行われていない場合 flnk907s -cpu MB90F387 main.obj standby.obj *** W1378L: 適切でないスタンバイモード遷移命令列をフェッチ検索で検出 しました (mov io, #imm8, 00F90001 standby.asm:61) *** W1379L: 適切でないスタンバイモード遷移命令列をバイト検索で検出し ました (mov 158 io, #imm8, 00F90003 standby.asm:101) CM41-00315-6, July 31, 2015 第 6 章 リンカのオプション 6.2 リンカのオプション詳細 Support Soft Ma nual *** W1378L: 適切でないスタンバイモード遷移命令列をフェッチ検索で検出 しました (mov io, #imm8, 00F90007 standby.asm:122) *** FW1378L: 適切でないスタンバイモード遷移命令列をフェッチ検索で検出 しました (mov io, #imm8, 00F9000D standby.asm:183) *** W1379L: 適切でないスタンバイモード遷移命令列をバイト検索で検出し ました (mov io, #imm8, 00F9002F standby.asm:211) *** I0312L: S.C.F チェックで 3 個のワーニングが出力されました フェッチ単位のチェックとバイト単位のチェックが行われます。 July 31, 2015, CM41-00315-6 159 第 6 章 リンカのオプション 6.2 リンカのオプション詳細 Su pp or t So ft Manu al 引数のレジスタ渡しのロードモジュール出力指定 オプション (-rp) 6.2.46 -rp オプションは , 関数呼び出しインタフェースが引数のレジスタ渡しのオブジェク トをリンクする際に指定するオプションです。 -rp, -Xrp どちらの指定もない場合は , 関数呼び出しインタフェースが引数のスタッ ク渡しのロードモジュールを出力するものとしてリンクします。 ■ 引数のレジスタ渡しのロードモジュール出力指定オプション (-rp) 【記述形式】 - rp 【パラメータ】 なし 【説明】 -rp オプションは , 関数呼び出しインタフェースが引数のレジスタ渡しのオブジェク トをリンクする際に指定するオプションです。 出力されるロードモジュールは引数のレジスタ渡しのロードモジュールとなりま す。 【例】 flnk907s -cpu mb90704 mod1.obj mod2.obj mod3.obj -rp <注意事項> • 以下のような場合 , リンカはエラー (***E4313L: 関数呼び出しインタフェースの異なる モジュールがあります ( ファイル名 )) を出力します。エラーが出力された場合は , -rp オプション指定または,入力オブジェクトの関数呼び出しインタフェースを修正してく ださい。 - -rp オプション指定時 , 引数のスタック渡しのオブジェクトをリンクしようとした場 合 - -Xrp オプション指定時 , 引数のレジスタ渡しのオブジェクトをリンクしようとした 場合 • 引数のレジスタ渡しのオブジェクトをリンクする場合に使用する C ライブラリは , 必 ずファイル名に "_rp" の付いた C ライブラリを使用してください。 160 CM41-00315-6, July 31, 2015 第 6 章 リンカのオプション 6.2 リンカのオプション詳細 Support Soft Ma nual 引数のスタック渡しのロードモジュール出力指定 オプション (-Xrp) 6.2.47 -Xrp オプションは , 関数呼び出しインタフェースが引数のスタック渡しのオブジェ クトをリンクする際に指定するオプションです。 -rp, -Xrp どちらの指定もない場合は , 関数呼び出しインタフェースが引数のスタッ ク渡しのロードモジュールを出力するものとしてリンクします。 ■ 引数のスタック渡しのロードモジュール出力指定オプション (-Xrp) 【記述形式】 ( デフォルト ) - Xrp 【パラメータ】 なし 【説明】 -Xrp オプションは , 関数呼び出しインタフェースが引数のスタック渡しのオブジェ クトをリンクする際に指定するオプションです。 出力されるロードモジュールは引数のスタック渡しのロードモジュールとなりま す。 -Xrp オプションを指定すると , 既に指定されている -rp オプションを無効にします。 【例】 flnk907s -cpu mb90704 mod1.obj mod2.obj mod3.obj -rp -Xrp <注意事項> 以下のような場合 , リンカはエラー (***E4313L: 関数呼び出しインタフェースの異なるモ ジュールがあります ( ファイル名 )) を出力します。エラーが出力された場合は , -rp オプ ション指定または , 入力オブジェクトの関数呼び出しインタフェースを修正してくださ い。 • -rp オプション指定時 , 引数のレジスタ渡しのオブジェクトをリンクしようとした場合 • -Xrp オプション指定時 , 引数のスタック渡しのオブジェクトをリンクしようとした場 合 July 31, 2015, CM41-00315-6 161 第 6 章 リンカのオプション 6.2 リンカのオプション詳細 Su pp or t So ft Manu al DIR 属性セクション合計サイズチェック指定 (-check_dirsize) 6.2.48 -check_dirsize オプションは , DIR 属性セクションの合計サイズをチェックする際 に指定するオプションです。 -check_dirsize オプション指定時 , DIR 属性セクションの合計サイズが 256 バイト を超えるとリンカは警告を出力します。 ■ DIR 属性セクション合計サイズチェック指定 (-check_dirsize) 【記述形式】 -check_dirsize ( デフォルト ) 【パラメータ】 なし 【説明】 -check_dirsize オプションは , DIR 属性セクションの合計サイズをチェックする際に 指定するオプションです。 -check_dirsize オプション指定時 , DIR 属性セクションの合計サイズが 256 バイトを 超えるとリンカは警告 (***W1377L: DIR 属性セクションの合計サイズが 256 バイト を超えました ) を出力します。 警告が出力された場合 , DIR 属性セクション合計サイズが 256 バイト以下になるよ うソースを修正してください。 【例】 flnk907s -cpu mb90704 mod1.obj mod2.obj mod3.obj -check_dirsize <注意事項> 以下のような場合 , DIR 属性セクションの合計サイズが 256 バイトを超えても問題ありま せん。本メッセージは無視してください。 • アセンブラソースにおいて複数のダイレクトページを使用している場合 • リアルタイム OS のタスクごとに異なったダイレクトページを使用する場合 DIR 属性セクションの合計サイズが 256 バイトを超えても問題ない場合 , -Xcheck_dirsize オプションでチェックは抑止できます。 162 CM41-00315-6, July 31, 2015 第 6 章 リンカのオプション 6.2 リンカのオプション詳細 Support 6.2.49 Soft Ma nual DIR 属性セクション合計サイズチェック抑止指定 (-Xcheck_dirsize) -Xcheck_dirsize オプションは , DIR 属性セクション合計サイズのチェックを抑止す る際に指定するオプションです。 ■ DIR 属性セクション合計サイズチェック抑止指定 (-Xcheck_dirsize) 【記述形式】 -Xcheck_dirsize 【パラメータ】 なし 【説明】 -Xcheck_dirsize オプションは , DIR 属性セクション合計サイズのチェックを抑止す る際に指定するオプションです。 -Xcheck_dirsize オプションを指定すると既に指定されている -check_dirsize オプショ ンを無効にします。 -Xcheck_dirsize オプションを指定すると , DIR 属性セクション合計サイズが 256 バ イトを超えてもリンカは警告を出力しません。 【例】 flnk907s -check_dirsize -cpu mb90704 mod1.obj mod2.obj mod3.obj -Xcheck_dirsize July 31, 2015, CM41-00315-6 163 第 6 章 リンカのオプション 6.2 リンカのオプション詳細 Su pp or t 6.2.50 So ft Manu al サイズ 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: 配置可能なアドレスが見つかりません。( セクション名 ) 164 CM41-00315-6, July 31, 2015 第 6 章 リンカのオプション 6.2 リンカのオプション詳細 Support Soft Ma nual 【例】 flnk907s -cpu mb90704 -check_size0_sec module1.obj module2.obj <注意事項> サイズ 0 セクションの配置チェックはデフォルトでは行われません。 サイズ 0 セクションの配置チェックを行いたい場合は , -check_size0_sec オプションを指 定してください。 July 31, 2015, CM41-00315-6 165 第 6 章 リンカのオプション 6.2 リンカのオプション詳細 Su pp or t 6.2.51 So ft Manu al サイズ 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: 配置可能なアドレスが見つかりません。( セクション名 ) 【例】 flnk907s -cpu mb90704 -Xcheck_size0_sec 166 module1.obj module2.obj CM41-00315-6, July 31, 2015 第 6 章 リンカのオプション 6.2 リンカのオプション詳細 Support 6.2.52 Soft Ma nual 相対アセンブルリスト入力ディレクトリ指定 (-alin) 相対アセンブルリストファイルが格納されているディレクトリを指定します。 このオプションがない場合は , オブジェクトモジュールと同じ場所となります。 ■ 相対アセンブルリスト入力ディレクトリ指定 (-alin) 【記述形式】 -alin < パス名 > 【パラメータ】 < パス名 > 相対アセンブルリストファイルが格納されているディレクトリ 【説明】 絶対アセンブルリストファイルを出力するときに , 使用するオプションです。 相対アセンブルリストファイルが格納されているディレクトリを指定します。 本オプションの指定がない場合は,オブジェクトモジュールと同じ場所になります。 -alf オプションで , 相対アセンブルリストファイルをパス名付きで指定している場 合には , -alf オプション指定のパスを優先します。 【例】 flnk907s *.obj -o ap.abs -alin d: \ fmc16 -alf swctr1.lst,mstdef.lst flnk907s *.obj -o ap.abs -alsf d: \ fmc16 \ swctrl.lst,d: \ fmc16 \ mstdef.lst 上記の 2 つの例は同じ意味です。 July 31, 2015, CM41-00315-6 167 第 6 章 リンカのオプション 6.2 リンカのオプション詳細 Su pp or t 6.2.53 So ft Manu al 絶対アセンブルリスト出力ディレクトリ指定 (-alout) 絶対アセンブルリストファイルを出力するディレクトリを指定します。 ■ 絶対アセンブルリスト出力ディレクトリ指定 (-alout) 【記述形式】 -alout < パス名 > 【パラメータ】 < パス名 > 絶対アセンブルリストファイルを出力するディレクトリ 【説明】 絶対アセンブルリストファイルを出力するディレクトリを指定します。 本オプションの指定がない場合は , カレントディレクトリとなります。 【例】 flnk907s *.obj -o ap.abs -alin d: \ fmc16 -alf swctrl.lst,mstdef.lst -alout d: \ fmc16 \ als 168 CM41-00315-6, July 31, 2015 第 6 章 リンカのオプション 6.2 リンカのオプション詳細 Support 6.2.54 Soft Ma nual 絶対アセンブルリスト出力指定 (-als) 絶対アセンブルリストファイルの出力を指定します。 すべてのオブジェクトモジュールに対する出力指示です。 ■ 絶対アセンブルリスト出力指定 (-als) 【記述形式】 -als 【パラメータ】 なし 【説明】 すべてのモジュールに対して絶対アセンブルリストを作成することを指示します。 本オプションの指定がないときは , 絶対アセンブルリストの作成を行いません。 前に指定した , -alsf, -Xals を無効にします。 【例】 flnk907s *.obj -o ap.abs -als July 31, 2015, CM41-00315-6 169 第 6 章 リンカのオプション 6.2 リンカのオプション詳細 Su pp or t 6.2.55 So ft Manu al 絶対アセンブルリスト出力モジュール指定 (-alsf) 絶対アセンブルリストファイルを出力するモジュールを指定します。 オブジェクトモジュールに対する選択出力指示を行います。 ■ 絶対アセンブルリスト出力モジュール指定 (-alsf) 【記述形式】 -alsf < 相対アセンブルリストファイル名 > [, … ] 【パラメータ】 < 相対アセンブルリストファイル名 > 絶対アセンブルリスト作成の元になる相対アセンブルリストファイル名 ファイル名の指定にはワイルドカードが使えます。 【説明】 絶対アセンブルリストを作成するモジュールを選択します。 モジュールの指定は , 相対アセンブルリストファイル名で行います。拡張子を省略 した場合には , ".lst" を仮定します。 指定されなかったモジュールは , 絶対アセンブルリストの作成を行いません。 本オプションは , 複数に分けて指定できます。 前に指定した , -als, -Xals を無効にします。 -alin オプションより相対アセンブルリストの格納パスを指定できますので , 本オプ ション指定時にはパス指定を省略することが可能です。 【例】 flnk907s *.obj -o ap.abs -alsf swctrl.lst,mstdef.lst flnk907s *.obj -o ap.abs -alsf swctrl.lst -alsf mstdef.lst flnk907s *.obj -o ap.abs -alsf swctrl -alsf mstdef 上記の 3 つの例は同じ意味です。 170 CM41-00315-6, July 31, 2015 第 6 章 リンカのオプション 6.2 リンカのオプション詳細 Support 6.2.56 Soft Ma nual 絶対アセンブルリスト出力抑止指定 (-Xals) すべてのモジュールに対して絶対アセンブルリストを , 作成しないことを指示しま す。 ■ 絶対アセンブルリスト出力抑止指定 (-Xals) 【記述形式】 ( デフォルト ) -Xals 【パラメータ】 なし 【説明】 すべてのモジュールに対して絶対アセンブルリストを作成しないことを指示しま す。 本オプションはデフォルトです。 前に指定した , -als, -alsf を無効にするときに使用します。 【例】 flnk907s *.obj -o ap.abs -alsf sectrl.lst,mstdef.lst -xals July 31, 2015, CM41-00315-6 171 第 6 章 リンカのオプション 6.2 リンカのオプション詳細 Su pp or t 6.2.57 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) を指定してください。 【例】 flnk907s *.obj -o ap.abs -als -alr -g flnk907s *.obj -o ap.abs -alr -g 上記の 2 つの例は同じ意味です。 172 CM41-00315-6, July 31, 2015 第 6 章 リンカのオプション 6.2 リンカのオプション詳細 Support 6.2.58 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 を無効にします。 【例】 flnk907s *.obj -o ap.abs -alsf swctrl.lst,mstdef.lst-alrf swctrl.lst,mstdef.lst flnk907s *.obj -o ap.abs -alsf swctrl.lst -alrf mstdef.lst,mstdef.lst flnk907s *.obj -o ap.abs -alrf swctrl -alrf mstdef 上記の 3 つの例は同じ意味です。 July 31, 2015, CM41-00315-6 173 第 6 章 リンカのオプション 6.2 リンカのオプション詳細 Su pp or t 6.2.59 So ft Manu al ROM/RAM, ARRAY リスト出力抑止指定 (-Xalr) すべての絶対アセンブルリストに ROM/RAM, ARRAY リストを付加しないことを指 定します。 ■ ROM/RAM, ARRAY リスト出力抑止指定 (-Xalr) 【記述形式】 ( デフォルト ) -Xalr 【パラメータ】 なし 【説明】 すべての絶対アセンブルリストにROM/RAM, ARRAYリストを付加しないことを指 定します。 本オプションは , デフォルトのため特に指定する必要はありません。 前に指定した , -alr, -alrf を無効にします。 【例】 flnk907s *.obj -o ap.abs -als -alr -Xalr flnk907s *.obj -o ap.abs -als -Xalr 上記の 2 つの例は同じ意味です。 174 CM41-00315-6, July 31, 2015 第 6 章 リンカのオプション 6.2 リンカのオプション詳細 Support 6.2.60 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オプションを取り消すときに指定 します。 【例】 flnk907s *.obj -o ap.abs -alr -na flnk907s *.obj -o ap.abs -alr 上記の 2 つの例は同じ意味です。 【記述形式】 -an 【パラメータ】 なし 【説明】 ROM/RAM, ARRAY リストのシンボルとアドレスを ADDRESS, NAME の順に出力 します。 シンボルはアドレス順に出力します。 -na オプション ( デフォルト ) を変更するときに使用します。 ROM/RAM, ARRAY リストが出力指定されたモジュールに対してのみ有効です。 July 31, 2015, CM41-00315-6 175 第 6 章 リンカのオプション 6.2 リンカのオプション詳細 Su pp or t So ft Manu al 【例】 flnk907s *.obj -o ap.abs -alr -na -an flnk907s *.obj -o ap.abs -alr -an 上記の 2 つの例は同じ意味です。 176 CM41-00315-6, July 31, 2015 第 6 章 リンカのオプション 6.2 リンカのオプション詳細 Support 6.2.61 Soft Ma nual 外部シンボル相互参照情報リスト出力指定 (-xl) 外部シンボル相互参照情報リストファイルを出力指定します。 ■ 外部シンボル相互参照情報リスト出力指定 (-xl) 【記述形式】 -xl 【パラメータ】 なし 【説明】 外部シンボル相互参照情報リストファイルを作成することを指示します。 本オプションの指定がないときは , 外部シンボル相互参照情報リストファイルの作 成を行いません。 【例】 flnk907s *.obj -o ap.abs -xl July 31, 2015, CM41-00315-6 177 第 6 章 リンカのオプション 6.2 リンカのオプション詳細 Su pp or t 6.2.62 So ft Manu al 外部シンボル相互参照情報リストファイル名の指定 (-xlf) 外部シンボル相互参照情報リストファイルの出力先ディレクトリやファイル名を変 更したいときに使用します。 ■ 外部シンボル相互参照情報リストファイル名の指定 (-xlf) 【記述形式】 -xlf < 出力ファイル名 > 【パラメータ】 < 出力ファイル名 > 出力ファイル名を指定します。出力先のディレクトリを変更するときは前にパス名 を付けます。 【説明】 指定した名前で外部シンボル相互参照情報リストファイルを作成します。 本オプションを使用する場合 , -xl オプションは省略できます。 < 出力ファイル名 > 指定で拡張子を省略した場合は , デフォルト拡張子 ".mpx" が付 加されます。 本オプションの指定がない場合は , 絶対形式ロードモジュールファイル名の拡張子 を ".mpx" に直したものを , 出力ファイル名とします。 【例】 flnk907s *.obj -o ap.abs -xl -xlf ccp903.mpx flnk907s *.obj -o ap.abs -xlf ccp903 上記の 2 つの例は同じ意味です。 178 CM41-00315-6, July 31, 2015 第 6 章 リンカのオプション 6.2 リンカのオプション詳細 Support 6.2.63 Soft Ma nual 外部シンボル相互参照情報リスト出力抑止指定 (-Xxl) 外部シンボル相互参照情報リストファイルを出力抑止指定します。 ■ 外部シンボル相互参照情報リスト出力抑止指定 (-Xxl) 【記述形式】 ( デフォルト ) -Xxl 【パラメータ】 なし 【説明】 外部シンボル相互参照情報リストファイルの出力抑止を指示します。 本オプションは , デフォルトのため特に指定する必要はありません。 前に指定した , -xl, -xlf を無効にします。 【例】 flnk907s *.obj -o ap.abs -xl -Xxl flnk907s *.obj -o ap.abs -Xxl flnk907s *.obj -o ap.abs 上記の 3 つの例は同じ意味です。 July 31, 2015, CM41-00315-6 179 第 6 章 リンカのオプション 6.2 リンカのオプション詳細 Su pp or t 6.2.64 So ft Manu al ローカルシンボル情報リスト出力指定 (-sl) ローカルシンボル情報リストファイルを出力指定します。この場合 , コンパイル , ア センブル , リンク時にデバッグ情報が出力されていることが必要です。 ■ ローカルシンボル情報リスト出力指定 (-sl) 【記述形式】 -sl 【パラメータ】 なし 【説明】 ローカルシンボル情報リストファイルを作成することを指示します。 本オプションの指定がないときは , ローカルシンボル情報リストファイルの作成を 行いません。 ローカルシンボル情報リストファイルを出力するためには , コンパイル , アセンブ ル , リンク時にデバッグ情報出力オプション (-g) を指定してください。 【例】 flnk907s *.obj -o ap.abs -sl -g 180 CM41-00315-6, July 31, 2015 第 6 章 リンカのオプション 6.2 リンカのオプション詳細 Support 6.2.65 Soft Ma nual ローカルシンボル情報リストファイル名の指定 (-slf) ローカルシンボル情報リストファイルの出力先ディレクトリやファイル名を変更し たいときに使用します。 ■ ローカルシンボル情報リストファイル名の指定 (-slf) 【記述形式】 -slf < 出力ファイル名 > 【パラメータ】 < 出力ファイル名 > 出力ファイル名を指定します。出力先のディレクトリを変更するときは前にパス名 を付けます。 【説明】 指定した名前でローカルシンボル情報リストファイルを作成します。 本オプションを使用する場合 , -sl オプションは省略できます。 < 出力ファイル名 > 指定で拡張子を省略した場合は , デフォルト拡張子 ".mps" が付 加されます。 本オプションの指定がない場合は , 絶対形式ロードモジュールファイル名の拡張子 を ".mps" に直したものを , 出力ファイル名とします。 【例】 flnk907s *.obj -o ap.abs -sl -slf ccp903.mps -g flnk907s *.obj -o ap.abs -slf ccp903 -g 上記の 2 つの例は同じ意味です。 July 31, 2015, CM41-00315-6 181 第 6 章 リンカのオプション 6.2 リンカのオプション詳細 Su pp or t 6.2.66 So ft Manu al ローカルシンボル情報リスト出力抑止指定 (-Xsl) ローカルシンボル情報リストファイルを出力抑止指定します。 ■ ローカルシンボル情報リスト出力抑止指定 (-Xsl) 【記述形式】 ( デフォルト ) -Xsl 【パラメータ】 なし 【説明】 ローカルシンボル情報リストファイルの出力抑止を指示します。 本オプションは , デフォルトのため特に指定する必要はありません。 前に指定した , -sl, -slf を無効にします。 【例】 flnk907s *.obj -o ap.abs -sl -Xsl flnk907s *.obj -o ap.abs -Xsl flnk907s *.obj -o ap.abs 上記の 3 つの例は同じ意味です。 182 CM41-00315-6, July 31, 2015 第 6 章 リンカのオプション 6.2 リンカのオプション詳細 Support 6.2.67 Soft Ma nual セクション詳細マップリスト出力指定 (-ml) セクション詳細マップリストファイルを出力指定します。 ■ セクション詳細マップリスト出力指定 (-ml) 【記述形式】 -ml 【パラメータ】 なし 【説明】 セクション詳細マップリストファイルを作成することを指示します。 本オプションの指定がないときは , セクション詳細マップリストファイルの作成を 行いません。 【例】 flnk907s *.obj -o ap.abs -ml July 31, 2015, CM41-00315-6 183 第 6 章 リンカのオプション 6.2 リンカのオプション詳細 Su pp or t 6.2.68 So ft Manu al セクション詳細マップリストファイル名の指定 (-mlf) セクション詳細マップリストファイルの出力先ディレクトリやファイル名を変更し たいときに使用します。 ■ セクション詳細マップリストファイル名の指定 (-mlf) 【記述形式】 -mlf < 出力ファイル名 > 【パラメータ】 < 出力ファイル名 > 出力ファイル名を指定します。出力先のディレクトリを変更するときは前にパス名 を付けます。 【説明】 指定した名前でセクション詳細マップリストファイルを作成します。 本オプションを使用する場合 , -ml オプションは省略できます。 < 出力ファイル名 > 指定で拡張子を省略した場合は , デフォルト拡張子 ".mpm" が付 加されます。 本オプションの指定がない場合は , 絶対形式ロードモジュールファイル名の拡張子 を ".mpm" に直したものを , 出力ファイル名とします。 【例】 flnk907s *.obj -o ap.abs -ml -mlf ccp903.mpm flnk907s *.obj -o ap.abs -mlf ccp903 上記の 2 つの例は同じ意味です。 184 CM41-00315-6, July 31, 2015 第 6 章 リンカのオプション 6.2 リンカのオプション詳細 Support 6.2.69 Soft Ma nual セクション詳細マップリスト出力抑止指定 (-Xml) セクション詳細マップリストファイルを出力抑止指定します。 ■ セクション詳細マップリスト出力抑止指定 (-Xml) 【記述形式】 ( デフォルト ) -Xml 【パラメータ】 なし 【説明】 セクション詳細マップリストファイルの出力をすることを抑止指示します。 本オプションは , デフォルトのため特に指定する必要はありません。 前に指定した , -ml, -mlf を無効にします。 【例】 flnk907s *.obj -o ap.abs -ml -Xml flnk907s *.obj -o ap.abs -Xml flnk907s *.obj -o ap.abs 上記の 3 つの例は同じ意味です。 July 31, 2015, CM41-00315-6 185 第 6 章 リンカのオプション 6.2 リンカのオプション詳細 Su pp or t 186 So ft Manu al CM41-00315-6, July 31, 2015 Support Soft Ma nual 第7章 リンカの出力リスト ファイル この章では , リンカの出力する各リストファイルの フォーマット , 情報の見方について説明します。 7.1 リンカの出力するリストファイルの種類 7.2 リンクリストファイル 7.3 絶対アセンブルリストファイル 7.4 外部シンボル相互参照情報リストファイル 7.5 ローカルシンボル情報リストファイル 7.6 セクション配置詳細情報リストファイル July 31, 2015, CM41-00315-6 187 第 7 章 リンカの出力リスト ファイル 7.1 リンカの出力するリストファイルの種類 Su pp or t 7.1 So ft Manu al リンカの出力するリストファイルの種類 リンカが出力するリストファイルは以下の 5 つです。 • リンクリストファイル • 絶対形式アセンブルリスト • 外部シンボル相互参照情報リスト • ローカルシンボル情報リスト • セクション詳細マップリスト これらのファイルは , リンカ起動時のオプションで , 出力するかどうか選択できます。 ■ リンクリストファイル リンクリストファイルは , リンカ起動時のオプションや入力モジュール名 , モジュール リンク後のセクションと外部シンボルの情報が出力されます。 ■ 絶対形式アセンブルリスト 絶対形式アセンブルリストは , モジュールリンク後の情報をもとに , アセンブラが出力 した相対形式のアセンブルリストを絶対形式で表示したリストです。 アセンブラ言語レベルでのデバッグを行う場合に参照でき,リンクリストではわからな い機械語の 1 ステップ単位のアドレスを確認できます。 ■ 外部シンボル相互参照情報リスト 外部シンボル相互参照情報リストは,リンク後の各モジュールの外部定義シンボルと外 部参照シンボルのモジュール間相互参照の情報が出力されます。 ■ ローカルシンボル情報リスト ローカルシンボル情報リストは,リンク後のモジュールごとのローカルシンボルを含ん だ変数や関数などの情報を出力します。 ■ セクション詳細マップリスト セクション詳細マップリストは,リンク後のモジュールごとのセクション配置の情報を 作成します。 188 CM41-00315-6, July 31, 2015 第 7 章 リンカの出力リスト ファイル 7.2 リンクリストファイル Support 7.2 Soft Ma nual リンクリストファイル リンクリストファイルは , 情報内容により 4 つの部分に分かれています。 • コントロールリスト • マップリスト • メモリ使用情報リスト • 外部シンボルリスト ここでは , それぞれに出力される項目を説明します。 ■ リンクリストファイルの構成 リンカのリストファイルは , 4 つの部分に分かれています。 ● コントロールリスト • 指定されたオプション • 入力オプション • エラーメッセージ ● マップリスト • セクション名 • セクション属性 • リンク後のセクション配置アドレス ● メモリ使用情報リスト • ROM/RAM 使用情報 • 領域内情報 • 総合評価情報 ● 外部シンボルリスト • 外部シンボル名 • 定義 , 参照の種別 • シンボルの値 各リストの境界には , 改ページの制御文字が出力されます。 July 31, 2015, CM41-00315-6 189 第 7 章 リンカの出力リスト ファイル 7.2 リンクリストファイル Su pp or t 7.2.1 So ft Manu al コントロールリスト コントロールリストには , リンカを実行したときに指定したオプションと , 入力モ ジュール名を表示します。また , リンク処理中に発見したエラーも表示します。 ■ コントロールリスト部のリスト出力フォーマット 図 7.2-1 にコントロールリスト部のリスト出力フォーマットを示します。 図 7.2-1 コントロールリスト部のリスト出力フォーマット F2MC-16 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 **」を表示します。 190 CM41-00315-6, July 31, 2015 第 7 章 リンカの出力リスト ファイル 7.2 リンクリストファイル Support Soft Ma nual ■ コントロールリスト部のリスト表示例 図 7.2-2 にコントロールリスト部のリスト表示例を示します。 図 7.2-2 コントロールリスト部のリスト表示例 F2MC-16 Family SOFTUNE Linker Control List 2003-08-26 15:18:11 Page: 1 Option File(s) ** no use ** Control(s) -g -a -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 ** July 31, 2015, CM41-00315-6 191 第 7 章 リンカの出力リスト ファイル 7.2 リンクリストファイル Su pp or t 7.2.2 So ft Manu al マップリスト マップリストには , セクションの名前 , 内容種別 , 属性と結合後のセクション配置ア ドレスを表示します。 ■ マップリスト部のリスト出力フォーマット マップリスト部のリスト出力フォーマットを図 7.2-3 に示します。 図 7.2-3 マップリスト部のリスト出力フォーマット F2MC-16 Family SOFTUNE Linker Mapping List YYYY-MM-DD hh:mm:ss Page: S_Addr. -E_Addr. Size Section Type Al Sec.(Top **) 2 C ① マップ情報表示エリア ページヘッダ 先頭行にリンカ名, リスト名, 日時, ページ番号を表示します。 ① マップ情報表示エリア マップ情報は, 開始アドレス順, ただし, 開始アドレスが同じ場合はセクション出現順 に表示されます。 S-Addr :セクションの開始アドレス (16進) 未使用関数削除機能により削除されたセクションは, "--------"と表示します。 E-Addr :セクションの終了アドレス (16進) 未使用関数削除機能により削除されたセクションは, "--------"と表示します。 Size :セクションのサイズ (16進) 未使用関数削除機能により削除されたセクションは, "--------"と表示します。 Section :セクション内容種別 セクションの内容種別を表示します。 CODE プログラムセクション DATA データセクション CONST 初期値付データセクション STACK スタックセクション IO IOセクション DIR DIRセクション DIRC DIRCONSTセクション セクション種別の後に, 結合属性を表示します。 P 単純連結結合 C 共有結合 N 結合なし type :セクションの属性 左から順に, 以下の属性を表示します。 R/- Read可/不可 W/- Write可/不可 X/- 実行可/不可 I/- 初期値あり/なし Al :セクション配置時の境界調整数 (16進) 境界調整数が0x100以上の場合は, "**"と表示されます。 Sec.(Top **) :セクション名 ROM→RAM転送セクションで生成されたセクションには先頭に"#"が 表示されます。 "**"は, 指定されたページ幅でセクション名が何桁表示できるかか を示します。 (注意事項)セクションサイズが"0"のセクションの終了アドレスは, 「........」で表示します。 192 CM41-00315-6, July 31, 2015 第 7 章 リンカの出力リスト ファイル 7.2 リンクリストファイル Support Soft Ma nual ■ マップリスト部のリスト表示例 図 7.2-4 にマップリスト部のリスト表示例を示します。 図 7.2-4 マップリスト部のリスト表示例 F2MC-16 Family SOFTUNE Linker S_Addr. -E_Addr. Size Mapping List Section Type Al 2003-08-09 20:41:12 Page: Sec.(Top 29) 00000000 -0000001F 00000020 DATA P RW-- 08 REL D 00000020 -00000039 0000001A DATA P RW-- 02 REL data 0000003A -00000053 0000001A STAK P RW-- 02 REL S 00000054 -0000006D 0000001A DATA P RW-I 02 REL init 00008000 -00008039 0000003A CODE P R-XI 02 REL P 0000803A -00008053 0000001A CODE P R-XI 02 REL code 00008054 -0000806D 0000001A DATA P R--I 02 REL #init 2 C ■ 未使用関数削除機能により削除されたセクションのマップリスト表示例 未使用関数削除機能により削除されたセクションのマップリスト表示例を図 7.2-5 に 示します。 削除されたセクションの S_Addr., E_Addr., Size は ,"--------" と表示します。 図 7.2-5 削除されたセクションのリスト表示例 F2MC-16 Family SOFTUNE Linker S_Addr. -E_Addr. Size Mapping List Section Type Al 2015-08-01 16:41:12 Sec.(Top 29) 00008024 -00008025 00000002 CODE P R-XI 01 REL CODE_main_func1 00008026 -0000802F 0000000A CODE P R-XI 01 REL CODE_main_main -------- --------- -------- CODE P R--I 01 REL CODE_main_func2 July 31, 2015, CM41-00315-6 Page: 2 C 193 第 7 章 リンカの出力リスト ファイル 7.2 リンクリストファイル Su pp or t 7.2.3 So ft Manu al メモリ使用情報リスト メモリ使用情報リストには , RAM 指定領域と ROM 指定領域の , 領域名 , 空きまたは オーバ領域サイズ , 指定領域の先頭・終端アドレスなどを表示します。 ■ メモリ使用情報リスト部のリスト出力フォーマット メモリ使用情報リスト部のリスト出力フォーマットを図 7.2-6 に示します。 図 7.2-6 メモリ使用情報リスト部のリスト出力フォーマット F2MC-16 Family SOFTUNE Linker ROM/RAM Used Info YYYY-MM-DD hh:mm:ss Page: S_Addr. -E_Addr. Size Remain 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 : メモリ領域名, セクション名 ② 領域内情報エリア 領域内情報エリアは, 有効エリア内の空き領域, 使用済領域, ギャップ領域をマップイ メージで表示します。 この情報エリアに表示される情報は, 指定領域に対して配置されたセクションのみの情報 です。 S-Addr : 領域の開始アドレス (16進) E-Addr : 領域の終了アドレス (16進) Size : 領域サイズ (16進) Name/State : 領域タイプ FREE : 空き領域 USED : 使用済領域 GAP : ギャップ領域 ③ 総合評価値情報 総合評価値情報は, ROMエリアの総合とRAMエリアの総合の2つに対して, 以下の3つの情報 を表示します。 ・ 指定領域の合計値 (Total) ・ 使用した領域の合計値 (Used) (注意事項:ギャップ領域を含む) ・ 空きまたはオーバ領域の合計値 (Remainder) 194 CM41-00315-6, July 31, 2015 第 7 章 リンカの出力リスト ファイル 7.2 リンクリストファイル Support Soft Ma nual ■ メモリ使用情報リスト部のリスト表示例 図 7.2-7 にメモリ使用情報リスト部のリスト表示例を示します。 図 7.2-7 メモリ使用情報リスト部のリスト表示例 F2MC-16 Family SOFTUNE Linker ROM/RAM Used Info List 2003-09-02 20:45:25 S-Addr. - E-Addr. Size Remain - 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 --------- # 00001000 00001000 00001000 00001137 00001138 0000152C 00001530 00001775 00002000 - 000023FF RAM -- Total(00001400) Used(00002194) Name/State ---------00001100 ROM1 000BC000 - 000BCFFF 00001000 --------- USED # 000BD000 000BD000 - 000BFFFF - ........ 00003000 00000000 --------ROM2 +00003000 000BD000 - 000BFFFF 00003000 --------- (*3): RAM1領域の情報 ←(*1) ←配置できなかったセクション情報(*2) Remainder(-00000D94) 00001000 00002100 (*2): ←オプションで指定したメモリ領域 ←配置したセクションに対するメモリ状況 RAM2領域の情報 FREE - 000BCFFF - 000BDFFF 説明 (*1): 3 C USED GAP USED GAP USED FREE # 000BC000 000BBF00 ROM -- Total(00004000) Used(00002100) Page: ←全RAM領域の情報 ←(*3) ←ROM1領域の情報 ROM2領域の情報 FREE Remainder(+00001F00) ←全ROM領域の情報 自動配置オプションによりメモリ領域にセクションを配置しようとして配置できなかったセクションが あるメモリ領域の情報は, そのセクションのサイズを加えた状態を示しています。 (数値表現として 0xFFFFFFFFを超えた場合, その数値の下位32bit分が表示されます。) 自動配置オプションのモード2が指定された場合の配置できなかったセクションは, (ROM領域, RAM領域 のどちらかの)最後に指定されたメモリ領域に対して表示を行います。 ユーザ配置指定が行われたセクションは, そのセクションの先頭アドレスが含まれるメモリ領域に含みま す。 July 31, 2015, CM41-00315-6 195 第 7 章 リンカの出力リスト ファイル 7.2 リンクリストファイル Su pp or t 7.2.4 So ft Manu al シンボルリスト シンボルリストには , 外部シンボル名 , 定義 , 参照の種別 , シンボルの値を表示しま す。 ■ シンボルリスト部のリスト出力フォーマット シンボルリスト部のリスト出力フォーマットを図 7.2-8 に示します。 図 7.2-8 シンボルリスト部のリスト出力フォーマット F2MC-16 Family SOFTUNE Linker Symbol Value Type Def. Symbol List YYYY-MM-DD hh:mm:ss Page: Symbol Name(Top **) 1 C ① シンボルリストエリア ページヘッダ 先頭行にリンカ名, リスト名, 日時, ページ番号を表示します。 ① シンボルリスト表示エリア Symbol Value : シンボルアドレス or シンボル値 (16進) 未使用関数削除機能により削除された関数は, "--------(DEL)"と表示します。 Type : シンボル種別 以下のどれかが表示されます。 Addr. : シンボルはアドレスレベルです。 EQU : シンボルはEQU定義シンボルです。 bit : シンボルはビット属性です。 Def. : シンボルの定義 以下のどれかが表示されます。 OM/LM : 入力オブジェクトモジュールまたは相対形式ロードモジュール 中で定義されています。 LIB : 結合されたライブラリ中で定義されています。 user : -df オプションにより値を仮設定されたシンボルです。 Symbol Name : シンボル名 "**"は, 指定されたページ幅でシンボル名が何桁表示できるかを示します。 (注意事項) シンボルが, 参照されている場合は, そのままシンボル名を表示し, 参照されていない場合 は, シンボル名の先頭に"@"を付けて表示します。 196 CM41-00315-6, July 31, 2015 第 7 章 リンカの出力リスト ファイル 7.2 リンクリストファイル Support Soft Ma nual ■ シンボルリスト部のリスト表示例 図 7.2-9 にシンボルリスト部のリスト表示例を示します。 図 7.2-9 シンボルリスト部のリスト表示例 F2MC-16 Family SOFTUNE Linker Symbol List Symbol Value 00000004(ABS) 00000008(ABS) 000000C4(ABS) 00000018(ABS) Type Addr. Addr. Addr. Addr. Def. OM/LM OM/LM OM/LM OM/LM 2003-10-26 15:26:20 Page: Symbol Name(Top **) _Filename _c1 _main _ulval 3 C ■ 削除された関数のシンボルリスト表示例 未使用関数削除機能により削除された関数のシンボルリスト表示例を図 7.2-10 に示し ます。 削除された関数の Symbol Value は ,"--------(DEL)" と表示します。 図 7.2-10 削除された関数のシンボルリスト部のリスト表示例 F2MC-16 Family SOFTUNE Linker Symbol List Symbol Value 00008024(ABS) Type Addr. - - - - - - - -(DEL) Addr. 00008026(ABS) Addr. July 31, 2015, CM41-00315-6 Def. Symbol Name(Top **) OM/LM @_func1 func1 OM/LM @_func2 func2 OM/LM @_main main 2015-08-01 15:26:32 Page: 3 C 197 第 7 章 リンカの出力リスト ファイル 7.3 絶対アセンブルリストファイル Su pp or t 7.3 So ft Manu al 絶対アセンブルリストファイル リンカが出力する絶対形式アセンブルリストは , 以下により構成されています。 • ヘッダ • インフォメーションリスト • ROM/RAM, ARRAY リスト • アセンブルソースリスト • セクション情報リスト • クロスリファレンスリスト ここでは , それぞれに出力される項目を説明します。 ■ 絶対アセンブルリストの形式 ● ヘッダ 各ページの先頭に出力されます。 ● インフォメーションリスト アセンブラが出力したインフォメーションリストをそのまま出力します。 ● ROM/RAM, ARRAY リスト • ROM/RAM リスト : ROM/RAM 領域に配置されているグローバルシンボルの名前 , 絶対アドレス情報などが出力されます。 • ARRAY リスト : 配列要素の名前 , 構造体のメンバ名 , 絶対アドレス情報などが 出力されます。 オプション -alr を指定すると , ROM/RAM, ARRAY リストを表示します。-Xalr を指定 すると ROM/RAM, ARRAY リストは表示されません。 ● アセンブルソースリスト アセンブルソースリストは,ソースプログラムをアセンブルしたときの様々な情報を行 単位に表示したものです。エラー情報 , ロケーション , オブジェクトコードなどが表示 されます。 ● セクション情報リスト ソースプログラム内で定義されたセクションの名前 , 属性などが表示されます。 ● クロスリファレンスリスト ソースプログラム内で使用しているシンボル名の定義 , 参照関係を行番号で示します。 リストの構成は , 図 7.3-1 のようになっています。 198 CM41-00315-6, July 31, 2015 第 7 章 リンカの出力リスト ファイル 7.3 絶対アセンブルリストファイル Support Soft Ma nual 図 7.3-1 アセンブルリストの構成 インフォメーションリスト (ROM/RAMリスト) -alr指定 (ARRAYリスト) アセンブルソースリスト セクション情報リスト クロスリファレンスリスト ■ アセンブルリスト内のエラーメッセージ アセンブル時に発生したエラーが,もし,アセンブルリスト上にあれば,エラーメッセー ジがそのまま表示されます。 July 31, 2015, CM41-00315-6 199 第 7 章 リンカの出力リスト ファイル 7.3 絶対アセンブルリストファイル Su pp or t 7.3.1 So ft Manu al ヘッダ , インフォメーションリスト ヘッダは 4 行で構成されています。 また , リストの 1 ページ目には , ヘッダに続いてインフォメーションリスト ( アセン ブラ起動時の指定内容 , エラー数 , ワーニング数 , ソースファイル名 , インクルード ファイル名 , オプションファイル名など ) が表示されています。 ■ ヘッダ形式 ヘッダは 4 行より構成されています。各ページの先頭に表示されます。1 ~ 2 行目はア センブルリスト全体を通じて共通の形式をもち , 3 行目は各ソースプログラムで異なり ます。ヘッダの形式を図 7.3-2 に示します。 図 7.3-2 ヘッダ形式 [1~2行目] F2MC-16 Family SOFTUNE Linker VxxLxx YYYY-MM-DD hh:mm:ss ツール名 絶対アセンブルリスト作成年月日 Page: xxxx ページ番号 [3行目] - 各リスト名 - ( モジュール名 ) 元のアセンブルリストの内容がそのまま表示されます。 [4行目] 空白行が出力されます。 200 CM41-00315-6, July 31, 2015 第 7 章 リンカの出力リスト ファイル 7.3 絶対アセンブルリストファイル Support 7.3.2 Soft Ma nual ROM/RAM, ARRAY リスト ROM/RAM, ARRAY リストは , 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 *2 *3 *4 *5 *1 ・ARRAYリストの形式 - ARRAY LISTING - (モジュール名) NAME ADDRESS VALUE --- 名前 --- xxxxxxxx xxxxxxxx *2 *3 *1 *1: シンボル名 プログラム内で記述されているシンボルの名前を表示します。 ARRAY リストの場合は配列 , 構造体の要素すべてを表示します。 *2: アドレス 絶対アドレスを 16 進で表示します。 未使用関数削除機能により削除された関数は ,"--------" と表示します。 シンボル名とアドレスの表示位置はオプションで変更できます。-na を指定すると シンボル名 , アドレスの順で , -an を指定するとアドレス , シンボル名の順に表示し ます。 詳細は ,「6.2.60 ROM/RAM, ARRAY リストのシンボルとアドレスの表示位置指定 (-na, -an)」を参照してください。 *3: 値 シンボルに初期値が代入されている場合はその値を 10 進で表示します。 *4: シンボルの種別 以下があります。 L : 変数値 F : 関数名 T : タグ名参照 July 31, 2015, CM41-00315-6 201 第 7 章 リンカの出力リスト ファイル 7.3 絶対アセンブルリストファイル Su pp or t So ft Manu al *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 ADDRESS VALUE 00008024 -------00008026 KIND F F F MEMORY ROM ROM ROM 【例 3】 図 7.3-6 ARRAY リスト例 - ARRAY LISTING - (sample1) 202 NAME ADDRESS VALUE _symref[0].val _symref[0].nam _symref[0].atr _symref[1].val _symref[1].nam _symref[1].atr _Xpcr[0][0] _Xpcr[0][1] 00005592 00005596 00005598 0000559A 0000559E 000055A0 00001066 000010A0 00000100 00000002 00000016 00012000 00000002 00000016 00000400 00000120 CM41-00315-6, July 31, 2015 第 7 章 リンカの出力リスト ファイル 7.3 絶対アセンブルリストファイル Support Soft Ma nual アセンブルソースリスト 7.3.3 アセンブルソースリストはロケーション部分が絶対アドレス , オブジェクトコード部 分がリンク後の確定したコードで表示されます。 ■ アセンブルソースリストの形式 アセンブルソースリストの形式を図 7.3-7 に示します。 図 7.3-7 アセンブルソースリストの形式 - SOURCE LISTING - (モジュール名) SN LOC xx xxxxxxxx xxxxxxxxxxxxxxxxxxxxxx x OBJ *1 *2 *3 LLINE xxxxxxxxxxxx *4 *5 SOURCE x -------------- *6 *7 上に示す形式の 1 行目の部分をソースリストヘッダとよびます。ソースリストヘッダ はページごとに表示されます。 *1: セクション頭文字 セクション名の先頭 2 文字までを表示します。 *2: ロケーション 32 ビットのロケーション値を 16 進で表示します。 未使用関数削除機能により削除された関数は ,"--------" と表示します。 *3: オブジェクトコード リンク後の決定したオブジェクトコードを 16 進で表示します。1 行にすべて表示で きないときは複数行で表示します。 *4: オブジェクトコードの種類 オブジェクトコードに含まれる値の属性を以下の優先順位で表示します。 I : 外部参照値 S : セクション値 空白 : 絶対値 相対アセンブルリストに表示されている "R" は絶対アセンブルリストでは絶対値に 変換されるため表示されません。 *5: 行番号 行番号を 10 進 5 桁で表示します。 *6: プリプロセッサの処理状況表示 プリプロセッサ X: アセンブル対象外となった行 &: マクロ展開行 July 31, 2015, CM41-00315-6 203 第 7 章 リンカの出力リスト ファイル 7.3 絶対アセンブルリストファイル Su pp or t So ft Manu al *7: ソース行 ソースプログラムの 1 行を表示します。リスト 1 行におさまらない場合複数行で表 示します。 【例 1】 図 7.3-8 アセンブルソースリスト例 - SOURCE LISTING - (sample1) SN LOC OBJ LLINE IN 002CE724 IN 002CE724 IN 002CE726 CO 0000A280 CO 0000A280 --------<INIT>--------[2] 02 0020 0010 --------<CODE>--------AC043C 1025 1026 1027 1028 1029 SOURCE label .DATAB.B 2, 2 .DATA.H 32,16 .SECTION CODE, CODE MOVW RW4,#LS1 行番号 ソースプログラム オブジェクトコード:リンク後の確定した値で表示します。 ロケーションカウンタ:32ビットの絶対アドレスで表示します。 セクション頭文字:セクション名の先頭2文字までを表示します。 【例 2】 未使用関数削除機能により削除された関数のアセンブルソースリスト表示例を図 7.3-9 に示します。 削除された関数の LOC は ,"--------" と表示します。 図 7.3-9 削除された関数のアセンブルソースリスト例 SN LOC OBJ CO - - - - - - - - --<CODE_main_func2>-CO - - - - - - - CO - - - - - - - - 66 204 LLINE SOURCE 13 14 15 16 .section CODE_main_func2, CODE, align=1 .global _func2 _func2: RETP CM41-00315-6, July 31, 2015 第 7 章 リンカの出力リスト ファイル 7.3 絶対アセンブルリストファイル Support Soft Ma nual セクション情報リスト 7.3.4 セクション情報リストは , プログラム内で定義されるセクションについての情報を示 しているものです。 セクション情報リストは , 改ページを行い , 新しいページから表示します。 ■ セクション情報リストの形式 セクション情報リストの形式を図 7.3-10 に示します。 図 7.3-10 セクション情報リストの形式 F2MC-16 Family SOFTUNE Linker VxxLxx YYYY-MM-DD hh:mm:ss Page: xxxx - SECTION LISTING - (モジュール名) NO SECTION-NAME SIZE ATTRIBUTES xx --------セクション名-------- xxxxxxxx xxx xxx *1 *2 *3 *4 xxxx=xxxx *5 *1: セクション出現番号 0 から始まります。オブジェクトファイル中のセクション番号に相当します。 *2: セクション名 定義されたセクション名を出現順に表示します。 *3: セクションサイズ セクションのサイズを 16 進 32 ビット長で表示します。 *4: セクションタイプ セクションの種別を表示します。種別を以下に示します。 CODE : コードセクション DATA : データセクション CONST : 初期値付きデータセクション COMMON : 共有セクション STACK : スタックセクション DIR : direct セクション DIRCONST : 初期値付き direct セクション IO : IO セクション *5: セクション配置形式 相対アセンブルリストの表示をそのまま出力します。 アセンブル時に相対セクションならば ALIGN 値を表示します。絶対セクションな らば LOCATE 値を表示します。 July 31, 2015, CM41-00315-6 205 第 7 章 リンカの出力リスト ファイル 7.3 絶対アセンブルリストファイル Su pp or t So ft Manu al 【例】 図 7.3-11 セクション情報リスト例 F2MC-16 Family SOFTUNE Linker V30L11 2003-08-23 10:04:51 Page: 78 - SECTION LISTING - (sample1) NO 0 1 2 3 206 SECTION-NAME DATA .................... INIT .................... CONST .................... CODE .................... SIZE 00000004 0000001C 00000020 00000038 ATTRIBUTES DATA REL ALIGN=2 DATA REL ALIGN=2 CONST REL ALIGN=2 CODE REL ALIGN=2 CM41-00315-6, July 31, 2015 第 7 章 リンカの出力リスト ファイル 7.3 絶対アセンブルリストファイル Support 7.3.5 Soft Ma nual クロスリファレンスリスト クロスリファレンスリストは , プログラム内で記述される名前についての情報とその 定義と参照の関係を示すものです。 クロスリファレンスリストは , 改ページを行い , 新しいページから表示します。 ■ クロスリファレンスリストの形式 クロスリファレンスリストの形式を図 7.3-12 に示します。 図 7.3-12 クロスリファレンスリストの形式 F2MC-16 Family SOFTUNE Linker VxxLxx YYYY-MM-DD 10:04:51 Page: XXXX - CROSSREFERENCE LISTING - (モジュール名) NAME ATTRIB. VALUE --------名前-------*1 xxxx/xxxx *2 xxxxxxxx xxx xxx xxx *3 *4 DEFINITION/REFERENCE *1: 名前 シンボル名 , セクション名を , 大文字 , 小文字 , アルファベット順に表示します。 *2: シンボル種別 シンボルの種別を以下の形式で表示します。 ABS : 絶対シンボル REL : 相対シンボル ABS/EXP : 絶対シンボル ( 外部定義指定 ) REL/EXP : 相対シンボル ( 外部定義指定 ) IMP : 外部参照シンボル SECT/ABS : 絶対セクション SECT/REL : 相対セクション UNDEFINED : 未定義シンボル REGLIST : レジスタシンボル *3: 値 シンボルが値を持つ場合 , その値を 32 ビットの絶対アドレスで表示します。 未使用関数削除機能により削除された関数は ,"--------" と表示します。 *4: 定義 , 参照行番号 シンボルを定義している行と参照している行を示します。 シンボルが定義されている行番号の後ろにシャープ記号 "#" が付けられます。 July 31, 2015, CM41-00315-6 207 第 7 章 リンカの出力リスト ファイル 7.3 絶対アセンブルリストファイル Su pp or t So ft Manu al 【例 1】 図 7.3-13 クロスリファレンスリスト例 F2MC-16 Family SOFTUNE Linker V30L11 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 削除された関数のクロスリファレンスリスト例 F2MC-16 Family SOFTUNE Linker V30L16 2015-08-01 13:58:00 Page: 86 - CROSSREFERENCE LISTING - (sample) NAME CODE_main_func1 . . CODE_main_func2 . . CODE_main_main . . . 208 ATTRIB. SECT/REL SECT/REL SECT/REL VALUE 00008024 -------00008026 DEFINITION/REFERENCE 20 # 13 # 24 # CM41-00315-6, July 31, 2015 第 7 章 リンカの出力リスト ファイル 7.4 外部シンボル相互参照情報リストファイル 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 extsymxxlongxx+ longxx extsymunresolved n1m func2 Addr. 0x000CA8EE --- 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 4 5 6 11 12 14# ???? 0x00000000 EQU 0xFFFFFFFF Addr. 0x00000000 10 15 1 3 4 7 11 12 13 14 15# 2# ● Module(s) 1 から始まる通し番号を付けて , モジュール名を示します。 ● symbol シンボル名を表示します ( デフォルト最大 20 文字 )。 ● type/value type には以下があります。 • Addr. : アドレス • EQU : EQU シンボル • Bit : ビットシンボル • ???? : 未定義 valueは,値を示します。ビットシンボルの場合,括弧内にビットポジションを示します。 未使用関数削除機能により削除された関数は ,"0x00000000" と表示します。 ● module (No.) 定義 / 参照のあったモジュールを番号で示します。# 記号は定義モジュールです。 July 31, 2015, CM41-00315-6 209 第 7 章 リンカの出力リスト ファイル 7.5 ローカルシンボル情報リストファイル Su pp or t 7.5 So ft Manu al ローカルシンボル情報リストファイル ローカルシンボル情報リストファイルは , 絶対形式ロードモジュールを構成する個々 のモジュールごとのローカルシンボルを含んだ変数や関数などの情報を表示します。 このリストはデバッグ情報をもとに作成されますので , コンパイル , アセンブル時 に , -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 localstatic1 localstatic2 : === Module No.15(module015) === --- symbol --func2 Atable Extsym --- Kind --Func. g Var. s Var. s --- val --0x000C3F34 0x000012EE 0x000012F0 --- kind --Func g loc. s Var. g --- val ---------0xFFFFFFFC 0x00001342 ● Module(s) 1 から始まる通し番号を付けて , モジュール名を示します。 ● symbol シンボル名を表示します。 関数内で使用しているシンボルは , 3 カラム目から表示します。 シンボル名の先頭から最大 20 文字迄がリストの 1 行に表示されます。 ● Kind 以下のシンボル種別を表示します。 210 Var. : 変数 (C) Func. : 関数 (C) loc. : ローカル (C) CM41-00315-6, July 31, 2015 第 7 章 リンカの出力リスト ファイル 7.5 ローカルシンボル情報リストファイル Support Soft Ma nual Addr. : アドレス (ASM) EQU : EQU シンボル (ASM) bit : bit シンボル (ASM) ???? : 未定義 s : static(C) g : global(C) value は , 値を示します。 ● val シンボルの値を示します。 未使用関数削除機能により削除された関数は ,"--------" と表示します。 <注意事項> 構造体の詳細情報 ( メンバ名 ) や ,typedef 定義などは表示しません。 July 31, 2015, CM41-00315-6 211 第 7 章 リンカの出力リスト ファイル 7.6 セクション配置詳細情報リストファイル Su pp or t 7.6 So ft Manu al セクション配置詳細情報リストファイル セクション配置詳細リストファイルは , 絶対形式ロードモジュールを構成する個々の モジュールごとのセクション配置の情報を作成します。 マップリストファイルに 1 つにまとまったセクション全体のマップリストが表示さ れますが , さらに詳しいセクション配置情報を確認できます。 ■ セクション配置詳細情報リストファイル 図 7.6-1 にセクション配置詳細情報リストの出力形式を示します。 図 7.6-1 セクション配置詳細情報リストの出力形式 Section Mapping 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 Section Mapping List S.Addr. -E.Addr. 00000000-00000048 0000004A-000003E1 000003E4- . . . . . . . . 000003E4-00000643 00000644-00000743 Size 00000049 00000348 00000000 00000260 00000100 Section DATA P DATA P DATA P DATA P STACK P Type RW-RW-RW-RW-I RW-- Al 04 04 04 04 04 M.No. 1 2 3 4 4 000C0000-000C0441 000C0442-000C148B *000C148C-000C201D *000C2000-000C2203 000C3000-000C325F ----------------- 00000442 0000104A 00000B92 00000204 00000260 -------- CODE P CODE P CODE P CODE P DATA P CODE P R-XI R-XI R-XI R-XI R--I R--I 02 02 02 02 04 01 1 3 4 5 4 2 Sec.(Top 18) data data data init sectionnametoolong+ toolong code code code subprog1 #init CODE_main_func2 ● Module(s) 1 から始まる通し番号を付けて , モジュール名を示します。 ● S.Addr.-E.Addr. セクションの開始と終了アドレスです。 アドレスがほかと重なっているセクションは,開始アドレスの前に(*)が付加されます。 サイズ 0 のセクションの場合 , 終了アドレスの表示は「........」になります。 未使用関数削除機能により削除された関数のセクションの場合,"--------"と表示します。 ● Size 許されるアドレス空間をオーバフローしているセクションは , サイズの最大値 +1 を表 示します。 未使用関数削除機能により削除された関数のセクションの場合,"--------"と表示します。 212 CM41-00315-6, July 31, 2015 第 7 章 リンカの出力リスト ファイル 7.6 セクション配置詳細情報リストファイル Support Soft Ma nual ● Section セクションの内容種別を表示します。 CODE : プログラムセクション DATA : データセクション CONST : 初期値付きデータセクション STACK : スタックセクション DIR : direct セクション DIRCONST : 初期値付き direct セクション 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 へ転送される初期値 付きデータの配置されたセクションであることを示します。 July 31, 2015, CM41-00315-6 213 第 7 章 リンカの出力リスト ファイル 7.6 セクション配置詳細情報リストファイル Su pp or t 214 So ft Manu al CM41-00315-6, July 31, 2015 Support Soft Ma nual 第8章 リンカの制限事項 および Q &A この章では , リンカの制限事項や使用上の Q &A に ついて述べます。 8.1 リンカの制限事項 8.2 リンカの使用上の Q &A July 31, 2015, CM41-00315-6 215 第 8 章 リンカの制限事項 および Q &A 8.1 リンカの制限事項 Su pp or t 8.1 So ft Manu al リンカの制限事項 リンカを使用する上で , 処理可能な入力ファイル数やセクション数など , 特に制限値 は設けていません。しかし , 入力ファイル数およびライブラリファイル数にはオブ ジェクトフォーマット上に制限があります。 ■ リンカの制限事項 リンカは , 入力ファイル数やセクション数 , シンボル数などに処理制限を設けていませ ん。リンカの内部処理で , セクション名やシンボル名などの登録が必要になれば , 動的 にメモリ獲得を行い,リンカが実行に使用できるメモリを使いきってしまうまで処理可 能です。 処理限界に達すると , メモリ不足のメッセージを通知し , リンカの処理を終了します。 <注意事項> リンカが絶対形式アセンブルリストを出力する場合 , 以下の制限があります。 リンカ入力モジュール数 1048576 個 外部シンボルと静的 (static) シンボルの合計数 1048576 個 セクションの数 1048576 個 ■ リンカの予約シンボル リンカは , ROM → RAM 転送機能を用いたセクションごとに "_ROM_ セクション名 ", "_RAM_ セクション名 " でシンボルの自動生成を行います。 したがって , 同名のシンボルがユーザプログラム内で定義されていると , "W1327L: こ のシンボルは既に定義されています ( シンボル名 )" が発生します。ユーザは "_ROM_ セクション名 ", "_RAM_ セクション名 " でシンボル定義を行わないでください。 ■ オブジェクトファイルフォーマット上の制限事項 リンカでの制限は , 上記のとおりですが , オブジェクトファイルで管理できるシンボル 数などに以下の制限があります。 入力ファイル数 65535 個 セクション数 (1 ファイルあたり ) 65535 個 外部定義シンボル数 (1 ファイルあたり ) 65535 個 外部参照シンボル数 (1 ファイルあたり ) 65535 個 ( 注意事項 ) ここでのファイルは , オブジェクトファイルのことです。相対形式ロード モジュールファイルの場合は , それらを作成するときに入力したオブジェ クトファイルの総数として換算してください。 216 CM41-00315-6, July 31, 2015 第 8 章 リンカの制限事項 および Q &A 8.2 リンカの使用上の Q &A Support 8.2 Soft Ma nual リンカの使用上の Q &A リンカの使用に関する Question と Answer を示します。 ■ リンカの使用上の Q &A ● ワイルドカードの使用 Q. 入力するオブジェクトモジュールファイル数が非常に多いのですが , ワイルドカードは使 用できますか ? A. コマンドライン上では , 入力ファイルの指定にワイルドカードを使用すると , リンカが展開 して実行します。オプションファイル中にも入力ファイル名の指定ができますが , ここで もワイルドカードが利用できます。下記の例を参考にして , 使用してください。 例. flnk907s *.obj -o outfile.abs flnk907s 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 July 31, 2015, CM41-00315-6 217 第 8 章 リンカの制限事項 および Q &A 8.2 リンカの使用上の Q &A Su pp or t So ft Manu al ■ 初期値付変数の扱い Q. C コンパイラを使用した組込用のプログラム開発においては , 初期値付変数が生成されま すが , このデータはプログラム実行時に書換えられるため , 実行時は RAM 上になくてはな りません。 プログラム作成時の手順と注意事項を教えてください。 A. 組込用のプログラムでは , 初期値付変数は最初 ROM にあり , 参照するときには RAM にな くてはなりません。したがって , プログラムでの参照アドレスは RAM にし , アプリケー ション実行前に ROM から RAM への初期値データを転送するしくみを実現しておかない とプログラムの実行ができないことになります。 ・メモリモデルが small または medium の場合 F2MC-16 ファミリの C コンパイラが生成する初期値付変数は , 実行時に使用される , 名前 が INIT のセクションと , 初期値データが格納されている , 名前が DCONST のセクションに まとめられています。 したがって , プログラム作成中は , 初期値付変数の総バイト数と RAM のサイズに注意する 以外は特に気を付けることはありません。 なお , ユーザは , DCONST から INIT へ初期値データ転送を行うプログラムを記述する必要 があります。 例 1a に「初期値データ転送のプログラム例」を示します。 ・メモリモデルが compact または large の場合 F2MC-16 ファミリの C コンパイラが生成する初期値付変数は , モジュールごとに生成され , 実行時に使用される名前が "INIT_ モジュール名 " のセクションと , 初期値データが格納さ れている , 名前が "DCONST_ モジュール名 " のセクションにまとめられ , 名前が DTRANS のセクションにその情報が設定されます。 したがって , プログラム作成中は , 初期値付変数の総バイト数と RAM のサイズに注意する 以外は特に気を付けることはありません。 なお , ユーザは , DTRANS に設定されている情報を元に , 初期値データを転送行うプログラ ムを記述する必要があります。 例 1b に「初期値データ転送のプログラム例」を示します。 例 1a [ 初期値データ転送のプログラム例 : メモリモデルが small または medium の場合 ] .section DCONST, const …… ① DCONST_S .section INIT, data …… ② INIT_S .section start, code MOV A, #bnksym(DCONST_S) MOV ADB, A MOV A, #bnksym(INIT_S) MOV DTB, A MOVW RW0, #sizeof(INIT) MOVW A, #INIT_S MOVW A, #DCONST_S MOVSI DTB, ADB ① DCONST_S は , ROM 上の DCONST セクション ( 転送元 ) の先頭アドレスを示すシンボ ルです。 ② INIT_S は , RAM 上の INIT セクション ( 転送先 ) の先頭アドレスを示すシンボルです。 これらのシンボルは , セクションの先頭に定義する必要があるのでリンク時に , 初期値 データ転送のプログラムを 1 番最初にリンクする必要があります。 218 CM41-00315-6, July 31, 2015 第 8 章 リンカの制限事項 および Q &A 8.2 リンカの使用上の Q &A Support Soft Ma nual [ 初期値データ転送のプログラム例 : メモリモデルが compact または large の場合 ] .section DTRANS, const DTRANS_S 例 1b .section start, code MOV A, #bnksym(DTRANS_S) MOV DTB, A MOVW RW1, #DTRANS_S BRA LABEL2 LABEL1: MOVW A, @RW1+6 MOV USB, A MOVW A, @RW1+2 MOV ADB, A MOVW A, @RW1+4 MOVW A, @RW1 MOVW RW0, @RW1+8 MOVSI SPB, ADB MOVN A, #10 ADDW RW1, A LABEL2: MOVW A, RW1 SUBW A, #DTRANS_S CMPW A, #sizeof(DTRANS) BNE LABEL1 ① DTRANS_S は , ROM 上の DTRANS セクション ( 転送情報格納テーブル ) の先頭アドレ スを示すシンボルです。 このシンボルは , セクションの先頭に定義する必要があるのでリンク時に , 初期値デー タ転送のプログラムを 1 番最初にリンクする必要があります。 July 31, 2015, CM41-00315-6 219 第 8 章 リンカの制限事項 および Q &A 8.2 リンカの使用上の Q &A Su pp or t 220 So ft Manu al CM41-00315-6, July 31, 2015 Support 第 III 部 Soft Ma nual ライブラリアン編 ライブラリアンの仕様 , オプション , 出力リストなどについて説明します。 第 9 章 ライブラリアンの仕様 第 10 章 ライブラリアンの オプション 第 11 章 ライブラリアンの リストフォーマット 第 12 章 ライブラリアンの制限事項および Q &A July 31, 2015, CM41-00315-6 221 Su pp or t 222 So ft Manu al CM41-00315-6, July 31, 2015 Support Soft Ma nual 第9章 ライブラリアンの仕様 ライブラリアンの機能と各機能概要を説明します。 ライブラリファイルを作成するツールです。 9.1 ライブラリアンの機能 9.2 ライブラリアンの機能分類 9.3 ライブラリファイルの作成編集 9.4 ライブラリファイル内のモジュール抽出 9.5 ライブラリのデバッグ情報の削除 9.6 ライブラリファイルの内容チェックと表示 9.7 ライブラリアンでのオブジェクト混在 9.8 ライブラリアンでの関数呼び出しインタフェースの異な るオブジェクトの混在について July 31, 2015, CM41-00315-6 223 第 9 章 ライブラリアンの仕様 9.1 ライブラリアンの機能 Su pp or t 9.1 So ft Manu al ライブラリアンの機能 ライブラリアンは , アセンブラが出力した複数のオブジェクトモジュールをまとめ て , 1 つのライブラリファイルを作成するツールです。 ■ ライブラリアンの役割 プログラムを開発する場合は,ソースプログラムを機能単位などによりモジュール分割 し , モジュールごとにコンパイル , アセンブルを行います。 コンパイルおよびアセンブルした結果は , リンカによって 1 つに結合し目的とするプロ グラムを作成します。 ライブラリアンは,アセンブラが出力した複数のオブジェクトモジュールをまとめてラ イブラリファイルを作成するツールです。 プログラムを構成する複数のモジュールを,そのプログラム専用のライブラリファイル に登録することにより , 一括して管理できます。 よく利用するモジュールをまとめて登録し , 汎用ライブラリファイルを作成しておけ ば , ほかのプログラムへの流用が容易に行えます。C のライブラリは , このようにして 利用されている良い例です。 ライブラリファイルは , ライブラリアンによってモジュール単位に追加 , 削除 , 置換な どの編集が行えるため , 各モジュールを最新の状態で保管できます。 図 9.1-1 に , ライブラリアンの役割を示します。 224 CM41-00315-6, July 31, 2015 第 9 章 ライブラリアンの仕様 9.1 ライブラリアンの機能 Support Soft Ma nual 図 9.1-1 ライブラリアンの役割 アセンブラ 相対形式 オブジェクト (.obj) ライブラリアン ライブラリ (.lib) リンカ 絶対形式 オブジェクト (.abs) July 31, 2015, CM41-00315-6 225 第 9 章 ライブラリアンの仕様 9.2 ライブラリアンの機能分類 Su pp or t 9.2 So ft Manu al ライブラリアンの機能分類 ライブラリアンには , 以下の 6 つの機能があります。 • ライブラリファイルの新規作成 • ライブラリファイルの編集 • ライブラリファイル内のモジュール抽出 • デバッグ情報の削除 • ライブラリファイルの内容チェック • ライブラリファイルの内容表示 ■ ライブラリファイルの新規作成 オブジェクトモジュールファイルを入力ファイルとして,新規にライブラリファイルを 作成する機能です。 ■ ライブラリファイルの編集 既に作成されているライブラリファイルに,新たにオブジェクトモジュールを追加した り , 不要になったオブジェクトモジュールを削除したりする機能です。 また , ライブラリファイルに登録したモジュールに障害があることが判ったり , 機能の 変更を行ったりする場合 , 修正して差し替える必要があります。この作業は削除と追加 でもできますが , 置換を行う機能もあります。 ■ ライブラリファイル内のモジュール抽出 ライブラリファイルに登録されているオブジェクトモジュールを抽出し,オブジェクト モジュールファイルの形式に戻す機能です。 ■ デバッグ情報の削除 デバッグ情報付のオブジェクトモジュールが登録されているとき,デバッグ情報のみを 取り除いて登録しなおします。 ■ ライブラリファイルの内容チェック ライブラリファイルを作っているオブジェクトモジュールの集まりの中で,外部シンボ ルの定義 / 参照関係がきちんと解決されているかを調べます。 デバッグ情報付のオブジェクトモジュールが登録されているか否かを調べます。 ■ ライブラリファイルの内容表示 ライブラリファイルに登録されているモジュール名や,外部シンボルなどの情報をリス トファイルまたは標準出力に出力します。 226 CM41-00315-6, July 31, 2015 第 9 章 ライブラリアンの仕様 9.3 ライブラリファイルの作成編集 Support 9.3 Soft Ma nual ライブラリファイルの作成編集 アセンブラが出力した ( 複数の ) オブジェクトモジュールを 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 July 31, 2015, CM41-00315-6 227 第 9 章 ライブラリアンの仕様 9.3 ライブラリファイルの作成編集 Su pp or t So ft Manu al ● モジュールの削除 既存のライブラリファイルから不要になったモジュールを削除します ( 図 9.3-3 を 参照 )。 図 9.3-3 モジュールの削除 既存ライブラリ ファイル 編集後のライブラリ ファイル モジュールA モジュールA 更新 モジュールB モジュールB モジュールC モジュールD 削除 モジュールD ● モジュールの置換 既存のライブラリファイル内のモジュールを , 新しいモジュールと置き換えます ( 図 9.3-4 を参照 )。 図 9.3-4 モジュールの置換 既存ライブラリ ファイル 置換 モジュールB モジュールA モジュールB モジュールC 228 編集後のライブラリ ファイル モジュールA 更新 モジュールB モジュールC CM41-00315-6, July 31, 2015 第 9 章 ライブラリアンの仕様 9.4 ライブラリファイル内のモジュール抽出 Support 9.4 Soft Ma nual ライブラリファイル内のモジュール抽出 ライブラリファイルからモジュールを抽出し , オブジェクトモジュール形式ファイル に戻します。 ■ ライブラリファイル内のモジュール抽出 ライブラリファイルからモジュールを抽出し,オブジェクトモジュール形式ファイルに 戻します ( 図 9.4-1 を参照 )。 図 9.4-1 モジュールの抽出 既存ライブラリ ファイル オブジェクト ファイル モジュールA モジュールB B.obj 抽出 モジュールB モジュールC July 31, 2015, CM41-00315-6 229 第 9 章 ライブラリアンの仕様 9.5 ライブラリのデバッグ情報の削除 Su pp or t 9.5 So ft Manu al ライブラリのデバッグ情報の削除 ライブラリに登録されているオブジェクトモジュールにデバッグ情報ブロック付き のものがある場合 , デバッグ情報部を取り除いて登録しなおします。 ■ デバッグ情報の削除 ライブラリに登録されているオブジェクトモジュールにデバッグ情報ブロック付きの ものがある場合 , デバッグ情報部を取り除いて登録しなおします ( 図 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 230 デバッグ情報付で登録されたOM1とOM3 からデバッグ情報部を取り除く。 CM41-00315-6, July 31, 2015 第 9 章 ライブラリアンの仕様 9.6 ライブラリファイルの内容チェックと表示 Support 9.6 Soft Ma nual ライブラリファイルの内容チェックと表示 以下の 2 項目のチェックをします。 • ライブラリ内未解決外部参照シンボルの有無 • デバッグ情報付モジュールの有無 また , ライブラリファイルの作成 / 更新日時 , モジュールの登録日時および各モ ジュールで定義されている外部定義シンボルの名前などの情報を確認できます。 ■ ライブラリファイルの内容チェック 以下の 2 項目のチェックをします。 ● ライブラリ内未解決外部参照シンボルの有無 リンカでは,ライブラリから取り込んだモジュールに外部参照シンボルが含まれていた 場合 , まず始めに同じライブラリファイル中で定義シンボルを探します。 したがって , 1 つのライブラリファイル中では , あるモジュール中に外部参照シンボル がある場合,該当する外部定義シンボルを含むモジュールが同じライブラリファイル内 に必ず登録されていることが推奨されます。 1 つのライブラリファイル中での , 外部参照・定義シンボルの対応関係を調べ , 定義の ない参照シンボルが残っている場合に , 診断メッセージを出力します。 ● デバッグ情報付モジュールの有無 デバッグ情報付のオブジェクトモジュールが含まれている場合に,診断メッセージを出 力します。 -g オプション指定でのライブラリファイルへのモジュール登録処理では , オブジェク トモジュール中にデバッグ情報が含まれていても,取り除くことなくそのままライブラ リに登録します。 これは , ライブラリに登録したモジュールのデバッグを行うことを考慮したためです が , 動作確認が済めばデバッグ情報は必要がなくなります。 ■ ライブラリファイルの内容表示 ライブラリファイルのモジュール情報および外部定義シンボル情報などを,リストファ イルまたは標準出力へ編集出力します。 このリストにより , ライブラリファイルの作成 / 更新日時 , モジュールの登録日時 , お よび各モジュールで定義されている外部定義シンボルの名前などの情報を確認できま す。 表示内容については「第 , 11 章 ライブラリアンの リストフォーマット」で説明します。 July 31, 2015, CM41-00315-6 231 第 9 章 ライブラリアンの仕様 9.7 ライブラリアンでのオブジェクト混在 Su pp or t 9.7 So ft Manu al ライブラリアンでのオブジェクト混在 ライブラリアン (flib907s) では , -cpu オプションで指定したターゲット CPU が上位 互換 CPU の場合に , 下位 CPU 用に作られたオブジェクトやライブラリの混在が可 能です。 ■ ライブラリアンでのオブジェクト混在 ライブラリアンでは , -cpu オプションで指定したターゲット CPU が上位互換の場合に , 下位 CPU 用に作られたオブジェクトの混在が可能です。 オブジェクトの混在を行った場合に , ライブラリアンは , インフォメーションを出力し ます。 ■ -cpu オプションとオブジェクト混在可能 CPU 一覧 表 9.7-1 に , -cpu オプションと混在可能な下位 CPU 用のオブジェクト , ライブラリを示 します。 表 9.7-1 -cpu オプションとオブジェクト混在可能 CPU 一覧 オブジェクト作成時の -cpu オプション -cpu オプション 指定 F2MC-16L/16/16H F2MC-16LX F2MC-16FX F2MC-16F F2MC-16L/16/16H の CPU ◎ × × × F2MC-16LX の CPU ○ ◎ ○ × F2MC-16FX の CPU ○ ○ ◎ × F2MC-16F の CPU ○ ○ ○ ◎ ◎ : 同一ターゲットです。混在ではありません。 ○ : 混在可能ですが , ライブラリアンはインフォメーションを出力します。 × : 混在できません。ライブラリアンはエラーを出力します。 232 CM41-00315-6, July 31, 2015 第 9 章 ライブラリアンの仕様 9.8 ライブラリアンでの関数呼び出しインタフェースの異なる オブジェクトの混在について Support 9.8 Soft Ma nual ライブラリアンでの関数呼び出しインタフェースの異 なるオブジェクトの混在について ここでは , ライブラリアンでの関数呼び出しインタフェースの異なるオブジェクト の混在について説明します。 ■ ライブラリアンでの関数呼び出しインタフェースの異なるオブジェクトの混在 F2MC-16 ファミリでは , 以下のような関数呼び出しインタフェースをサポートしてい ます。 • 引数のスタック渡し ( 従来の関数呼び出しインタフェース ) • 引数のレジスタ (RW0, RW1) 渡し 引数のレジスタ渡しのオブジェクトと引数のスタック渡しのオブジェクトとでは引数 の受け渡し方法とレジスタの使用方法が異なります。そのため , 関数呼び出しインタ フェースの異なるオブジェクトを混在して使用するとプログラムが正しく動作しませ ん。 そのため , ライブラリアンでは , 引数のスタック渡しのオブジェクトと引数のレジスタ 渡しのオブジェクトは , ターゲット CPU が同じでも混在はできません。 ライブラリアンは , エラーを出力し処理を中断します。 (***E4410U:関数呼び出しインタフェースの異なるモジュールがあります ( ファイル 名 )) 関数呼び出しインタフェースが同じ場合 , 従来どおりターゲット CPU によるオブジェ クト混在チェックを行います。ターゲット CPU によるオブジェクト混在チェックは , 「9.7 ライブラリアンでのオブジェクト混在」を参照してください。 July 31, 2015, CM41-00315-6 233 第 9 章 ライブラリアンの仕様 9.8 ライブラリアンでの関数呼び出しインタフェースの異なる オブジェクトの混在について Su pp or t 234 So ft Manu al CM41-00315-6, July 31, 2015 Support Soft Ma nual 第 10 章 ライブラリアンの オプション この章では , ライブラリアンの各オプションの形式 , パラメータ , 注意事項などについて説明します。 10.1 ライブラリアンのオプション一覧 10.2 ライブラリアンのオプション詳細 July 31, 2015, CM41-00315-6 235 第 10 章 ライブラリアンの オプション 10.1 ライブラリアンのオプション一覧 Su pp or t 10.1 So ft Manu al ライブラリアンのオプション一覧 ライブラリアンの動作を細かく指示するために , オプションがあります。 ■ オプション一覧 オプション名と機能概要を , 表 10.1-1 に示します。 オプションに必要なパラメータや機能の詳細は,各オプションの説明を参照してくださ い。 表 10.1-1 ライブラリアンのオプション一覧 (1 / 2) 機能 ライブラリの作成,編集 に関するオプション モジュールの追加 ( 登録 ) -a モジュールの置換 ( 登録 ) -r モジュールの削除 -d モジュールの抽出 -x リストファイルの出力指定 -m リストファイルの出力抑止指定 出力リストに関する オプション その他のオプション 236 -Xm 備考 デフォルト リストファイルの詳細情報の出力指定 -dt s, d, r, a リスト 1 ページの行数指定 -pl デフォルト 60 リスト 1 行の桁数指定 -pw デフォルト 70 バックアップファイルの作成 ファイル検索 , 保護に 関するオプション オプション バックアップファイルの作成抑止 -b -Xb ライブラリファイルの内容検査 -c ファイル内容の最適化 -O デバッグ情報の出力指定 -g デバッグ情報の出力抑止指定 -Xg ターゲット CPU 指定 -cpu CPU 情報ファイル指定 -cif 引数のレジスタ渡し用ライブラリ出力指定 -rp 引数のスタック渡し用ライブラリ出力指定 -Xrp デフォルト 必須 デフォルト CM41-00315-6, July 31, 2015 第 10 章 ライブラリアンの オプション 10.1 ライブラリアンのオプション一覧 Support Soft Ma nual 表 10.1-1 ライブラリアンのオプション一覧 (2 / 2) 機能 オプション デフォルトオプションファイル読込み抑 止指定 -Xdof オプションファイル読込み指定 共通オプション -help 版数 / メッセージ出力指定 -V 終了メッセージ出力指定 終了メッセージ出力抑止指定 July 31, 2015, CM41-00315-6 -f ヘルプメッセージ表示指定 版数 / メッセージ出力抑止指定 備考 -XV デフォルト -cmsg -Xcmsg ワーニング発生時の終了コードを 1 にする 指定 -cwno ワーニング発生時の終了コードを 0 にする 指定 -Xcwno デフォルト デフォルト 237 第 10 章 ライブラリアンの オプション 10.2 ライブラリアンのオプション詳細 Su pp or t 10.2 So ft Manu al ライブラリアンのオプション詳細 ここでは , ライブラリアンの各オプションについて説明します。 なお , リンケージキットで共通のオプションは ,「第 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.19 引 数のスタック渡しのライブラリ出力指定オプション (-Xrp)」で説明します。 238 CM41-00315-6, July 31, 2015 第 10 章 ライブラリアンの オプション 10.2 ライブラリアンのオプション詳細 Support Soft Ma nual モジュールの追加 ( 登録 )(-a) 10.2.1 ライブラリファイルを新規に作成する場合 , 既にあるライブラリファイルにモジュー ルの追加を行う場合には -a オプションを使用します。 ■ モジュールの追加 ( 登録 )(-a) 【記述形式】 -a < オブジェクトモジュールファイル名 > [, … ] 【パラメータ】 < オブジェクトモジュールファイル名 > アセンブラが出力したオブジェクトモジュールファイル名 【説明】 ライブラリファイルへ登録するモジュールを内容とするファイル名を指定します。 ファイル名に拡張子の指定がないときは , ".obj" を拡張子とします。 登録しようとするモジュールと同じ名前のモジュールが既に登録されている場合 , エラーメッセージを出力しモジュールの登録処理は行いません。 同名の外部定義シンボルがある場合も同様に登録処理は行いません。 <オブジェクトモジュールファイル名 >の指定には,ワイルドカードが使用できます。 【例 1】 flib907s syslib.lib -a mod1.obj,mod2.obj,modx.obj オブジェクトモジュールファイル mod1.obj, mod2.obj, modx.obj をライブラリファイ ル syslib.lib に登録します。 • syslib.lib がないとき : 新規作成 • syslib.lib があるとき : 追加登録 【例 2】 flib907s syslib -a "mod*.obj" -a chksw カレントディレクトリ中の拡張子 .obj のオブジェクトモジュールファイルの内先頭 3 文字が mod であるものと , chksw.obj を登録します。 <注意事項> 登録可能なモジュール数は , 最大 65535 個です。 ワイルドカードを使用する場合は , < オブジェクトモジュールファイル名 > をカンマで区 切って指定できません。 上述の例のように複数の -a オプションに分けて指定してください。 ワイルドカード指定時は拡張子の補完は行わないため , 必ず拡張子まで指定してください。 ファイル名のワイルドカードの展開は , OS に依存しますので ,「付録 G OS による仕様 の相違点」を参考にしてください。 July 31, 2015, CM41-00315-6 239 第 10 章 ライブラリアンの オプション 10.2 ライブラリアンのオプション詳細 Su pp or t So ft Manu al モジュールの置換 ( 登録 )(-r) 10.2.2 既に作成しているライブラリファイル中のモジュールを新しい同名のモジュールと 置き換えます。 ■ モジュールの置換 ( 登録 )(-r) 【記述形式】 -r < オブジェクトモジュールファイル名 > [, … ] 【パラメータ】 < オブジェクトモジュールファイル名 > アセンブラが出力したオブジェクトモジュールファイル名 【説明】 指定したファイル内のモジュールと同名のモジュールが編集中のライブラリファ イルに存在する場合はモジュールの置換を行い , 存在しない場合には指定モジュー ルを登録します。 ファイル名に拡張子の指定がないときは ".obj" が拡張子となります。 <オブジェクトモジュールファイル名 >の指定には,ワイルドカードが使用できます。 【例 1】 flib907s syslib.obj -r loadx.obj,loady.obj loadx.obj および loady.obj 内の 2 つのモジュールを , 編集中のライブラリファイル内 の同名モジュールと置き換えます。 ライブラリファイル中に同名モジュールがない場合には , 追加登録されます。 【例 2】 flib907s syslib.lib -r "load?.obj" カレントディレクトリ中の拡張子 .obj のオブジェクトモジュールファイルのうち先 頭 4 文字が load であり , その後ろに任意の 1 文字が付くファイル内のモジュールを 置換えの対象とします。 <注意事項> ワイルドカードを使用する場合は , < オブジェクトモジュールファイル名 > をカンマで区 切って指定できません。複数の -r オプションに分けて指定してください。 ワイルドカード指定時は拡張子の補完は行わないため , 必ず拡張子まで指定してくださ い。 ファイル名のワイルドカードの展開は , OS に依存しますので ,「付録 G OS による仕様 の相違点」を参考にしてください。 240 CM41-00315-6, July 31, 2015 第 10 章 ライブラリアンの オプション 10.2 ライブラリアンのオプション詳細 Support Soft Ma nual モジュールの削除 (-d) 10.2.3 ライブラリファイルから不要になったモジュールを取り除きます。 ■ モジュールの削除 (-d) 【記述形式】 -d < モジュール名 > [, … ] 【パラメータ】 < モジュール名 > 削除するモジュール名 【説明】 指定したモジュールをライブラリファイルから削除します。 ここでの指定は , ファイル名ではなくモジュール名のため注意してください。 【例】 flib907s syslib.lib -d inchar,outchar syslib.lib から , 2 つのモジュール inchar と outchar を削除します。 <注意事項> アセンブラの疑似命令でモジュール名の指定ができますが , 特別な理由がない限りオブ ジェクトモジュールファイル名とモジュール名は同じにしてください。異なる名前にする と , ライブラリの編集作業においては誤りの原因になります。 ファイル名とモジュール名を同じにするためには , 英数字とアンダバーだけを使用した ファイル名を用います。 モジュール名を確認したい場合は , リスト出力オプション (-m) を使用してリストファイル の先頭部分に出力されるモジュール名を参照してください。 July 31, 2015, CM41-00315-6 241 第 10 章 ライブラリアンの オプション 10.2 ライブラリアンのオプション詳細 Su pp or t So ft Manu al モジュールの抽出 (-x) 10.2.4 ライブラリファイルからモジュールを抽出し , 登録前のオブジェクトモジュールファ イルに戻します。 ■ モジュールの抽出 (-x) 【記述形式】 -x < モジュール名 > [, < オブジェクトモジュールファイル名 >] 【パラメータ】 < モジュール名 > 抽出するモジュール名 < オブジェクトモジュールファイル名 > 抽出モジュールの出力ファイル名 【説明】 指定したモジュールをライブラリファイルから抽出します。 抽出したモジュールは , 登録前と同じ形式のオブジェクトモジュールファイルにな ります。 < オブジェクトモジュールファイル名 > の指定を省略すると , < モジュール名 > に 拡張子 ".obj" を付けた名前でファイルを作ります。 【例】 flib907s syslib -x add flib907s syslib.lib -x add,add.obj 既存ライブラリファイルから , モジュール add を抽出し add.obj ファイルを作成しま す。 flib907s syslib -x add,add.o 既存ライブラリファイルから,モジュールaddを抽出しadd.oファイルを作成します。 <注意事項> -x オプションは , 抽出したいモジュールの数だけ指定できます。 同じモジュール名が指定された場合は , 後に指定した方が有効になります。以下の例では , add.obj は作成されず , addfunc.obj のみ作成されます。 flib907s syslib -x add -x add,addfunc.obj 242 CM41-00315-6, July 31, 2015 第 10 章 ライブラリアンの オプション 10.2 ライブラリアンのオプション詳細 Support 10.2.5 Soft Ma nual リストファイルの出力指定 (-m) ライブラリファイルに登録されているモジュール名や外部定義シンボル名などの情 報リスト出力を行います。 ■ リストファイルの出力指定 (-m) 【記述形式】 -m { < リストファイル名 > | - } 【パラメータ】 < リストファイル名 > 出力するライブラリアンリストのファイル名を指定。リストを標準出力に出力する 場合にはハイフン (-) を指定。 【説明】 ライブラリファイルに登録されているモジュール名や外部定義シンボル名などの 情報リスト出力を行います。 < リストファイル名 > に拡張子指定がない場合 , ".mp2" を付加します。 本オプションにより出力される情報は登録されているモジュール名だけですが , 後 述の -dt オプションで , より詳しい情報を表示させることができます。 リスト内容は , ライブラリアンの処理終了時の状態を示します。 ほかに編集作業に関するオプションがない場合には , 指定したライブラリファイル の内容がリストされます。 ライブラリファイルの内容をリストに残さずに画面上で確認したい場合には , パラ メータにハイフンを指定します。 【例 1】 flib907s syslib.lib -m libx.mp2 syslib.lib に登録されているモジュール名リストを libx.mp2 に出力します。 【例 2】 flib907s syslib -a obj1,obj2 -m libx.lis obj1.obj と obj2.obj のモジュールを追加した結果作成された syslib.lib の内容を libx.lis に出力します。 【例 3】 flib907s syslib -m syslib.lib に登録されているモジュール名リストを標準出力に出力します。 July 31, 2015, CM41-00315-6 243 第 10 章 ライブラリアンの オプション 10.2 ライブラリアンのオプション詳細 Su pp or t 10.2.6 So ft Manu al リストファイルの出力抑止指定 (-Xm) ライブラリアンにリストファイルを出力しないことを指示します。 ■ リストファイルの出力抑止指定 (-Xm) 【記述形式】 -Xm 【パラメータ】 なし 【説明】 リストファイルの出力の抑止を行います。 -m オプションの後に -Xm オプションを指定すると , -m オプションを無効にするこ とができます。 【例】 flib907s syslib.lib -m libx.mp2 -Xm リストファイルの作成は行わないようにします。 244 CM41-00315-6, July 31, 2015 第 10 章 ライブラリアンの オプション 10.2 ライブラリアンのオプション詳細 Support 10.2.7 Soft Ma nual リストファイルの詳細情報の出力指定 (-dt) -m オプションでリスト出力を行いますが , 登録モジュール名の一覧を表示するだけ です。 ライブラリに登録されている個々のモジュールごとにセクションや外部シンボルの 情報を得たいときまたはライブラリ全体の外部定義 / 外部参照シンボル情報を得たい ときは , -dt オプションを使用します。 ■ リストファイルの詳細情報の出力指定 (-dt) 【記述形式】 -dt < 情報種別 > [, < 情報種別 >] ••• 【パラメータ】 < 情報種別 > s: モジュールごとにセクション名とそのサイズを出力します。 d: モジュールごとに外部定義シンボルを出力します。 r: モジュールごとに外部参照シンボルを出力します。 a: ライブラリ全体の外部定義シンボルと ,ライブラリ内で未解決の外部参照シンボ ルを出力します。 【説明】 本オプション指定がないとき , リストファイルには登録されているモジュール名だ けが出力されます。本オプションは , さらに詳しい情報を得たいときに使用します。 < 情報種別 > の指定は省略できません。 < 情報種別 > 指定は , 複数のキーワードをカンマで区切って指定できます。 -m オプションが指定されていない場合 , 本オプション指定は無効になります。 【例 1】 flib907s syslib.lib -m libx.mp2 -dt r,s 外部参照シンボルおよびセクション名を含むリストを libx.mp2 に出力します。 【例 2】 flib907s syslib -m libx.lis -dt s,d,r,a ライブラリアンが出力可能なすべての情報を libx.lis に出力します。 July 31, 2015, CM41-00315-6 245 第 10 章 ライブラリアンの オプション 10.2 ライブラリアンのオプション詳細 Su pp or t 10.2.8 So ft Manu al リスト 1 ページの行数指定 (-pl) リスト 1 ページの出力行数をデフォルト (60 行 ) から変更するときに使用します。 ■ リスト 1 ページの行数指定 (-pl) 【記述形式】 -pl < 行数 > ( デフォルト : 60) 【パラメータ】 < 行数 > 0, 20 ~ 255 の範囲で指定する。 【説明】 リストファイルの 1 ページに印字する行数を指定します。 0 指定は , リストファイル出力時 , ページ制御を行わないようにします。 -m オプションが指定されていない場合 , 本オプション指定は無効になります。 【例 1】 flib907s syslib.lib -m libx.mp2 -pl 40 リスト 1 ページの行数を , 40 にします。 【例 2】 flib907s syslib.lib -m - -dt s -pl 0 改ページなしで , セクション情報を付加したリストを標準出力に出力します。 246 CM41-00315-6, July 31, 2015 第 10 章 ライブラリアンの オプション 10.2 ライブラリアンのオプション詳細 Support Soft Ma nual リスト 1 行の桁数指定 (-pw) 10.2.9 リスト 1 行の出力桁数をデフォルト (70 文字 ) から変更するときに使用します。 ■ リスト 1 行の桁数指定 (-pw) 【記述形式】 -pw < 桁数 > ( デフォルト : 70) 【パラメータ】 < 桁数 > 70 ~ 1023 の範囲で指定する。 【説明】 リストファイルの 1 行に印字する桁数を指定します。 長いシンボル名 , セクション名 , モジュール名がデフォルト桁数では 2 行以上になっ て見にくい場合に使用してください。 デフォルト表示桁数 (70) のとき , 1 行内で表示できる文字数は以下のとおりです。 • モジュール名 : 22 文字 • セクション名 : 20 文字 • シンボル名 : 29 文字 -m オプションが指定されていない場合 , 本オプション指定は無効になります。 【例】 flib907s syslib.lib -m libx.mp2 -pw 80 リスト 1 行の桁数を , 80 に変更します。 この場合 , 1 行内で表示できる各名称の文字数は以下のようになります。 • モジュール名 : 32 文字 • セクション名 : 30 文字 • シンボル名 : 34 文字 <注意事項> ライブラリアンのリストは , -pw オプションでの桁数指定により , 1 行内で表示するモ ジュール名 , セクション名 , シンボル名の文字数が変わります。 シンボル名は , 1 行を左右 2 つのフィールドに分けて表示するため , 最も長いシンボル名 の 2 倍 +12 が見やすいリストになります。 July 31, 2015, CM41-00315-6 247 第 10 章 ライブラリアンの オプション 10.2 ライブラリアンのオプション詳細 Su pp or t 10.2.10 So ft Manu al バックアップファイルの作成 (-b) ライブラリファイルの編集処理を行うと , ライブラリファイルの内容が変更されま す。 編集前のライブラリファイルのバックアップを残したい場合に -b オプションを指定 します。 ■ バックアップファイルの作成 (-b) 【記述形式】 -b 【パラメータ】 なし 【説明】 ライブラリアンは , モジュールの追加や削除など編集作業を行うと , ファイル内容 が変更されるため元の内容は失われます。 このオプションにより , 元のファイルのバックアップファイルを作成します。 バックアップファイルの拡張子は , ".bak" になります。 バックアップは 1 世代分しか行わないため , 大事なライブラリファイルを編集する 場合は , ユーザ自身でバックアップをとってからライブラリアンを使用してくださ い。 【例】 flib907s syslib -a putc.obj -b 編集前の syslib.lib を編集後 syslib.bak として残します。 編集後の syslib.lib は , putc.obj と getc.obj が追加されます。 248 CM41-00315-6, July 31, 2015 第 10 章 ライブラリアンの オプション 10.2 ライブラリアンのオプション詳細 Support 10.2.11 Soft Ma nual バックアップファイルの作成抑止 (-Xb) バックアップ取得オプションである -b を取り消すときに -Xb オプションを使用しま す。 ■ バックアップファイルの作成抑止 (-Xb) 【記述形式】 ( デフォルト ) -Xb 【パラメータ】 なし 【説明】 ライブラリアンは , デフォルト設定で編集対象のライブラリファイルのバックアッ プは作成しません。これは , -Xb オプションを指定したのと同じです。 本オプションは , -b オプションの指定を無効にする場合に指定します。 【例】 以下の 3 つの指定は , すべて同じ処理を行います。 flib907s syslib -a putc.obj,getc.obj flib907s syslib -a putc.obj,getc.obj -Xb flib907s syslib -b -a putc.obj,getc.obj -Xb 編集前の syslib.lib は , 編集後削除されます。 編集後の syslib.lib には , putc.obj と getc.obj が付加されています。 July 31, 2015, CM41-00315-6 249 第 10 章 ライブラリアンの オプション 10.2 ライブラリアンのオプション詳細 Su pp or t So ft Manu al ライブラリファイルの内容検査 (-c) 10.2.12 ライブラリファイルの内容の簡単な検査を行うオプションです。 ■ ライブラリファイルの内容検査 (-c) 【記述形式】 -c 【パラメータ】 なし 【説明】 以下の 2 項目の検査を行います。 ● ライブラリ内未解決外部参照シンボルの有無 リンカは,ライブラリから取り込んだモジュールに未解決の外部参照シンボルが含まれ ていた場合,同じライブラリファイル中に定義シンボルを含むモジュールがあることを 前提にして , 同じライブラリファイル中でのシンボル解決を優先します。 1 つのライブラリファイル中での , 外部参照 / 定義シンボルの対応関係を調べ , 該当す る外部定義シンボルのない外部参照シンボルが含まれる場合に,メッセージを出力しま す。 ● デバッグ情報付モジュールの有無 -g オプションを指定したライブラリファイルへのモジュール登録処理では , オブジェ クトモジュール中のデバッグ情報を取り除くことなくそのままライブラリに登録しま す。 これは , ライブラリに登録したモジュールのデバッグを行うことを考慮したためです。 動作確認が済めばデバッグ情報は必要がなくなります。 ライブラリ中にデバッグ情報付きのモジュールが登録されているか否かを確認し,もし あればメッセージを出力します。 【例】 flib907s syslib.lib -c syslib.lib の内容をチェックします。 <注意事項> ライブラリファイルの内容検査 (-c) オプションは , ほかのオプションと共に指定できませ ん。 上記の指定例のように , 単独で指定してください。 250 CM41-00315-6, July 31, 2015 第 10 章 ライブラリアンの オプション 10.2 ライブラリアンのオプション詳細 Support Soft Ma nual ファイル内容の最適化 (-O) 10.2.13 ライブラリに登録されているオブジェクトモジュールにデバッグ情報があれば取り 除きます。 ■ ファイル内容の最適化 (-O) 【記述形式】 -O 【パラメータ】 なし 【説明】 ライブラリに登録されているオブジェクトモジュールにデバッグ情報ブロック付 きのものがある場合 , デバッグ情報部を取り除いて登録しなおします。 オブジェクトモジュールファイル中では , デバッグ情報がかなり大きな部分を占め ていますので , デバッグ情報を削除することでライブラリファイルのサイズをかな り小さくすることができます。 【例】 flib907s syslib -O syslib.lib ファイルから , デバッグ情報を削除します。 <注意事項> ファイル内容の最適化 (-O) オプションは , ほかのオプションと共に指定できません。 上記の指定例のように , 単独で指定してください。 July 31, 2015, CM41-00315-6 251 第 10 章 ライブラリアンの オプション 10.2 ライブラリアンのオプション詳細 Su pp or t 10.2.14 So ft Manu al デバッグ情報の出力指定 (-g) ライブラリファイルにオブジェクトモジュールを登録するときに , デバッグ情報を削 除しないようにするときに指定します。 ■ デバッグ情報の出力指定 (-g) 【記述形式】 -g 【パラメータ】 なし 【説明】 ライブラリアンは , 通常オブジェクトモジュールにデバッグ情報が含まれている場 合 , デバッグ情報を取り去ってライブラリファイルに登録しますが , 本オプション によりデバッグ情報の有無に かかわらず指定されたオブジェクトをそのまま登録 します。 ライブラリ作成後にデバッグ情報を削除したい場合には , 最適化オプション -O を使 用してライブラリファイルを作り直すことができます。 【例】 flib907s syslib.lib -a inchar,outchar -g inchar.obj, outchar.obj に , デバッグ情報が含まれていても削除せずにライブラリファ イルに登録します。 252 CM41-00315-6, July 31, 2015 第 10 章 ライブラリアンの オプション 10.2 ライブラリアンのオプション詳細 Support 10.2.15 Soft Ma nual デバッグ情報の出力抑止指定 (-Xg) デバッグ情報の未削除指定オプションである -g を取り消すときに -Xg オプションを 使用します。 ■ デバッグ情報の出力抑止指定 (-Xg) 【記述形式】 ( デフォルト ) - Xg 【パラメータ】 なし 【説明】 ライブラリアンは , 通常オブジェクトモジュールにデバッグ情報が含まれている場 合 , デバッグ情報を取り去ってライブラリファイルに登録します。これは , この -Xg オプションを指定したのと同じです。 本オプションは , -g オプションの指定を打ち消すために指定します。 最適化オプション -O を使用した場合 , ライブラリ作成後にデバッグ情報を一括して 削除することもできます。 【例】 以下の 3 つの指定は , すべて同じ処理を行います。 flib907s syslib.lib -a inchar,outchar flib907s syslib.lib -a inchar,outchar -Xg flib907s syslib.lib -g -a inchar,outchar -Xg inchar.obj, outchar.obj に含まれているデバッグ情報は , ライブラリファイルに登録し ません。 July 31, 2015, CM41-00315-6 253 第 10 章 ライブラリアンの オプション 10.2 ライブラリアンのオプション詳細 Su pp or t So ft Manu al ターゲット CPU 指定 (-cpu) 10.2.16 ターゲット CPU の指定を行います。 ライブラリファイル化を行うプログラムのターゲット CPU を MB 番号で指定しま す。 ■ ターゲット CPU 指定 (-cpu) 【記述形式】 -cpu <MB 番号 > 【パラメータ】 <MB 番号 > ターゲット CPU の MB 番号 【説明】 ライブラリファイル化を行うプログラムのターゲット CPU を MB 番号で指定しま す。 【例】 flib907s syslib.lib -a inchar,outchar -cpu MB90600A flib907s syslib.lib -a inchar,outchar -cpu MB90700 <注意事項> ライブラリ化処理を実行する際には , 本オプションでターゲット CPU の指定が必要です。 このオプションの省略はできません。 254 CM41-00315-6, July 31, 2015 第 10 章 ライブラリアンの オプション 10.2 ライブラリアンのオプション詳細 Support Soft Ma nual CPU 情報ファイル指定 (-cif) 10.2.17 ライブラリアンで使用する CPU 情報ファイルを指定します。 ■ CPU 情報ファイル指定 (-cif) 【記述形式】 -cif <CPU 情報ファイル名 > 【パラメータ】 <CPU 情報ファイル名 > ライブラリアンで使用する CPU 情報ファイル 【説明】 ライブラリアンで使用する CPU 情報ファイルを指定します。 【例】 flib907s syslib.lib -a inchar,outchar -cpu MB90704 -cif C:\Softune\lib\907\cpu_info\MB90704.csv <注意事項> SOFTUNE Tools は , CPU 情報ファイルを参照して , CPU に関する情報を取得します。 関連するツール間で異なる CPU 情報ファイルを参照した場合 , 作成するプログラムに問 題が発生することがあります。 SOFTUNE Tools に標準で添付されている CPU 情報ファイルは , 以下の場所にあります。 インストール先ディレクトリ \lib\907\907.csv コンパイラ・アセンブラパックを異なるディレクトリにインストールし , SOFTUNE Workbench を使用せずにコンパイラ , アセンブラおよびリンケージキットを使用する場 合, 各ツールに対して同一のCPU情報ファイルを参照するように-cifで指定してください。 July 31, 2015, CM41-00315-6 255 第 10 章 ライブラリアンの オプション 10.2 ライブラリアンのオプション詳細 Su pp or t 10.2.18 So ft Manu al 引数のレジスタ渡しのライブラリ出力指定オプショ ン (-rp) -rp オプションは , 関数呼び出しインタフェースが引数のレジスタ渡しのライブラリ を作成 / 編集する際に指定するオプションです。 -rp, -Xrp どちらの指定もない場合は , 関数呼び出しインタフェースが引数のスタッ ク渡しのライブラリものとして処理します。 ■ 引数のレジスタ渡しのライブラリ出力指定オプション (-rp) 【記述形式】 -rp 【パラメータ】 なし 【説明】 -rp オプションは , 関数呼び出しインタフェースが引数のレジスタ渡しのライブラリ を作成 / 編集する際に指定するオプションです。 -rp オプションは , 以下のような場合に指定します。 • 引数のレジスタ渡しのオブジェクトをライブラリに登録する場合 • 引数のレジスタ渡しのオブジェクトが登録されたライブラリを編集する場合 【例】 flib907s sample.lib -cpu mb90704 -a mod1.obj mod2.obj -rp 256 CM41-00315-6, July 31, 2015 第 10 章 ライブラリアンの オプション 10.2 ライブラリアンのオプション詳細 Support Soft Ma nual <注意事項> • 以下の場合 , ライブラリアンはエラー(***E4410U: 関数呼び出しインタフェースの異な るモジュールがあります ( ファイル名 )) を出力します。本エラーが発生した場合 , -rp オプション指定または , 入力オブジェクト , 編集対象ライブラリの関数呼び出しインタ フェースを修正してください。 - -rp オプション指定時 , 引数のスタック渡しのオブジェクトを登録しようとした場合 - -rp オプション指定時 , 引数のスタック渡しのオブジェクトが登録されたライブラリ を編集しようとした場合 - -Xrpオプション指定時,引数のレジスタ渡しのオブジェクトを登録しようとした場合 - -Xrp オプション指定時 , 引数のレジスタ渡しのオブジェクトが登録されたライブラ リを編集しようとした場合 • 引数のレジスタ渡しのオブジェクトと引数のスタック渡しのオブジェクトの混在リン クはできません。 そのため , ライブラリを作成 / 管理する際 , 以下のことをお勧めします。 - ライブラリファイル名に登録されているオブジェクトの関数呼び出しインタフェー スが区別できる名前を指定する。 例 ) 引数のスタック渡しのライブラリ:sample_stk.lib 引数のレジスタ渡しのライブラリ:sample_rg.lib July 31, 2015, CM41-00315-6 257 第 10 章 ライブラリアンの オプション 10.2 ライブラリアンのオプション詳細 Su pp or t So ft Manu al 引数のスタック渡しのライブラリ出力指定オプショ ン (-Xrp) 10.2.19 -Xrp オプションは , 関数呼び出しインタフェースが引数のスタック渡しのライブラ リを作成 / 編集する際に指定するオプションです。 -rp, -Xrp どちらの指定もない場合は , 関数呼び出しインタフェースが引数のスタッ ク渡しのライブラリを作成 / 編集するものとしてライブラリを作成 / 編集します。 ■ 引数のスタック渡しのライブラリ出力指定オプション (-Xrp) 【記述形式】 ( デフォルト ) -Xrp 【パラメータ】 なし 【説明】 関数呼び出しインタフェースが引数のスタック渡しのライブラリを作成 / 編集する 際に指定するオプションです。 -Xrp オプションを指定すると , 既に指定されている -rp オプションを無効にします。 -Xrp オプションは , 以下のような場合に指定します。 • 引数のスタック渡しのオブジェクトをライブラリに登録する場合 • 引数のスタック渡しのオブジェクトが登録されたライブラリを編集する場合 【例】 flib907s sample.lib -cpu mb90704 -a mod1.obj mod2.obj -rp -Xrp <注意事項> 以下の場合 , ライブラリアンはエラー (***E4410U: 関数呼び出しインタフェースの異なる モジュールがあります ( ファイル名 )) を出力します。本エラーが発生した場合 , -rp オプ ション指定または , 入力オブジェクト , 編集対象ライブラリの関数呼び出しインタフェー スを修正してください。 • -rp オプション指定時 , 引数のスタック渡しのオブジェクトを登録しようとした場合 • -rp オプション指定時 , 引数のスタック渡しのオブジェクトが登録されたライブラリを 編集しようとした場合 • -Xrp オプション指定時 , 引数のレジスタ渡しのオブジェクトを登録しようとした場合 • -Xrp オプション指定時 , 引数のレジスタ渡しのオブジェクトが登録されたライブラリ を編集しようとした場合 258 CM41-00315-6, July 31, 2015 Support Soft Ma nual 第 11 章 ライブラリアンの リストフォーマット この章では , ライブラリアンのリストファイルの構 成について説明します。 11.1 リストファイルの情報内容 11.2 モジュール名リスト 11.3 モジュールごとの詳細情報 11.4 ライブラリ内の外部定義 / 参照シンボル情報 July 31, 2015, CM41-00315-6 259 第 11 章 ライブラリアンの リストフォーマット 11.1 リストファイルの情報内容 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指定 . . . <モジュール全体の外部定義/参照シンボル名情報> 260 -dt a指定 CM41-00315-6, July 31, 2015 第 11 章 ライブラリアンの リストフォーマット 11.2 モジュール名リスト Support Soft Ma nual モジュール名リスト 11.2 ライブラリアンのデフォルトリスト出力 (-dt オプション指定なしのとき ) では , ライ ブラリファイル中の登録モジュール名だけを表示します。 ■ リスト出力概要 -m オプションが指定された場合 , ライブラリファイルの内容を表示します。 ライブラリアンリストの形式は , 図 11.2-1 のとおりです。 図 11.2-1 ライブラリアンリストの形式 ( デフォルト ) *1 *2 *3 *4 *5 *6 *7 Library File Name : sample.lib Number of Modules : 3 Number of Symbols : 9 Librarian Name : F2MC-16 Family SOFTUNE Librarian Library Creation Date 2003-09-09 11:47:59 Library Revision Date 2003-09-09 11:47:59 [ Module Name ] ModuleA ModuleB ModuleC [ Entry Date ] 2003-03-01 14:23:50 1997-04-17 09:41:15 2003-03-01 14:23:50 [ Creation Date ] 2003-03-19 10:03:21 1996-10-07 20:18:58 2003-02-23 15:15:00 *1: ライブラリファイル名 *2: ライブラリファイルに登録されているモジュールの数 (10 進数 ) *3: ライブラリファイルに登録されている外部定義シンボルの数 (10 進数 ) *4: ライブラリアンの名前 *5: ライブラリファイルを最初に作成した日時 *6: ライブラリファイルの最新更新日時……新規作成時は *5 と同じ *7: Module Name ] 登録モジュール名 ( アルファベット順 ) モジュール名は ( ページ幅 -48) 文字を 1 行に表示します。デフォルト (-pw 70) の場 合は , 22 文字です。 [ Entry Date ] モジュールがライブラリファイルに登録された日時 [ Creation Date ] モジュールが作成された日時 July 31, 2015, CM41-00315-6 261 第 11 章 ライブラリアンの リストフォーマット 11.3 モジュールごとの詳細情報 Su pp or t So ft Manu al モジュールごとの詳細情報 11.3 モジュールごとの詳細情報には以下の 3 つがあり , 出力指示は -dt オプションで行い ます。 • セクション情報 (-dt s) • 外部定義シンボル情報 (-dt d) • 外部参照シンボル情報 (-dt r) ■ リスト出力概要 図 11.3-1 にライブラリアンリストの形式 ( 詳細指定時 ) を示します。 図 11.3-1 ライブラリアンリストの形式 ( 詳細指定時 ) Library File Name : sample.lib Number of Modules : 3 Number of Symbols : 3 Librarian Name : F2MC-16 Family SOFTUNE Librarian Library Creation Date 2003-09-09 11:57:57 Library Revision Date 2003-09-09 11:57:57 *1 *2 *3 [ Module Name ] ModuleA -- Section -code data -- Ext_Ref Symbol(s) -p_text -- Ext_Def Symbol(s) -prtext [ Module Name ] [ Entry Date ] 2003-09-09 11:57:57 -- Type -CODE DATA [ Creation Date ] 2003-09-09 11:57:34 -- Size -0x000002E8 0x0000006A [ Entry Date ] [ Creation Date ] tx_len : : *1: -dt オプションの s パラメータにより出力されます。 モジュール内のセクションの情報です。 セクション名 , セクション属性 , サイズを表示します。 セクション名は , ( ページ幅 -50) 文字を 1 行に表示します。 *2: -dt オプションの r パラメータにより出力されます。 モジュール内の外部参照シンボル名を 1 行に 2 シンボルずつ表示します。 *3: -dt オプションの d パラメータにより出力されます。 モジュール内の外部定義シンボル名を 1 行に 2 シンボルずつ表示します。 外部シンボル名は (( ページ幅 -12)/2) 文字を 1 行に表示します。 262 CM41-00315-6, July 31, 2015 第 11 章 ライブラリアンの リストフォーマット 11.4 ライブラリ内の外部定義 / 参照シンボル情報 Support Soft Ma nual ライブラリ内の外部定義 / 参照シンボル情報 11.4 ライブラリファイルに登録されているすべてのモジュールに関する , 外部定義シンボ ルおよび外部参照シンボルの情報を表示できます。出力指示は -dt オプションで行い ます。(-dt a) ■ リスト出力概要 図 11.4-1 にライブラリアンリストの形式 ( 詳細指定時 ) を示します。 図 11.4-1 ライブラリアンリストの形式 ( 詳細指定時 ) Library File Name : sample.lib Number of Modules : 3 Number of Symbols : 3 Librarian Name : F2MC-16 Family SOFTUNE Librarian Library Creation Date 2003-09-09 12:58:30 Library Revision Date 2003-09-09 12:58:30 [ Module Name ] ModuleA *1 *2 : : [ ALL Ext_Def Symbol(s) ] chr1get prtext [ ALL Ext_Ref Symbol(s) ] chr_get [ Entry Date ] 2003-09-09 12:58:30 [ Creation Date ] 2003-09-09 11:57:34 p_text tx_len *1: -dt オプションの a パラメータにより出力されます。 ライブラリファイル内全体の外部定義シンボル名の一覧を , 1 行に 2 シン ボルずつ 表示します。 *2: ライブラリファイル内で対応する外部定義シンボルのない外部参照シンボルの一 覧を , 1 行に 2 シンボルずつ表示します。 外部シンボル名は (( ページ幅 -12)/2) 文字を 1 行に表示します。 July 31, 2015, CM41-00315-6 263 第 11 章 ライブラリアンの リストフォーマット 11.4 ライブラリ内の外部定義 / 参照シンボル情報 Su pp or t 264 So ft Manu al CM41-00315-6, July 31, 2015 Support Soft Ma nual 第 12 章 ライブラリアンの制限事項 および Q &A この章では , ライブラリアンの制限事項や使用上の Q &A について述べます。 12.1 ライブラリアンの制限事項 12.2 ライブラリアンの使用上の Q &A July 31, 2015, CM41-00315-6 265 第 12 章 ライブラリアンの制限事項および Q &A 12.1 ライブラリアンの制限事項 Su pp or t 12.1 So ft Manu al ライブラリアンの制限事項 ライブラリアンを使用する上で , 1 つのライブラリファイルに登録可能なモジュール 数や外部シンボル数の制限や , 注意しなくてはならない事柄を説明します。 ■ ライブラリアンの制限事項 処理能力に関しては , 以下の 2 つの制限事項があります。 • 1 つのライブラリファイルに登録可能なモジュール数 : 最大 65535 • 1 つのライブラリファイルに登録可能な外部定義シンボル数 : 最大 65535 ■ 必要なディスク容量についての注意 既存のライブラリファイルの編集を行い , バックアップファイルを作成するときは , 新 しく作成するライブラリファイルと既存ライブラリが格納できるだけの十分な空き容 量があることを確認のうえ編集作業を行ってください。 ■ オプションの指定に関する注意 ライブラリファイルの内容検査 (-c) およびファイル内容の最適化 (-O) の両オプション は , それぞれ単独で指定してください。 ほかのオプションとの併用はできません。 266 CM41-00315-6, July 31, 2015 第 12 章 ライブラリアンの制限事項および Q &A 12.2 ライブラリアンの使用上の Q &A Support 12.2 Soft Ma nual ライブラリアンの使用上の Q &A ライブラリアンの使用上に関する Question と Answer を示します。 ■ ライブラリファイルの作成に関する Q &A Q. ライブラリファイルに登録できるファイル形式は何ですか ? A. アセンブラが出力する , オブジェクトモジュールです。 これは , デフォルト拡張子が , (.obj) で作成されるファイルです。 例. fasm907s file1 → file1.obj 出力 fasm907s file2 → file2.obj 出力 flib907s libfile -a file1.obj,file2.obj Q. 自作したライブラリファイルからの取り込みモジュールに障害があるようなので,デバッグし たいのですがシンボル情報が使えません。 A. デバッグ情報付きのオブジェクトモジュールでないと,デバッグ時にシンボル情報の使用はで きません。 デバッグ情報付きで作成したオブジェクトモジュールに差し替える必要があります。 デバッグの必要がありそうなオブジェクトモジュールをライブラリ化して使用する場合には, あらかじめデバッグ情報付で登録 (-g オプション ) しておくと良いでしょう。 デバッグが終了した時点で , デバッグ情報を削除 (-O オプション ) できます。 例. fasm907s file1 -g flib907s libfile -r file1 -g flib907s libfile -O Q. 汎用に作成したサブルーチンをライブラリにまとめたいと思っていますがオブジェクトモ ジュールの数が非常に多く , 全部のファイル名を指定するのが面倒です。 A. オブジェクトモジュールのライブラリへの追加 (-a オプション ) と置換 (-r オプション ) には , ワイルドカード指定ができます。 例. flib907s July 31, 2015, CM41-00315-6 → デバッグ情報付 → デバッグ情報付 → デバッグ情報無 file1.obj 出力 libfile.lib 出力 libfile.lib 出力 libfile -a "*.obj" → 拡張子 ".obj" のファイルをすべて登録 267 第 12 章 ライブラリアンの制限事項および Q &A 12.2 ライブラリアンの使用上の Q &A Su pp or t 268 So ft Manu al Q. 以前に作成したライブラリファイルの内容がわからなくなってしまいました。どんなモ ジュールが登録されているか調べる方法がありますか ? A. ライブラリファイルの内容は , -m オプションで見ることができます。"-m ファイル名 " を指定 すれば , デフォルト拡張子が (.mp2) のリストファイルが作成されます。 -m オプションで出力される内容では情報不足の場合 , -dt オプションを併用してより詳細な情 報を得ることができます。 例. flib907s libfile -m libdoc → リストファイル libdoc.mp2 flib907s libfile -m libdoc -dt a,s → 詳細情報を含んだリストファイル libdoc.mp2 出力 出力 Q. ライブラリファイルの内容を確認したいのですが , ファイルにとるほどではないので , 画面上 に出力することはできますか ? A. -m オプションのファイル名指定のかわりにハイフン (-) を指定すると標準出力への表示にな ります。 例. flib907s flib907s flib907s Q. ライブラリファイルの内容をリスト出力したところ , 文字数の多いシンボル名の表示が 2 行 に渡ってしまい見にくいのですが ? A. -pw オプションで , 1 行に表示する桁数を増やしてください。デフォルトは 70 桁なので , 2 行 目に表示された部分が4文字ならその倍の8を加えた78桁以上を指定すれば1行に収まります。 例. flib907s Q. ライブラリファイル中のモジュールを新しいモジュールと入れ替えたところ幾つか間違えて 登録してしまったことに気づきました。置換前のライブラリファイルもバックアップをとっ ておらず , 復旧するのに苦労しました。 A. ライブラリアンでは , -b オプションの指定により 1 世代分のバックアップファイル ( 拡張子 ".bak") を作成できます。 ライブラリファイルの編集を行う場合は,予め元のライブラリのバックアップをとっておくこ とが望ましいですが , 必要に応じて -b オプションを指定してください。 例. flib907s libfile -m libfile -m - -dt a,s libfile -a file3.obj -m - libfile -m libdoc -pw 80 libfile -r file1,file2 -d mod4 -b CM41-00315-6, July 31, 2015 Support 第 IV 部 Soft Ma nual オブジェクト形式コンバータ編 この部では , オブジェクト形式コンバータの種類 , オプション一覧 , 機能説明 , オブ ジェクト形式の変換について説明します。 第 13 章 オブジェクト形式 コンバータの仕様 第 14 章 オブジェクト形式コンバータの共通オプション 第 15 章 ロードモジュールコンバータ (f2ms, f2hs, f2is, f2es) 第 16 章 フォーマットアジャスタ (m2ms, h2hs) 第 17 章 バイナリコンバータ (m2bs, h2bs) 第 18 章 その他のコンバータ 第 19 章 オブジェクト形式コンバータの制限事項および Q &A July 31, 2015, CM41-00315-6 269 Su pp or t 270 So ft Manu al CM41-00315-6, July 31, 2015 Support Soft Ma nual 第 13 章 オブジェクト形式 コンバータの仕様 この章では , オブジェクト形式コンバータの概要と 種類を説明します。 オブジェクト形式コンバータはオブジェクト形式 を変換するツールです。 13.1 オブジェクト形式コンバータの概要 13.2 オブジェクト形式コンバータの種類 13.3 オブジェクト形式コンバータの実行 July 31, 2015, CM41-00315-6 271 第 13 章 オブジェクト形式 コンバータの仕様 13.1 オブジェクト形式コンバータの概要 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形式のみ) (.mhx) 272 (.hex) (.ihx) (.ehx) CM41-00315-6, July 31, 2015 第 13 章 オブジェクト形式 コンバータの仕様 13.1 オブジェクト形式コンバータの概要 Support Soft Ma nual ● アジャスタ , バイナリコンバータ アジャスタは S フォーマットや HEX フォーマットの整形をする際に , バイナリコン バータは S フォーマットや HEX フォーマットをバイナリに変換する際に用います。 図 13.1-2 に , アジャスタ , バイナリコンバータの入出力を示します。 図 13.1-2 アジャスタ , バイナリコンバータの入出力 Sフォーマット HEXフォーマット (.mhx) (.hex) m2ms m2bs 整形済み Sフォーマット バイナリ フォーマット (.ahx) h2hs h2bs 整形済み HEXフォーマット (.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) July 31, 2015, CM41-00315-6 (.mhx) (.mhx) 273 第 13 章 オブジェクト形式 コンバータの仕様 13.2 オブジェクト形式コンバータの種類 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)」を参照してください。 274 CM41-00315-6, July 31, 2015 第 13 章 オブジェクト形式 コンバータの仕様 13.2 オブジェクト形式コンバータの種類 Support Soft Ma nual ■ その他のコンバータの種類 オブジェクト形式の変換は , 表 13.2-2 のコマンドで行います。 表 13.2-2 その他のコンバータのコンバート内容 コマンド名 July 31, 2015, CM41-00315-6 コ ン バ― ト 内容 m2is S フォーマット → HEX8 フォーマット m2es S フォーマット → HEX16 フォーマット i2ms HEX8 フォーマット → S フォーマット e2ms HEX16 フォーマット → S フォーマット 275 第 13 章 オブジェクト形式 コンバータの仕様 13.3 オブジェクト形式コンバータの実行 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 オプションが必要です。 詳しくは「16.3.2 出力範囲指定 (-ran)」を参照してください。 【例】 f2ms sample リンカ出力の絶対形式ロードモジュール sample.abs を入力して , S フォーマットの sample.mhx ファイルを出力します。 276 CM41-00315-6, July 31, 2015 Support Soft Ma nual 第 14 章 オブジェクト形式コンバー タの共通オプション この章では , オブジェクト形式コンバータの各共通 オプションについて詳しく説明します。 14.1 オブジェクト形式コンバータのオプション一覧 14.2 出力ファイル名の変更 (-o) 14.3 パディング (-p) July 31, 2015, CM41-00315-6 277 第 14 章 オブジェクト形式コンバータの共通オプション 14.1 オブジェクト形式コンバータのオプション一覧 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 -help 278 CM41-00315-6, July 31, 2015 第 14 章 オブジェクト形式コンバータの共通オプション 14.2 出力ファイル名の変更 (-o) 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】 (-o オプションを使用しない例 ) f2ms ccp903 絶対形式ロードモジュール 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 に変更します。 July 31, 2015, CM41-00315-6 279 第 14 章 オブジェクト形式コンバータの共通オプション 14.2 出力ファイル名の変更 (-o) 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" となります。 280 CM41-00315-6, July 31, 2015 第 14 章 オブジェクト形式コンバータの共通オプション 14.3 パディング (-p) 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 フォーマットにコンバートします。 July 31, 2015, CM41-00315-6 281 第 14 章 オブジェクト形式コンバータの共通オプション 14.3 パディング (-p) Su pp or t So ft Manu al その際 , データが存在しない箇所を , 0xEF というデータで埋めます。 【例 3】 m2bs ccp903 -ran 0x0,0x1FFF -p 0xEF S フォーマットから , 0x0 番地から 0x1FFF 番地までの範囲をバイナリイメージにコ ンバートします。 その際 , S フォーマットにデータが存在しない箇所を , 0xEF というデータで埋めま す。 282 CM41-00315-6, July 31, 2015 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 フォーマット変換 ) July 31, 2015, CM41-00315-6 283 第 15 章 ロードモジュールコンバータ (f2ms, f2hs, f2is, f2es) 15.1 ロードモジュールコンバータの概要 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 (.abs) f2hs 連携 m2ms h2hs 整形済み Sフォーマット (.mhx) 284 連携 整形済み HEXフォーマット (.hex) CM41-00315-6, July 31, 2015 第 15 章 ロードモジュールコンバータ (f2ms, f2hs, f2is, f2es) 15.2 ロードモジュールコンバータのオプション一覧 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 * 共通オプション スタートアドレスレコード出力指定 オプションファイル読込み指定 終了メッセージ表示指定 終了メッセージ表示抑止指定 July 31, 2015, CM41-00315-6 285 第 15 章 ロードモジュールコンバータ (f2ms, f2hs, f2is, f2es) 15.3 ロードモジュールコンバータのオプション詳細 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)」の説明を参照してください。 286 CM41-00315-6, July 31, 2015 第 15 章 ロードモジュールコンバータ (f2ms, f2hs, f2is, f2es) 15.3 ロードモジュールコンバータのオプション詳細 Support 15.3.1 Soft Ma nual 出力 S フォーマット指定 (-S1/-S2/-S3) データを出力する際に使用するフォーマットを指定します。 ■ 出力 S フォーマット指定 (-S1/-S2/-S3) 【記述形式】 -S1 -S2 -S3 【パラメータ】 なし 【説明】 データ内容を出力する際に使用するフォーマットを指定します。 f2ms は , データ内容を S1 レコード , S2 レコード , S3 レコードを用いて出力します。 -S1, -S2, -S3 の指定は後指定が有効になります。また , -S1, -S2, -S3 のオプションが 指定されない場合 , f2ms はデータのアドレスに合わせ , S1/S2/S3 の混在で出力しま す。 【注意】 本オプションによる指定と , 出力範囲が矛盾する場合 , エラーを出力し処理を行い ません。 -S1,-S2,-S3 いずれも指定しない場合 , ターミネータレコードは S9 レコードになり , 実行開始アドレスは 0x0000 になります。 本オプションの指定により , 出力に使用するターミネータレコード (S9 レコード , S8 レコード , S7 レコード ) も変化します ( 表 15.3-1 参照 )。 表 15.3-1 出力 S フォーマット指定一覧 指定 出力可能範囲 ターミネータ レコード -S1 0x0000 ~ 0xFFFF S9 レコード -S2 0x000000 ~ 0xFFFFFF S8 レコード -S3 0x00000000 ~ 0xFFFFFFFF S7 レコード 指定なし 0x0000 ~ 0xFFFFFFFF S9 レコード July 31, 2015, CM41-00315-6 備考 実行開始アドレスは 0x0000 287 第 15 章 ロードモジュールコンバータ (f2ms, f2hs, f2is, f2es) 15.3 ロードモジュールコンバータのオプション詳細 Su pp or t 15.3.2 So ft Manu al 出力 HEX フォーマット指定 (-I16/-I20/-I32) データを出力する際に使用する 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 フォーマット指定一覧 288 指定 出力可能範囲 備考 -I16 0x0000 ~ 0xFFFF HEX8 フォーマット -I20 0x00000 ~ 0xFFFFF HEX16 フォーマット -I32 0x00000000 ~ 0xFFFFFFFF HEX32 フォーマット CM41-00315-6, July 31, 2015 第 15 章 ロードモジュールコンバータ (f2ms, f2hs, f2is, f2es) 15.3 ロードモジュールコンバータのオプション詳細 Support 15.3.3 Soft Ma nual スタートアドレスレコード出力指定 (-entry) データを出力する際にスタートセグメントアドレスレコードまたはスタートリニア アドレスレコードを出力します。 本オプションは f2hs でのみ指定できます。 ■ スタートアドレスレコード出力指定 (-entry) 【記述形式】 -entry 【パラメータ】 なし 【説明】 スタートセグメントアドレスレコードまたは , スタートリニアアドレスレコードの 出力を行います。 入力ファイルにスタートアドレス情報がない場合は , 警告 (W1504U: 入力ファイル にスタートアドレス情報がありません ) を出力します。 スタートアドレスレコードは , 出力 HEX フォーマット指定オプション (-I16/-I20/I32) の指定と , 入力データ範囲によって以下のように出力されます。 表 15.3-3 HEX フォーマットスタートアドレスレコードの出力 出力 HEX フォーマット指定 -I16 -I20 入力データ範囲 出力するスタートアドレスレコード - 警告 (W1503U: -I16 指定時に -entry オプ ションが指定されました ) が出力され , ス タートアドレスレコードは出力しませ ん。 0x0 ~ 0xFFFFF スタートセグメントアドレスレコード 0x0 ~ 0xFFFFF スタートセグメントアドレスレコード 0x100000~0xFFFFFFFF スタートリニアアドレスレコード -I32 出力 HEX フォーマット指定オプションを省略した場合は , HEX32 フォーマット出 力指定オプション (-I32) 指定時と同じ処理になります。 【例】 f2hs ccp903.abs -entry -I16 HEX8 フォーマット出力オプション (-I16) が指定されているため , 警告 (W1503U: I16 指定時に -entry オプションが指定されました ) が出力され , スタートアドレスレ コードは出力されません。 f2hs ccp903.abs -entry -I20 スタートセグメントアドレスレコードを出力します。 f2hs ccp903.abs -entry -I32 July 31, 2015, CM41-00315-6 289 第 15 章 ロードモジュールコンバータ (f2ms, f2hs, f2is, f2es) 15.3 ロードモジュールコンバータのオプション詳細 Su pp or t So ft Manu al 入力ファイルのデータ範囲が 0x0 ~ 0xFFFFF のとき , スタートセグメントアドレス レコードを出力します。 入力ファイルのデータ範囲が 0x100000 ~ 0xFFFFFFFF のとき , スタートリニアアド レスレコードを出力します。 290 CM41-00315-6, July 31, 2015 第 15 章 ロードモジュールコンバータ (f2ms, f2hs, f2is, f2es) 15.3 ロードモジュールコンバータのオプション詳細 Support 15.3.4 Soft Ma nual スタートアドレスレコード出力抑止指定 (-Xentry) スタートセグメントアドレスレコードまたはスタートリニアアドレスレコードの出 力を抑止します。 本オプションは f2hs でのみ指定できます。 ■ スタートアドレスレコード出力抑止指定 (-Xentry) 【記述形式】 -Xentry 【パラメータ】 なし 【説明】 スタートセグメントアドレスレコードまたは , スタートリニアアドレスレコードの 出力の出力を抑止します。 本オプションは, スタートアドレスレコード出力指定 (-entry)を取り消すときに使用 します。 【例】 f2hs -entry ccp903.abs -I20 -Xentry スタートアドレスレコード出力指定 (-entry) を取り消し , スタートアドレスレコード は出力されません。 July 31, 2015, CM41-00315-6 291 第 15 章 ロードモジュールコンバータ (f2ms, f2hs, f2is, f2es) 15.3 ロードモジュールコンバータのオプション詳細 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 というデータで埋めます。 292 CM41-00315-6, July 31, 2015 第 15 章 ロードモジュールコンバータ (f2ms, f2hs, f2is, f2es) 15.4 f2ms( 絶対形式ロードモジュール→ S フォーマット変換 ) Support 15.4 Soft Ma nual f2ms( 絶対形式ロードモジュール→ S フォーマット変換 ) リンカ出力の絶対形式ロードモジュールを S フォーマットに形式変換します。 0 ~ 0xFFFFFFFF 番地のデータが変換対象になります。 f2ms コマンドは , SOFTUNE V5/V6 系の絶対形式ロードモジュールも処理できま す。 ■ 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 July 31, 2015, CM41-00315-6 293 第 15 章 ロードモジュールコンバータ (f2ms, f2hs, f2is, f2es) 15.5 f2hs( 絶対形式ロードモジュール→ HEX フォーマット変 換) Su pp or t 15.5 So ft Manu al f2hs( 絶対形式ロードモジュール→ HEX フォーマット変換 ) リンカ出力の絶対形式ロードモジュールを HEX フォーマットに形式変換します。 0 ~ 0xFFFFFFFF 番地のデータが変換対象になります。 f2hs コマンドは , SOFTUNE V5/V6 系の絶対形式ロードモジュールも処理できます。 ■ 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 294 CM41-00315-6, July 31, 2015 第 15 章 ロードモジュールコンバータ (f2ms, f2hs, f2is, f2es) 15.6 f2is( 絶対形式ロードモジュール→ HEX8 フォーマット変 換 ), f2es( 絶対形式ロードモジュール→ HEX16 フォーマット変 Support 15.6 Soft Ma nual f2is( 絶対形式ロードモジュール→ HEX8 フォーマット変換 ), f2es( 絶対形式ロードモジュール→ HEX16 フォーマット変換 ) f2is はリンカ出力の絶対形式ロードモジュールを HEX8 フォーマットに , f2es はリ ンカ出力の絶対形式ロードモジュールを HEX16 フォーマットに変換します。 f2is では 0 ~ 0xFFFF 番地のデータが変換対象に , f2es では 0 ~ 0xFFFFF 番地の データが変換対象になります。 f2is, f2es コマンドは , SOFTUNE V5/V6 系の絶対形式ロードモジュールも処理でき ます。 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 フォーマットファイルは , データレコードとトレーラレコードで構成されます。 July 31, 2015, CM41-00315-6 295 第 15 章 ロードモジュールコンバータ (f2ms, f2hs, f2is, f2es) 15.6 f2is( 絶対形式ロードモジュール→ HEX8 フォーマット変 換 ), f2es( 絶対形式ロードモジュール→ HEX16 フォーマット変 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 フォーマットのファイルの先頭には , スタートアドレスレコードが作成されます。 296 CM41-00315-6, July 31, 2015 Support Soft Ma nual 第 16 章 フォーマットアジャスタ (m2ms, h2hs) この章では , フォーマットアジャスタの変換形式を 説明します。 16.1 フォーマットアジャスタの概要 16.2 フォーマットアジャスタのオプション一覧 16.3 フォーマットアジャスタのオプション詳細 July 31, 2015, CM41-00315-6 297 第 16 章 フォーマットアジャスタ (m2ms, h2hs) 16.1 フォーマットアジャスタの概要 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フォーマット ファイル 整形済み Sフォーマット h2hs (.hex) 整形済み HEXフォーマット ファイル (.aix) 入力するフォーマット中にデータが存在しない箇所は , 0xFF( デフォルト値 ) で埋めら れます。 出力するファイルはメモリ内容をそのまま S フォーマットや HEX フォーマットに変換 したものと同じです。 入力ファイル中にデータが存在しない個所を特定の値で埋めるには , パディングオプ ション (-p オプション ) を用います。オプションの使用方法については ,「14.3 パディ ング (-p)」を参照してください。 298 CM41-00315-6, July 31, 2015 第 16 章 フォーマットアジャスタ (m2ms, h2hs) 16.1 フォーマットアジャスタの概要 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 を設定します。 July 31, 2015, CM41-00315-6 299 第 16 章 フォーマットアジャスタ (m2ms, h2hs) 16.1 フォーマットアジャスタの概要 Su pp or t So ft Manu al 以下にアドレス範囲 0xff0008 ~ 0xff004a を , レコード長 16 で変換した例を示します。 図 16.1-3 フォーマットアジャスタの動作例 変換前 S007000054455354B8 S20CFF00000109572C160C2D2CEC S209FF0008020406080A D1 S20FFF000D020406080A0C0E10121416 60 S20CFF00180109572C160C2D2C D4 S209FF0020020406080A B9 S20FFF0025020406080A0C0E10121416 48 S20CFF00300109572C160C2D2C BC S209FF0038020406080A A1 S20FFF003D020406080A0C0E10121416 30 S20CFF00480109572C160C2D2CA4 S209FF0050020406080A89 S20FFF0055020406080A0C0E1012141618 S804000000FB S007000054455354B8 S30D00FF0008020406080A020406 C1 S31500FF0010080A0C0E101214160109572C160C2D2C 5B S31500FF0020020406080A020406080A0C0E10121416 29 S31500FF00300109572C160C2D2C020406080A020406 89 S31500FF0040080A0C0E10121416010957 D7 S70500000000FA 変換後 300 CM41-00315-6, July 31, 2015 第 16 章 フォーマットアジャスタ (m2ms, h2hs) 16.2 フォーマットアジャスタのオプション一覧 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 -ST デフォルトオプションファイル読込み抑止指定 -Xdof * 共通オプション -f * 共通オプション ヘルプメッセージ表示指定 -help * 共通オプション 版数 / メッセージ出力指定 -V * 共通オプション 版数 / メッセージ出力抑止 -XV * 共通オプション -cmsg * 共通オプション -Xcmsg * 共通オプション ワーニング発生時の終了コードを 1 にする指定 -cwno * 共通オプション ワーニング発生時の終了コードを 0 にする指定 -Xcwno * 共通オプション オプションファイル読込み指定 終了メッセージ表示指定 終了メッセージ表示抑止指定 July 31, 2015, CM41-00315-6 301 第 16 章 フォーマットアジャスタ (m2ms, h2hs) 16.3 フォーマットアジャスタのオプション詳細 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) 出力する際に使用するレコードの開始アドレスを変更します。詳細は「 16.3.5 開始ア ドレス変更指定 (-ST)」の説明を参照してください。 302 CM41-00315-6, July 31, 2015 第 16 章 フォーマットアジャスタ (m2ms, h2hs) 16.3 フォーマットアジャスタのオプション詳細 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 ( パラメータをすべて省略した例 ) データ長の指定が省略されているのでエラーになります。 July 31, 2015, CM41-00315-6 303 第 16 章 フォーマットアジャスタ (m2ms, h2hs) 16.3 フォーマットアジャスタのオプション詳細 Su pp or t 16.3.2 So ft Manu al 出力範囲指定 (-ran) 整形する範囲をアドレスで指定します。 ■ 出力範囲指定 (-ran) 【記述形式】 -ran < 開始アドレス > [, < 終了アドレス >] 【パラメータ】 < 開始アドレス > 開始アドレス < 終了アドレス > 終了アドレス 【説明】 整形する範囲をアドレスで指定します。 コンバート実行時は , 当オプションの指定が必ず必要です。 開始アドレス , 終了アドレスは , 0x0 ~ 0xffffffff の範囲で指定します。 終了アドレスの指定は省略できます。終了アドレスを省略した場合 , 開始アドレス から 64KB 分を整形します。 変換サイズが 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 ( パラメータをすべて省略した例 ) 開始アドレスが省略されているのでエラーになります。 304 CM41-00315-6, July 31, 2015 第 16 章 フォーマットアジャスタ (m2ms, h2hs) 16.3 フォーマットアジャスタのオプション詳細 Support 16.3.3 Soft Ma nual 出力 S フォーマット指定 (-S1/-S2/-S3) データを出力する際に使用する S フォーマットを指定します。 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 出力レコード指定一覧 July 31, 2015, CM41-00315-6 指定 出力可能範囲 ターミネータレコード -S1 0x0000 ~ 0xFFFF S9 レコード -S2 0x000000 ~ 0xFFFFFF S8 レコード -S3 0x00000000 ~ 0xFFFFFFFF S7 レコード 備考 ( デフォルト ) 305 第 16 章 フォーマットアジャスタ (m2ms, h2hs) 16.3 フォーマットアジャスタのオプション詳細 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 レコードを用いて整形出力されます 306 CM41-00315-6, July 31, 2015 第 16 章 フォーマットアジャスタ (m2ms, h2hs) 16.3 フォーマットアジャスタのオプション詳細 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 フォーマットを用いて整形出力されます。 July 31, 2015, CM41-00315-6 307 第 16 章 フォーマットアジャスタ (m2ms, h2hs) 16.3 フォーマットアジャスタのオプション詳細 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 ( パラメータを省略した例 ) 開始アドレスが省略されているのでエラーになります。 308 CM41-00315-6, July 31, 2015 Support Soft Ma nual 第 17 章 バイナリコンバータ (m2bs, h2bs) この章では , バイナリコンバータの変換形式を説明 します。 17.1 バイナリコンバータの概要 17.2 バイナリコンバータのオプション一覧 17.3 バイナリコンバータのオプション詳細 July 31, 2015, CM41-00315-6 309 第 17 章 バイナリコンバータ (m2bs, h2bs) 17.1 バイナリコンバータの概要 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 (.mhx) HEXフォーマット ファイル (.hex) バイナリデータ ファイル (.bin) h2bs バイナリデータ ファイル (.bin) <注意事項> 入力ファイル中にデータが存在しない箇所は , 0xFF( デフォルト値 ) で埋められ , 出力さ れるバイナリデータファイルはメモリ内容をそのままファイルへ出力したものと同じで す。 入力ファイル中にデータが存在しない箇所を特定の値で埋めるには , パディングオプショ ン (-p) を用います。オプションの使用方法については ,「14.3 パディング (-p)」を参照し てください。 出力バイナリファイルのデフォルト拡張子は , .bin です。なお , スプリットモード使用時 は無条件に拡張子 .bxx(xx は 2 桁の番号 (01 ~ 16)) が付加されます。 310 CM41-00315-6, July 31, 2015 第 17 章 バイナリコンバータ (m2bs, h2bs) 17.1 バイナリコンバータの概要 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 July 31, 2015, CM41-00315-6 0x03 0x05 0x07 0x09 311 第 17 章 バイナリコンバータ (m2bs, h2bs) 17.2 バイナリコンバータのオプション一覧 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 * 共通オプション オプションファイル読込み指定 終了メッセージ表示指定 終了メッセージ表示抑止指定 312 必須 CM41-00315-6, July 31, 2015 第 17 章 バイナリコンバータ (m2bs, h2bs) 17.3 バイナリコンバータのオプション詳細 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)」の説明を参照してください。 July 31, 2015, CM41-00315-6 313 第 17 章 バイナリコンバータ (m2bs, h2bs) 17.3 バイナリコンバータのオプション詳細 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 ( パラメータをすべて省略した例 ) 開始アドレスが省略されているのでエラーになります。 314 CM41-00315-6, July 31, 2015 第 17 章 バイナリコンバータ (m2bs, h2bs) 17.3 バイナリコンバータのオプション詳細 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 つのバイナリ イメージファイルにすることも可能です。ただし , 本オプションは , あくまで複数 のファイルに , データを交互に出力するためのものです。65K バイトの範囲を 32K バイトづつの 2 つに分割するようにパラメータ指定を行うと , 最後の 1K バイトは 前半のファイルに出力されます。 本オプションを指定すると出力ファイルに拡張子として".bxx"(xxは2桁の番号01~ 16) が無条件に付加されます。 【例 1】 m2bs sfmtfile.mhx (-sp オプションを使用しない例 ) sfmtfile.bin にバイナリイメージが出力されます。 【例 2】 m2bs sfmtfile.mhx -sp 2 sfmtfile.b00 と sfmtfile.b01 に 1 バイトごと交互にバイナリイメージが出力されます。 【例 3】 m2bs sfmtfile.mhx -sp 2,2 sfmtfile.b00 と sfmtfile.b01 に 2 バイトごと交互にバイナリイメージが出力されます。 July 31, 2015, CM41-00315-6 315 第 17 章 バイナリコンバータ (m2bs, h2bs) 17.3 バイナリコンバータのオプション詳細 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 オプションを取り消すことができます。 316 CM41-00315-6, July 31, 2015 第 17 章 バイナリコンバータ (m2bs, h2bs) 17.3 バイナリコンバータのオプション詳細 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 :sfmtfile.mhx :sfmtfile.bin :0x00010000 - 0x0001FFFF :0xFF 【例 3】 m2bs sfmtfile.mhx -ran 0x10000,0x1FFFF -m logfile -sp 2,2 logfile.mp3 にコンバート時の情報が出力されます。 July 31, 2015, CM41-00315-6 317 第 17 章 バイナリコンバータ (m2bs, h2bs) 17.3 バイナリコンバータのオプション詳細 Su pp or t So ft Manu al 図 17.3-2 logfile.mp3 の内容例 2 Input file Output file Convert range Split byte Padding data 318 :sfmtfile.mhx :sfmtfile.b01 :sfmtfile.b02 :0x00010000 - 0x0001FFFF :2 :0xFF CM41-00315-6, July 31, 2015 第 17 章 バイナリコンバータ (m2bs, h2bs) 17.3 バイナリコンバータのオプション詳細 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 オプションを取り消すことができます。 July 31, 2015, CM41-00315-6 319 第 17 章 バイナリコンバータ (m2bs, h2bs) 17.3 バイナリコンバータのオプション詳細 Su pp or t 320 So ft Manu al CM41-00315-6, July 31, 2015 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 フォーマット変換 ) July 31, 2015, CM41-00315-6 321 第 18 章 その他のコンバータ 18.1 m2is(S フォーマット→ HEX8 フォーマット変換 ) 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 フォーマットのスタートアドレス情報は失われます。 322 CM41-00315-6, July 31, 2015 第 18 章 その他のコンバータ 18.2 m2es(S フォーマット→ HEX16 フォーマット変換 ) 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 以上のアドレスに割り付けられたデータは切捨てられます。 コンバート元のアドレス範囲に気をつけて使用してください。 July 31, 2015, CM41-00315-6 323 第 18 章 その他のコンバータ 18.3 i2ms(HEX8 フォーマット→ S フォーマット変換 ) 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 とします。 324 CM41-00315-6, July 31, 2015 第 18 章 その他のコンバータ 18.4 e2ms(HEX16 フォーマット→ S フォーマット変換 ) 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 タイプに設定されます。 July 31, 2015, CM41-00315-6 325 第 18 章 その他のコンバータ 18.4 e2ms(HEX16 フォーマット→ S フォーマット変換 ) Su pp or t 326 So ft Manu al CM41-00315-6, July 31, 2015 Support Soft Ma nual 第 19 章 オブジェクト形式コンバー タの制限事項および Q &A この章では , オブジェクト形式コンバータの制限事 項や使用上の Q &A について述べます。 19.1 オブジェクト形式コンバータの制限事項 19.2 オブジェクト形式コンバータの使用上の Q &A July 31, 2015, CM41-00315-6 327 第 19 章 オブジェクト形式コンバータの制限事項および Q &A 19.1 オブジェクト形式コンバータの制限事項 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) 2GB-1 メモリ依存 ■ バイナリコンバータ , アジャスタの制限事項 入力ファイルは合計で 64 個まで指定できます。 入力ファイルが複数指定された場合 , 指定された順に処理します。 入力ファイル中で , 同じアドレスに対するデータが存在する場合は , 後から出てきた データで上書きされます。 1 度に変換できるサイズは , 最大 2G-1 バイトまでです。 328 CM41-00315-6, July 31, 2015 第 19 章 オブジェクト形式コンバータの制限事項および Q &A 19.2 オブジェクト形式コンバータの使用上の 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 July 31, 2015, CM41-00315-6 329 第 19 章 オブジェクト形式コンバータの制限事項および Q &A 19.2 オブジェクト形式コンバータの使用上の Q &A Su pp or t 330 So ft Manu al CM41-00315-6, July 31, 2015 Support Soft Ma nual 付録 付録では , リンケージキットのエラーメッセージ , HEX フォーマットおよび S フォーマットのレコー ド形式などを記載しています。 付録 A リンケージキットのエラーメッセージ 付録 B HEX フォーマット 付録 C S フォーマット 付録 D リンカのオプション一覧表 付録 E ライブラリアンのオプション一覧表 付録 F オブジェクト形式コンバータのコマンドおよびオプ ション一覧表 付録 G OS による仕様の相違点 付録 H F2MC-16LX スタンバイモード遷移命令チェックツー ル 付録 I SOFTUNE リンカ (flnk907s) と旧版リンカ (link907a) の仕様の差異について 付録 J SOFTUNE ライブラリアン (flib907s) と旧版ライブラ リアン (lib907a) の仕様の差異について 付録 K SOFTUNE ロードモジュールコンバータ (f2ms, f2hs) と旧版ロードモジュールコンバータ (lmc907a) の仕様 の差異について 付録 L SOFTUNE 言語ツール移行時のオブジェクト同一性確 認方法 付録 M 関数呼び出しインタフェース変更ガイド 付録 N 主な変更内容 July 31, 2015, CM41-00315-6 331 付録 付録 A リンケージキットのエラーメッセージ Su pp or t 付録 A So ft Manu al リンケージキットのエラーメッセージ リンケージキットの各ツールが出力するエラーメッセージの分類と表示形式につい て詳しく説明します。 ■ リンケージキットのエラーメッセージ分類 エラーメッセージは , 重要度に応じて以下の 4 つのレベルに分類されています。 ● インフォメーション 処理を確認する目的で , ユーザにその内容を通知するものです。エラーではありません ので , 正しい処理結果が得られています。 ● 警告 エラーよりは軽微であり , 出力結果はほとんど問題なく使用できます。場合により , ユーザの意図と異なる処理が行われている可能性もあります。メッセージ内容を確認 した上で , 出力結果が使用可能か否かを判断してください。 ● エラー 処理は実行しますが , 正しい結果は得られないレベルの問題が発生しています。エラー の原因を取り除いて , 再実行する必要があります。 ● 致命的エラー 処理の実行が不可能なエラーです。ユーザの誤指定が原因のほか , 実行環境の問題で発 生します。 332 CM41-00315-6, July 31, 2015 付録 付録 A リンケージキットのエラーメッセージ Support Soft Ma nual ■ リンケージキットのエラーメッセージの表示形式 エラーメッセージは , 各ツールとも以下の形式で出力します。 図 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 ソースファイル名と行番号および補助メッセージの表示は行われない例です。 July 31, 2015, CM41-00315-6 333 付録 付録 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 を指定したときに通知されるメッセージです。 334 CM41-00315-6, July 31, 2015 付録 付録 A リンケージキットのエラーメッセージ Support Soft Ma nual 下位互換 CPU タイプのオブジェクトです ( ファイル名 ) I0307L Lower compatible cpu type object ( ファイル名 ) ここで示されたファイルは , 下位互換性のある異なる CPU タイプのモジュールです。 -w オプションで 2 を指定したときに通知されるメッセージです。 I0312L S.C.F チェックで < 警告メッセージ数 > 個のワーニングが出力され ました Total warning message of S.C.F check : < 警告メッセージ数 > 本メッセージは , F2MC-16LX スタンバイモード遷移命令チェックツールが出力した警 告メッセージ (W1378L, W1379L) の個数を示します。 本メッセージは , W1378L, W1379L が出力された場合 , 必ず出力されます。 互換性のある CPU タイプのオブジェクトです ( ファイル名 ) I0313L Compatible CPU type object ( ファイル名 ) ここで示されたファイルは , 互換性のある異なる CPU タイプのモジュールです。 -w オプションで 2 を指定したときに通知されるメッセージです。 ROM領域に書込み可能セクションが配置されました(セクション名) W1301L 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 オプションで指定したアドレス範囲を越えて配置されたセクションがあ ります。セクションマップで確認してください。 リンカのマップリストでは十分な情報が得られない場合は,セクション詳細マップリス トでより詳細な情報を知ることができます。 July 31, 2015, CM41-00315-6 335 付録 付録 A リンケージキットのエラーメッセージ Su pp or t So ft Manu al 最大アドレスを越えました ( セクション名 ) W1306L Exceeded maximum address( セクション名 ) 最大アドレス (0xFFFFFFFF) を超えて配置されたセクションがあります。 セクション名が重複しています ( セクション名 ) W1307L Duplicate section name exist ( セクション名 ) 複数のモジュールに , 名前が同じで属性や型の異なるセクションが存在します。 セクション配置が重複しています ( セクション 1, セクション 2) W1308L Overlap located section ( セクション 1, セクション 2) セクションが重複して配置されました。場合によってはプログラムの作動に支障を来 たしますので , 注意が必要です。 オプションで回避することを推奨します。 W1314L 絶対セクションに対して配置アドレスが指定されました ( セクショ ン名 ) Specified address to absolute section( セクション名 ) ここで示されるセクションは , 絶対番地があらかじめ決められていますので , セクショ ンの再配置指定は無効です。 モード識別 モード時にはライブラリ検索を行いません W1320L Not search library at モード識別 mode ライブラリ検索処理は , 絶対形式ロードモジュールを作成するとき以外行いません。 -r オプション指定時にはライブラリの検索指定は無効です。 補助メッセージのモード識別には , 以下が表示されます。 • 相対形式ロードモジュール出力指定 (-r) 時 : REL W1321L モード識別 モード時にはこの ( オプション ) オプションは無視さ れます Ignore ( オプション ) Option at モード識別 mode 指定されたリンクモードでは無効となる指定がなされたときに通知されます。 たとえば , 相対形式ロードモジュール出力指定時には , セクション配置処理は行いませ んので -sc オプションを指定しても無効になります。 336 CM41-00315-6, July 31, 2015 付録 付録 A リンケージキットのエラーメッセージ Support Soft Ma nual エントリポイントが複数設定されています W1325L Entry point already set 複数の入力モジュールにエントリポイントが設定されています。 最初に設定されたエントリポイントが有効になります。 エントリポイントが変更されました W1326L Entry point was changed -e オプションの指定により , 既に設定されているエントリポイントが変更されました。 このシンボルは既に定義されています ( シンボル名 ) W1327L Duplicate symbol definition ( シンボル名 ) 複数の入力モジュールに同じ外部定義シンボルが存在します。 最初に定義されたシンボル値が有効になります。 外部シンボルの型が異なっています ( シンボル名 ) W1328L Mismatch symbol type ( シンボル名 ) -e オプションによるエントリポイントの設定時に指定された外部定義シンボルが , 関 数名 , 変数名 , アドレスラベル名のいずれでもない場合に通知されます。 E4326 より軽微な場合に検出されます。 ROM 化セクション名が長すぎます ( セクション名 ) W1330L Too long ROM section name : exceeded 250 character( セクション名 ) ROM → RAM 転送を行うセクション名は , 250 文字以下にしてください。 該当するファイルが見つかりませんでした ( ファイル名 ) W1332L No match( ファイル名 )argument ワイルドカードによるファイル指定が行われましたが,該当するファイルがありません でした。 この指定を無視します。 July 31, 2015, CM41-00315-6 337 付録 付録 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) が指定されている場合でも本警告は出力されます。 338 CM41-00315-6, July 31, 2015 付録 付録 A リンケージキットのエラーメッセージ Support Soft Ma nual ROM 領域外への配置です ( セクション名 ) W1370L The section is placed outside the ROM area( セクション名 ) 本来 ROM 領域内に配置されるべきセクションが ROM 領域の範囲外に配置されていま す。 配置が正しいかマップファイルで確認をしてください。 ワーニング出力抑止 (-w 0) が指定されている場合でも本警告は出力されます。 RAM 領域外への配置です ( セクション名 ) W1371L The section is placed outside the RAM area( セクション名 ) 本来RAM領域内に配置されるべきセクションがRAM領域の範囲外に配置されています。 配置が正しいかマップファイルで確認をしてください。 ワーニング出力抑止 (-w 0) が指定されている場合でも本警告は出力されます。 RAM 領域または IO 領域外への配置です ( セクション名 ) W1372L The section is placed outside the RAM area or the I/O area( セクション名 ) 本来 RAM 領域か IO 領域内に配置されるべきセクションが RAM 領域と IO 領域の範囲 外に配置されています。 配置が正しいかマップファイルで確認をしてください。 ワーニング出力抑止 (-w 0) が指定されている場合でも本警告は出力されます。 IO 領域外への配置です ( セクション名 ) W1373L The section is placed outside the I/O area( セクション名 ) 本来 IO 領域内に配置されるべきセクションが IO 領域の範囲外に配置されています。 配置が正しいかマップファイルで確認をしてください。 ワーニング出力抑止 (-w 0) が指定されている場合でも本警告は出力されます。 W1375L -sc オプションで配置指定の行われていないセクションです ( セク ション名 ) This is the section (section name) for which layout is not specified in the -sc option. ユーザにより配置指定が行われていないセクションです。 セクション配置指定 (-sc) オプションを用いて該当セクションの配置指定を行ってくだ さい。 July 31, 2015, CM41-00315-6 339 付録 付録 A リンケージキットのエラーメッセージ Su pp or t So ft Manu al DIR 属性セクションの合計サイズが 256 バイトを超えました W1377L Total size of the DIR attribute sections exceeded 256 bytes 本メッセージは , -check_dirsize オプション指定時に DIR 属性セクション合計サイズが 256 バイトを超えたときに出力されます。 本メッセージが出力された場合 , DIR 属性セクションの合計サイズが 256 バイト以下に なるようソースを修正してください。 <注意事項> 以下のような場合 , DIR 属性セクションの合計サイズが 256 バイトを超えても問題ありま せん。本メッセージは無視してください。 • アセンブラソースにおいて複数のダイレクトページを使用している場合 • リアルタイム OS のタスクごとに異なったダイレクトページを使用する場合 DIR 属性セクション合計サイズが 256 バイトを超えても問題ない場合 , 本メッセージは -Xcheck_dirsize オプションを指定することにより抑止できます。 適切でないスタンバイモード遷移命令列をフェッチ検索で検出しま した ( 命令パターン , アドレス , ソース名 : 行番号 ) W1378L The standby mode transition instructions which is not suitable was found by fetch unit check ( 命令パターン , アドレス , ソース名 : 行番号 ) 本エラーメッセージは ,「H.8 スタンバイモード遷移のための低消費電力モード制御レ ジスタ (LPMCR) へアクセスする際の注意事項」の対応が行われていないスタンバイ モード遷移命令列を検出した場合に出力します。 本メッセージは , フェッチ単位でのチェックで検出された場合に出力されます。 本メッセージの詳細は ,「H.4 警告メッセージ」を参照してください。 適切でないスタンバイモード遷移命令列をバイト検索で検出しまし た ( 命令パターン , アドレス , ソース名 : 行番号 ) W1379L The standby mode transition instructions which is not suitable was found by byte check ( 命令パターン , アドレス , ソース名 : 行番号 ) 本エラーメッセージは ,「H.8 スタンバイモード遷移のための低消費電力モード制御レ ジスタ (LPMCR) へアクセスする際の注意事項」の対応が行われていないスタンバイ モード遷移命令列を検出した場合に出力します。 本メッセージは , バイト単位でのチェックで検出された場合に出力されます。 本メッセージの詳細は ,「H.4 警告メッセージ」を参照してください。 340 CM41-00315-6, July 31, 2015 付録 付録 A リンケージキットのエラーメッセージ Support Soft Ma nual セクションまたはセクショングループ名が見つかりません ( セク E4302L ション名 or グループ名 ) Not found section or section group name ( セクション名 or グループ名 ) -sc オプションで指定したセクション名またはグループ名が見つかりません。 ROM/RAM 領域名が定義されていません ( 領域名 ) E4303L Undefined ROM/RAM area name ( 領域名 ) -sc オプションで指定した ROM/RAM 領域名が定義されていません。 シンボル名が見つかりません ( マングル名 / シンボル名 ) E4304L Symbol name is not found( マングル名 / シンボル名 ) -df オプションで指定した外部参照シンボルが見つからないときまたは -e オプションで 指定した外部定義シンボルが見つからないときに通知されます。 外部シンボルが定義されていません ( マングル名 / シンボル名 ) E4305L Unresolved external symbol ( マングル名 / シンボル名 ) 本エラーは , 以下の場合に発生します。 (1) 外部シンボルの定義がない (2) -df オプションで指定した外部定義シンボル名が見つからない (3) 未使用関数削除機能により , 関数が削除された (1) と (2) が原因の場合 , 外部定義シンボルを含むモジュールをリンクしてください。 (3) が原因の場合 , 削除された関数を -Xdel オプションで指定してください。 互換性のない CPU タイプのモジュールがあります ( ファイル名 ) E4312L Uncompatible cpu type module( ファイル名 ) ここで示されるファイルは互換性のないモジュールです。 入力されるモジュールは , ターゲット CPU が同じか互換 CPU でなくてはいけません。 E4313L 関数呼び出しインタフェースの異なるモジュールがあります ( ファイル名 ) The module is different calling interface of a function ( ファイル名 ) 本エラーメッセージは , 以下の付表 A-1 に示す条件で出力されます。 July 31, 2015, CM41-00315-6 341 付録 付録 A リンケージキットのエラーメッセージ Su pp or t So ft Manu al 付表 A-1 入力オブジェクトと -rp オプションの関係 入力オブジェクトの関数呼び出しインタフェース 「引数のレジスタ渡し」 あり -rp オプション指定 「引数のスタック渡し」 「引数のレジスタ渡し」の正常な 組み合わせです。 エラーは出力しません。 エラー (E4313L) を出力します。 なし エラー (E4313L) を出力します。 「引数のスタック渡し」の正常な 組み合わせです。 エラーは出力しません。 本エラーが発生した場合, 付表 A-1 を参照して-rpオプション指定または, 入力オブジェ クトの関数呼び出しインタフェースを修正してください。 このセクションは存在しません ( セクション名 ) E4319L Section not exists ( セクション名 ) グループ化オプション (-gr) で指定されたセクションが見つかりません。 ここで示されるセクションが絶対セクションであった場合にも,セクション再配置の対 象にならないため , 当メッセージが通知されます。 外部シンボルの型が異なっています ( マングル名 / シンボル名 ) E4326L Different symbol type ( マングル名 / シンボル名 ) -e オプションによるエントリポイントの設定時に指定された外部定義シンボルが , 関 数名 , 変数名 , アドレスラベル名のいずれでもない場合に通知されます。 リロケーション情報に誤りがあります E4327L Illegal RL information リロケーション情報に誤りがある場合に検出されます。 値が範囲外です ( 値 ) E4329L Value out of range ( 値 ) リロケーション演算でオーバフローがありました。 このメッセージには,リロケーション対象となったデータ部の記述を含むソースプログ ラム名と行番号が表示されますので , プログラムの記述を確認してください。 エディタのタグジャンプが利用できる場合 , 該当するソース行がすぐにわかります。 342 CM41-00315-6, July 31, 2015 付録 付録 A リンケージキットのエラーメッセージ Support Soft Ma nual 0 による除算が行われました E4330L Divided by 0 リロケーション演算の除算で除数が 0 になっています。 配置アドレスを指定してください ( セクション名 ) E4331L Indispensable to locate address ( セクション名 ) -sc オプションによるアドレス指定がないか , 指定のないセクションが見つかった場合 に通知されます。 グループ名は使えません ( グループ名 ) E4332L Not handling group name ( グループ名 ) -sc オプションでの ROM → RAM 転送セクションの指定時に , グループ名は指定できま せん。 ROM アドレスが指定されていません ( セクション名 ) E4333L Not specified ROM address ( セクション名 ) ROM領域に配置すべきリロケーション情報に対し, ROMアドレスの指定がありません。 -sc オプションで ROM アドレスの指定を行ってください。 E4351L 相対アセンブルリストファイルに対するオブジェクトがありません ( ファイル名 ) Relocatable assemble list not correspond to object file( ファイル名 ) 補助メッセージに示す相対アセンブルリストファイルに対するオブジェクトが見つか りません。 リンカは補助メッセージに示すリストファイルの処理を中止し,次のリストファイルの 処理を行います。 相対アセンブルリストファイルがありません ( ファイル名 ) E4352L Relocatable assemble list file not found ( ファイル名 ) 補助メッセージに示す相対アセンブルリストファイルがありません。 リンカは補助メッセージに示すファイル名に対する絶対アセンブルリストファイルを 作成せず , 処理を続行します。 July 31, 2015, CM41-00315-6 343 付録 付録 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( セクション名 ) セクションの最大サイズを超えたセクションがあります。セクションには , そのセク ション種別により最大サイズが制限されるものがあります。それを超えた場合に検出 されます。 セクションの見直しを行ってください。 344 CM41-00315-6, July 31, 2015 付録 付録 A リンケージキットのエラーメッセージ Support Soft Ma nual バンクの最大アドレスを越えました ( セクション名 ) E4364L Exceeded maximum bank address( セクション名 ) セクションを指定位置から配置したときにバンクを超えた場合 , 検出されます。 バンク内のセクション構成を見直してください。 E4365L 配置可能なアドレスが領域 " 領域名 " に見つかりません ( セクション名 ) Not found locatable address in 領域名 ( セクション名 ) 配置指定領域の該当セクションの配置可能な場所が見つかりません。 領域内のセクション構成を見直してください。 配置可能なアドレスが見つかりません ( セクション名 ) E4366L Not found locatable address( セクション名 ) 全アドレス空間にセクションの配置可能な場所が見つかりません。 プログラム構成を見直してください。 モジュール名の重複がありました ( ファイル名 モジュール名 ) E4367L Duplicated module name( ファイル名 モジュール名 ) 既にリンク対象となっているモジュール名と同じ名前のモジュール名が存在します。 モジュール名の重複はできません。モジュール名を変更してください。 バンク外のシンボルを参照しました ( シンボル名 ) E4368L Referenced other bank symbol( シンボル名 ) バンク内分岐命令で , 他バンクに定義されているシンボルを参照しました。 該当箇所 ( シンボル ) への分岐が必要な場合には , バンク外への分岐命令を使用してく ださい。 コンパイルモデルの異なるモジュールがあります ( ファイル名 ) E4369L Invalid module : conflict compile model( ファイル名 ) コンパイルモデルの異なるモジュールはリンクできません。 July 31, 2015, CM41-00315-6 345 付録 付録 A リンケージキットのエラーメッセージ Su pp or t So ft Manu al CPU 情報ファイルが見つかりません ( ファイル名 ) E4370L CPU information file not found ( ファイル名 ) -cpu オプションによる指定ターゲットの CPU 情報ファイルが見つかりません。 下記ファイルが見つからない場合に検出されます。 • %FETOOL% \ LIB \ 907 \ 907.CSV CPU 情報が見つかりません ( ファイル名 ) E4371L CPU information not found ( ファイル名 ) -cpu オプションによる指定ターゲットの CPU 情報が CPU 情報ファイル内に見つかり ません。 下記ファイル内に指定ターゲットの CPU 情報が見つからない場合に検出されます。 • %FETOOL% \ LIB \ 907 \ 907.CSV メモリが足りません F9001L Insufficient memory プログラム実行のためにはメモリが不足しています。バッチファイル中でリンカを起 動している場合は , 直接コマンドラインから起動してみてください。 ファイルが見つかりません ( ファイル名 ) F9011L Input file not found ( ファイル名 ) 指定された入力ファイルが見つかりません。 ライブラリファイルが見つかりません ( ファイル名 ) F9012L Library file not found ( ファイル名 ) ここで示されるファイル名がデフォルトライブラリファイルであるときは , 環境変数 LIB907 が示すディレクトリにライブラリファイルが格納されていないか , 環境変数 FETOOL より導かれるディレクトリにライブラリファイルが格納されていません。 -l, -el オプションで指定したライブラリファイルであるときは , ファイル名指定もしく は -L オプションで指定の検索パスが間違っていないか確かめてください。 ファイルがオープンできません ( ファイル名 ) F9015L File open error( ファイル名 ) ここで示されたファイルが出力ファイルである場合 , 1 つのディレクトリが管理できる ファイルの制限数を超えている可能性があります。不要なファイルを削除するか移動 してください。 346 CM41-00315-6, July 31, 2015 付録 付録 A リンケージキットのエラーメッセージ Support Soft Ma nual ファイルからの読込みができません ( ファイル名 ) F9016L File read error ( ファイル名 ) 読込み許可のないファイルである可能性があります。 ファイルへの書込みができません ( ファイル名 ) F9017L File write error ( ファイル名 ) 書込み許可のない同名のファイルが存在している可能性があります。 または,ここで示されているファイルを書き込んでいるディスクの容量が不足している 可能性があります。ディスクに空き容量を作ってもう一度リンカを実行してください。 コマンドラインの指定が多すぎます F9021L Too many options コマンドラインに指定した ( オプションファイル中の指定も含む ), 入力ファイル名や オプションが多すぎます。 リンカの起動を複数回に分けてください。 オプション名の指定に誤りがあります ( オプション ) F9022L Illegal option name ( オプション ) リンカで使用できるオプションではありません。-help オプションまたは当マニュアル で確認してください。 パラメータの指定に誤りがあります ( オプション ) F9023L Illegal option parameter ( オプション ) このオプションで指定すべきパラメータに誤りがあります。 パラメータが不足していたり , 区切り記号の誤りのようなシンタックスに起因するエ ラーであると思われる場合に通知します。 パラメータの指定に不正な文字があります ( オプション ) F9024L Illegal character ( オプション ) このオプションで指定すべきパラメータに誤りがあります。 数値の指定方法の誤りなど不正文字の使用によるエラーであると思われる場合に通知 します。 July 31, 2015, CM41-00315-6 347 付録 付録 A リンケージキットのエラーメッセージ Su pp or t So ft Manu al 値が範囲外です ( 値 ) F9026L Specified value out of range ( 値 ) -pl, -pw, -w オプションで許される範囲外の値が指定されています。 オプションファイル中にオプションファイルの指定があります 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 オプションで同じライブラリパス名が指定されている。 348 CM41-00315-6, July 31, 2015 付録 付録 A リンケージキットのエラーメッセージ Support Soft Ma nual セクション名の重複指定があります ( セクション名 ) F9042L Duplicated section name ( セクション名 ) -sc または -gr オプションで , 同一のセクション名が複数指定されました。 シンボル名の重複指定があります ( シンボル名 ) F9043L Duplicated symbol name ( シンボル名 ) -el オプションで , 同じ外部参照シンボルが複数指定されています。 セクショングループ名が重複しています ( グループ名 ) F9044L Duplicated section group name ( グループ名 ) -gr オプションによるグループの設定時に , 同じグループ名が複数使用されました。 該当するファイルが見つかりませんでした ( ファイル名 ) F9047L No match ファイル名 argument ワイルドカードによるファイル指定が行われましたが,該当するファイルがありません でした。 "-cpu" オプションの指定がありません F9052L Missing "-cpu" option -cpu オプションによるターゲット CPU の指定がありません。 "-ro", "-ra" オプションの指定がありません F9053L Missing "-ro" or "-ra" option 自動配置を行うのに必要な "-ro", "-ra" オプションが指定されていません。 セクション名が重複しています ( セクション名 ) F9054L Duplicate section name exist( セクション名 ) 複数のモジュールに , 名前が同じで属性や型の異なるセクションが存在します。 絶対アセンブルリスト作成時に出力されます。 July 31, 2015, CM41-00315-6 349 付録 付録 A リンケージキットのエラーメッセージ Su pp or t So ft Manu al CPU 情報ファイルのバージョンが適合しません F9056L Mismatch CPU information file version CPU 情報ファイルが古く適合しません。 最新の CPU 情報ファイルを入手してください。 処理限界数を超えました ( シンボル名 ) F9076L The number of processing limits was exceeded ( シンボル名 ) 本エラーは , 絶対形式アセンブルリスト出力時に , 以下のどれかの数が 1048576 を超え た場合に発生します。 • リンカ入力モジュール数 • 外部シンボルと静的 (static) シンボルの合計数 • セクションの数 本エラーが発生する場合 , 絶対形式アセンブルリストの出力を抑止してください。 S.C.F チェックプロセスでエラーが発生しました F9077L S.C.F check process returns error S.C.F チェックプロセスでエラーが発生しました。 ―――――――――――――――――――――――――――― F9998L File open failed ( ファイル名 ) リンカが使用するメッセージファイルがオープンできませんでした。 エラーメッセージファイル (lkt907_a.msg, lkt907_e.msg) は , 決められたディレクトリに 格納してください。 プログラム内部エラーが発生しました ( 識別情報 ) F9999L Internal error ( 識別情報 ) このエラーが出た場合は , 直ちに当社営業担当部門へ連絡してください。 350 CM41-00315-6, July 31, 2015 付録 付録 A リンケージキットのエラーメッセージ Support Soft Ma nual ■ ライブラリアンのエラーメッセージ 外部定義のない外部参照シンボルがあります I0401U Reference to undefined symbol -c オプションにより報告されるメッセージです。ライブラリファイルの外部シンボル をチェックした結果,当ライブラリファイル中で解決されない外部参照シンボルが含ま れていることを示しています。当メッセージの出力されるライブラリファイルをリン カで使用する場合は , どのモジュールの外部定義シンボルが使われるか注意が必要で す。 デバッグ情報が含まれています I0402U Debug information exists -c オプションにより報告されるメッセージです。当ライブラリファイルにはデバッグ 情報を含むモジュールが含まれています。ライブラリファイル中のデバッグ情報は , -O オプションで取り除くことができます。 下位互換 CPU タイプのオブジェクトがあります ( ファイル名 ) I0407U Lower compatible cpu type object ( ファイル名 ) ここで示されたファイルは , ライブラリファイルと下位互換性のある異なる CPU タイ プのモジュールを含むオブジェクトファイル , あるいはライブラリファイルです。 互換性のある CPU タイプのオブジェクトです ( ファイル名 ) I0413U Compatible CPU type object( ファイル名 ) ここで示されたファイルは , ライブラリファイルと互換性のある異なる CPU タイプの モジュールを含むオブジェクトファイル , あるいはライブラリファイルです。 "-pl" 指定を無視します W1401U Ignore "-pl" option リスト行数指定 (-pl オプション ) がありますが , 対象となるマップリストが出力指定さ れていません。この指定を無視します。 "-pw" 指定を無視します W1402U Ignore "-pw" option リスト桁数指定 (-pw オプション ) がありますが , 対象となるマップリストが出力指定 されていません。この指定を無視します。 July 31, 2015, CM41-00315-6 351 付録 付録 A リンケージキットのエラーメッセージ Su pp or t So ft Manu al "-g" 指定を無視します W1403U Ignore "-g" option デバッグ情報付ライブラリ作成指定 (-g オプション ) は , モジュールの追加指定 (-a オ プション ) または置換指定 (-r オプション ) を行うときのみ意味を持ちます。この指定 を無視します。 行うべき処理がありませんでした W1404U Nothing to operate ライブラリファイルの変更またはモジュールの抽出処理がありませんでした。 削除するモジュールがありませんでした ( モジュール名 ) W1405U Module not exists to delete ( モジュール名 ) -d オプションで指定のモジュールが , ライブラリファイルに含まれていません。 -m オプションで登録されているモジュール名を確かめてください。 抽出するモジュールがありませんでした ( モジュール名 ) W1406U Module not exists to extract ( モジュール名 ) -x オプションで指定のモジュールが , ライブラリファイルに含まれていません。 -m オプションで登録されているモジュール名を確かめてください。 モジュール名の重複がありました ( ファイル名 モジュール名 ) E4402U Duplicated module name ( ファイル名 モジュール名 ) 既に登録されているモジュールと同じ名前のモジュールを追加登録しようとしまし た。 1 つのライブラリ中にモジュールの重複はできませんので , ここで示されるモジュール は登録しません。置き換えるならば , -r オプションを使用してください。 外部定義シンボルの重複がありました ( ファイル名 シンボル名 ) E4403U Duplicated external definition symbol name ( ファイル名 シンボル名 ) 登録されているモジュールには , 外部定義シンボルが含まれていますが , ここで示され たシンボルは既にライブラリに登録されています。 1 つのライブラリ中に外部定義シンボルの重複はできませんので , ここで示されるシン ボルを含むモジュールは登録しません。 352 CM41-00315-6, July 31, 2015 付録 付録 A リンケージキットのエラーメッセージ Support Soft Ma nual 登録できないモジュール形式です ( ファイル名 ) E4404U Invalid module : type ( ファイル名 ) ライブラリファイルに登録できるのは,アセンブラが出力するオブジェクトモジュール 形式だけです。リンカ出力の絶対形式および相対形式ロードモジュールは登録できま せん。 作成ツールの異なるモジュールがあります ( ファイル名 ) E4405U Invalid module : conflict tool name ( ファイル名 ) このライブラリアンが処理できるファミリ用アセンブラ出力のオブジェクトファイル ではありません。または , ほかのファミリ用ライブラリアンで作成されたライブラリ ファイルが指定されています。 コンパイルモデルの異なるモジュールがあります ( ファイル名 ) E4406U Invalid module : conflict compile model ( ファイル名 ) コンパイルモデル ( メモリモデルなど ) が異なるモジュールは同じライブラリに登録で きません。 ターゲット CPU の異なるモジュールがあります ( ファイル名 ) E4407U Invalid module : conflict CPU type( ファイル名 ) ターゲット CPU の異なるモジュールは同じライブラリに登録できません。 65535 個以上のモジュール登録はできません E4408U Too many entry modules : exceed 65535 1 ライブラリは 65535 モジュール以下となるよう , 別ライブラリを作成してください。 65535 個以上の外部シンボル登録はできません E4409U Too many entry external symbols : exceed 65535 1 ライブラリは 65535 シンボル以下となるよう , 別ライブラリを作成してください。 E4410U 関数呼び出しインタフェースの異なるモジュールがあります ( ファイル名 ) The module is different calling interface of a function ( ファイル名 ) 本エラーメッセージは , 以下の付表 A-2 に示す条件で出力されます。 July 31, 2015, CM41-00315-6 353 付録 付録 A リンケージキットのエラーメッセージ Su pp or t So ft Manu al 付表 A-2 入力オブジェクト , 編集対象ライブラリと -rp オプションの関係 入力オブジェクトと編集対象ライブラリの関数呼び出しインタフェース 「引数のレジスタ渡し」 あ り -rp オプション指定 な し 「引数のレジスタ渡し」の正常な 組み合わせです。 エラーは出力しません。 「引数のスタック渡し」 エラー (E4310U) を出力します。 エラー (E4310U) を出力します。 「引数のスタック渡し」の正常な 組み合わせです。 エラーは出力しません。 本エラーが発生した場合, 付表 A-2 を参照して-rpオプション指定または, 入力オブジェ クト , 編集対象ライブラリの関数呼び出しインタフェースを修正してください。 CPU 情報ファイルが見つかりません ( ファイル名 ) E4470U CPU information file not found ( ファイル名 ) -cpu オプションによる指定ターゲットの CPU 情報ファイルが見つかりません。 下記ファイルが見つからない場合に検出されます。 • %FETOOL% \ LIB \ 907 \ 907.CSV CPU 情報が見つかりません ( ファイル名 ) E4471U CPU information not found ( ファイル名 ) -cpu オプションによる指定ターゲットの CPU 情報が CPU 情報ファイル内に見つかり ません。 下記ファイル内に指定ターゲットの CPU 情報が見つからない場合に検出されます。 • %FETOOL% \ LIB \ 907 \ 907.CSV メモリが足りません F9001U Insufficient memory プログラム実行のためのメモリが不足しています。 ファイルがオープンできません ( ファイル名 ) F9015U File open error( ファイル名 ) ここで示されたファイルが出力ファイルである場合 , 1 つのディレクトリが管理できる ファイルの制限数を超えている可能性があります。不要なファイルを削除するか移動 してください。 354 CM41-00315-6, July 31, 2015 付録 付録 A リンケージキットのエラーメッセージ Support Soft Ma nual ファイルからの読込みができません ( ファイル名 ) F9016U File read error ( ファイル名 ) 読込み許可のないファイルである可能性があります。 ファイルへの書込みができません ( ファイル名 ) F9017U File write error ( ファイル名 ) 書込み許可のない同名のファイルが存在している可能性があります。 または,ここで示されているファイルを書き込んでいるディスクの容量が不足している 可能性があります。ディスクに空き容量を作ってもう一度ライブラリアンを実行して ください。 コマンドラインの指定が多すぎます F9021U Too many options コマンドラインに指定した ( オプションファイル中の指定も含む ), 入力ファイル名や オプションが多すぎます。 ライブラリアンの起動を複数回に分けてください。 オプション名の指定に誤りがあります ( オプション ) F9022U Illegal option name ( オプション ) オプション名の指定に誤りがあります。 コマンドラインを訂正して再起動してください。 パラメータの指定に誤りがあります ( オプション ) F9023U Illegal option parameter ( オプション ) このオプションで指定すべきパラメータに誤りがあります。 値が範囲外です ( 値 ) F9026U Specified value out of range ( 値 ) -pl または -pw オプションのパラメータで指定可能な値ではありません。 -help オプションまたは本マニュアルで確認してください。 オプションファイル中にオプションファイルの指定があります F9027U Option file nested オプションファイルはネストできません。オプションファイル中に記述されている -f オプションを削除してください。 July 31, 2015, CM41-00315-6 355 付録 付録 A リンケージキットのエラーメッセージ Su pp or t So ft Manu al ファイルの形式が正しくありません ( ファイル名 ) F9033U Illegal file format ( ファイル名 ) CPU 情報ファイルの形式が正しくないかまたはライブラリファイルの形式が正しくな い ( ライブラリファイルではない ) か , 登録または置換のために指定した入力ファイル が , アセンブラ出力のオブジェクト形式ではありません。 異なる形式のファイルを入力したか , もしくはファイルが壊れています。 ライブラリファイル名の指定がありません F9035U Missing library file name ライブラリファイル名の指定がありません。 ライブラリファイル名を指定してください。 ライブラリファイル名が複数指定されています ( ファイル名 ) F9036U Multiple library file name specified( ファイル名 ) ライブラリファイルは 1 つだけ指定できます。ここに示されたファイル名またはこれ により前に指定したライブラリファイル名のどちらか 1 つを選択してください。 "-O" 指定時はほかのオプションの指定はできません F9045U "-O" option conflict with another option -O オプション指定時は , ほかのオプションは指定できません。 "-c" 指定時はほかのオプションの指定はできません F9046U "-c" option conflict with another option -c オプションは , ほかのオプションと組合せないでください。 該当するファイルが見つかりませんでした ( ファイル名 ) F9047U No match ファイル名 argument ワイルドカードによるファイル指定が行われましたが,該当するファイルがありません でした。 "-cpu" オプションの指定がありません F9052U Missing "-cpu" option -cpu オプションによるターゲット CPU の指定がありません。 flib907s は , -cpu オプションでターゲット CPU を指定する必要があります。 356 CM41-00315-6, July 31, 2015 付録 付録 A リンケージキットのエラーメッセージ Support Soft Ma nual CPU 情報ファイルのバージョンが適合しません F9056U Mismatch CPU information file version CPU 情報ファイルが古く適合しません。 最新の CPU 情報ファイルを入手してください。 ―――――――――――――――――――――――――――――― F9998U File open failed ( ファイル名 ) ライブラリファイルが使用するメッセージファイルがオープンできませんでした。 エラーメッセージファイル (lkt907_a.msg, lkt907_e.msg) は , 決められたディレクトリに 格納してください。 プログラム内部エラーが発生しました ( 識別情報 ) F9999U Internal error ( 識別情報 ) このエラーが出た場合は , 直ちに当社営業担当部門へ連絡してください。 ■ コンバータのエラーメッセージ スタートアドレスレコードを読み飛ばしました I0501U Skip start address record HEX フォーマットにスタートアドレスレコードが含まれていましたが , 不要なので読 み飛ばしました。コンバータの処理には影響なく正しくコンバートは行われます。 このファイルは警告レベルエラーを含んでいます ( ファイル名 ) W1501U File include WARNING level error ( ファイル名 ) 入力に指定したファイルは , リンク時に警告レベルのエラーがあったものです。問題な いかどうかを確認のうえ使用してください。 出力指定フォーマットで表せないアドレスです ( アドレス ) W1502U Unable to convert address ( アドレス ) コンバート先のフォーマットでは , 表現できないアドレスのデータがコンバート元の ファイルに含まれています。ここで示されたアドレスを越えた部分のデータはすべて 捨てられます。 コンバート先のフォーマットを変更してください。 July 31, 2015, CM41-00315-6 357 付録 付録 A リンケージキットのエラーメッセージ Su pp or t So ft Manu al -I16 指定時に -entry オプションが指定されました W1503U -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 プログラム実行のためのメモリが不足しています。 ファイルが見つかりません ( ファイル名 ) F9011U Input file not found( ファイル名 ) 入力ファイルに指定したファイルが見つかりません。 ファイルがオープンできません ( ファイル名 ) F9015U File open error( ファイル名 ) ここで示されたファイルが出力ファイルである場合 , 1 つのディレクトリが管理できる ファイルの制限数を超えている可能性があります。不要なファイルを削除するか移動 してください。 ファイルから読込みができません ( ファイル名 ) F9016U File read error( ファイル名 ) 読込み許可のないファイルであるか,もしくはハードウェアに問題があることが考えら れます。 ファイルへの書込みができません ( ファイル名 ) F9017U File write error ( ファイル名 ) ここで示されているファイルを書き込んでいるディスクの容量が不足しています。 ディスクに空き容量を作ってもう一度コンバータを実行してください。 358 CM41-00315-6, July 31, 2015 付録 付録 A リンケージキットのエラーメッセージ Support Soft Ma nual コマンドラインの指定が多すぎます F9021U Too many options コマンドラインに指定 ( オプションファイル中の指定も含む ) した , 入力ファイル名や オプションが多すぎます。 オプション名の指定に誤りがあります ( オプション ) F9022U Illegal option name ( オプション ) コンバータで使用できるオプションではありません。-help オプションまたは本マニュ アルで確認してください。 パラメータの指定に誤りがあります ( オプション ) F9023U Illegal option parameter ( オプション ) このオプションで指定すべきパラメータに誤りがあります。 値が範囲外です ( 値 ) F9026U 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) オプションのパラメータで指定したアドレスは,スタートアドレスとエンドアドレスの 大小関係が逆です。 July 31, 2015, CM41-00315-6 359 付録 付録 A リンケージキットのエラーメッセージ Su pp or t So ft Manu al 入力ファイル名の指定がありません F9030U Missing input file name コンバート元の入力ファイル名を指定してください。 入力ファイル名は既に指定されています ( ファイル名 ) F9031U Multiple input file name ( ファイル名 ) 入力ファイルは 1 つだけ指定できます。ここに示されたファイル名またはこれより前 に指定したファイル名のどちらか 1 つを入力ファイルとしてください。 入出力ファイル名が同じです ( ファイル名 ) F9032U Output file name same as input one ( ファイル名 ) ここに示された出力ファイル名は , 入力ファイル名と同じ名称ですので処理できませ ん。 ファイルの形式が正しくありません ( ファイル名 ) F9033U Illegal file format ( ファイル名 ) 入力ファイルは , 処理しようとしているオブジェクト形式ではありません。 異なる形式のファイルを入力したか , もしくはファイルが壊れています。 絶対形式でないファイルは扱えません ( ファイル名 ) F9034U Not absolute load module file( ファイル名 ) リンカ出力の絶対形式ロードモジュールではないファイルを入力しました。リンカで 絶対形式にしてからコンバータで使用してください。 出力範囲が指定されていません F9048U Missing output range 出力範囲の指定が行われていません。 出力範囲指定 (-ran) を指定してください。 出力範囲のサイズが限界値を越えています F9049U Output range exceeded 出力範囲が限界値を超えています。 360 CM41-00315-6, July 31, 2015 付録 付録 A リンケージキットのエラーメッセージ Support Soft Ma nual 出力ファイルがほかの出力ファイルと同じです ( ファイル名 ) F9050U Output filename same as other output one( ファイル名 ) 出力ファイル名に , ほかの出力ファイル名と同じ名前が指定されています。 出力ファイル名を変更してください。 ファイル名が長すぎます ( ファイル名 ) F9051U File name too long ( ファイル名 ) ここに示された出力ファイル名の指定が長すぎるため処理ができません。 ファイル名の指定を短くしてください。 ―――――――――――――――――――――――――――――― F9998U File open failed ( ファイル名 ) コンバータが使用するメッセージファイルがオープンできませんでした。 エラーメッセージファイル (lkt_a.msg, lkt_e.msg) は , 決められたディレクトリに格納し てください。 プログラム内部エラーが発生しました ( 識別情報 ) F9999U Internal error ( 識別情報 ) このエラーが出た場合は , 直ちに当社営業担当部門へ連絡してください。 July 31, 2015, CM41-00315-6 361 付録 付録 B HEX フォーマット Su pp or t 付録 B So ft Manu al HEX フォーマット HEX フォーマットについて説明します。 • HEX8 フォーマット : 8 ビット用に設定されたフォーマット • HEX16 フォーマット : 16 ビット用に拡張されたフォーマット • HEX32 フォーマット : 32 ビット用に拡張されたフォーマット B.1 一般形式 B.2 データレコード (HEX8/HEX16/HEX32) タイプ : 00 B.3 エンドレコード (HEX8/HEX16/HEX32) タイプ : 01 B.4 拡張セグメントアドレスレコード (HEX16/HEX32) タイプ : 02 B.5 スタートセグメントアドレスレコード (HEX16/HEX32) タイプ : 03 B.6 拡張リニアアドレスレコード (HEX32) タイプ : 04 B.7 スタートリニアアドレスレコード (HEX32) タイプ : 05 362 CM41-00315-6, July 31, 2015 付録 付録 B HEX フォーマット Support Soft Ma nual 一般形式 B.1 HEX フォーマットのレコード形式は , (a) ~ (f) で示す 6 つのフィールドで構成され ます。 各フィールドは , ASCII コードで設定されます。(g) については , 後述します。 ■ 一般形式 図 B.1-1 一般形式 : (a) l1 (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) のレコードタイプごとに異なりますので , 各レコードの説明で示します。 July 31, 2015, CM41-00315-6 363 付録 付録 B HEX フォーマット Su pp or t So ft Manu al (f): チェックサムです。(b)(c)(d)(e) の ASCII で表された 2 バイトのデータを 1 バイトの 16 進で表し , 各バイトを符号なしでオーバフローを無視して加算します。 その結果の 2 の補数を求め , 2 バイトの ASCII にして設定します。 s1 が上位桁になります。 2 の補数 : 各ビットの 0 を 1 に , 1 を 0 にした値に 1 を加えた値 (g): 一般に制御コード (CR, LF など ) が付加されます。 このフィールドのデータは , (a) の開始文字 ":" が来るまで読み飛ばします。 (a)(b)(c)(d)(f) のフィールドは必ず存在しますので , 1 レコードの長さは最低 11 バイト , 最大 521 バイトになります。 【例】 364 :020000020036C6 拡張アドレスレコード :0600100090D9226BB4FD43 データレコード :040000035162000541 スタートアドレスレコード :00000001FF エンドレコード CM41-00315-6, July 31, 2015 付録 付録 B HEX フォーマット Support B.2 Soft Ma nual データレコード (HEX8/HEX16/HEX32) タイプ : 00 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* d* d* d* (e) s1 s2 (f) (g) (a)(b)(c)(d)(f)(g) については , 一般形式の説明を参照してください。 (e) は , オブジェクトデータで , 実際の 1 バイトデータを 2 バイトの ASCII で表現します。 上記の図では , (c) が示すアドレスのバイトデータは , d1, d2 になります。 同様に d3, d4 は , 次のアドレスのバイトデータです。 July 31, 2015, CM41-00315-6 365 付録 付録 B HEX フォーマット Su pp or t B.3 So ft Manu al エンドレコード (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 を設定します。 366 CM41-00315-6, July 31, 2015 付録 付録 B HEX フォーマット Support B.4 Soft Ma nual 拡張セグメントアドレスレコード (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 (c) 0 0 0 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 としてアドレス計算が行われます。 July 31, 2015, CM41-00315-6 367 付録 付録 B HEX フォーマット Su pp or t B.5 So ft Manu al スタートセグメントアドレスレコード (HEX16/HEX32) タイプ : 03 プログラムの実行開始番地を指定するためのレコードです。 スタートアドレスは , 以下の式に従って計算されます。 (( PA × 0x10 ) + IP ) MOD 0x100000 • PA: 当レコードの (e1) フィールドの値です。 • IP: 当レコードの (e2) フィールドの値です。 ■ スタートセグメントアドレスレコード (HEX16/HEX32) 図 B.5-1 スタートセグメントアドレスレコード (HEX16/HEX32) : 0 (a) (b) 4 0 (c) 0 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 になります。 368 CM41-00315-6, July 31, 2015 付録 付録 B HEX フォーマット Support B.6 Soft Ma nual 拡張リニアアドレスレコード (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 (c) 0 0 0 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 とし て表した値です。 これは , i80386 での物理アドレスを求めるのと同じ方法であり , 拡張リニアアドレ スレコードの追加により , 32 ビットのアドレス値まで表現できます。 拡張リニアアドレスレコードよりも前に現れた , データレコードについては , 上記 PA を 0x0000 としてアドレス計算が行われます。 July 31, 2015, CM41-00315-6 369 付録 付録 B HEX フォーマット Su pp or t B.7 So ft Manu al スタートリニアアドレスレコード (HEX32) タイプ : 05 プログラムの実行開始番地を指定するためのレコードです。 ■ スタートリニアアドレスレコード (HEX32) 図 B.7-1 スタートリニアアドレスレコード (HEX32) : 0 (a) (b) 4 0 (c) 0 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 になります。 370 CM41-00315-6, July 31, 2015 付録 付録 C S フォーマット Support 付録 C Soft Ma nual S フォーマット S レコードフォーマットは , すべて "S"(0x53) の文字で始まり , S0 から S9 までの 8 タイプがあります (S4 と S6 は使用しません )。 C.1 S0 タイプ ( ヘッダレコード ) C.2 S1 タイプ ( データレコード : 2 バイトアドレス ) C.3 S2 タイプ ( データレコード : 3 バイトアドレス ) C.4 S3 タイプ ( データレコード : 4 バイトアドレス ) C.5 S5 タイプ ( レコード数管理レコード ) C.6 S7 タイプ ( ターミネータレコード ) C.7 S8 タイプ ( ターミネータレコード ) C.8 S9 タイプ ( ターミネータレコード ) July 31, 2015, CM41-00315-6 371 付録 付録 C S フォーマット Su pp or t So ft Manu al 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) (f) 2バイト 2バイト 4バイト nバイト 2バイト 当レコードは , 上記の (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" が来るまで読み飛ばします。 【例】 S00600004844521B ASCII文字列の"HDR"を示す 372 CM41-00315-6, July 31, 2015 付録 付録 C S フォーマット Support Soft Ma nual S1 タイプ ( データレコード : 2 バイトアドレス ) C.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 タイプ ( ヘッダレコード )」の説明を参照してください。) July 31, 2015, CM41-00315-6 373 付録 付録 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 バイトアド レスが必要なオブジェクトデータを格納するためのレコードです。 374 CM41-00315-6, July 31, 2015 付録 付録 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 バイトアド レスが必要なオブジェクトデータを格納するためのレコードです。 July 31, 2015, CM41-00315-6 375 付録 付録 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 タイプ ( ヘッダレコード )」の説明を参照してください。) 376 CM41-00315-6, July 31, 2015 付録 付録 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 など ) が付加されます。 July 31, 2015, CM41-00315-6 377 付録 付録 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 バイトが必要な場合のターミネータレコードです。 378 CM41-00315-6, July 31, 2015 付録 付録 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 バイトが必要な場合のターミネータレコードです。 July 31, 2015, CM41-00315-6 379 付録 付録 D リンカのオプション一覧表 Su pp or t 付録 D So ft Manu al リンカのオプション一覧表 表 D-1 にリンカのオプション一覧を示します。 ■ リンカのオプション一覧 表 D-1 リンカのオプション一覧表 (1 / 3) 機能 380 オプション 備考 出力ロードモジュールファイル名指定 -o デフォルト デバッグ情報出力指定 -g デバッグ情報削除指定 -Xg デフォルト 絶対形式ロードモジュール出力指定 -a デフォルト 相対形式ロードモジュール出力指定 -r ROM 領域のフィル指定 -fill マップリストファイル名指定 -m マップリスト出力抑止指定 -Xm リスト表示の名前省略解除 -dt メモリ使用情報リスト出力指定 -mmi リスト行の桁数指定 -pw デフォルト 132 リスト 1 ページの行数指定 -pl デフォルト 60 ROM 領域のチェックサム指定 -cs 警告メッセージ出力レベル指定 -w ROM 領域指定 -ro RAM 領域指定 -ra セクション配置 -sc セクショングループ指定 -gr レジスタバンク領域の指定 -rg 自動配置指定 -AL 検索ライブラリファイル指定 -l ライブラリ検索パス指定 -L シンボル個別のライブラリ指定 -el ライブラリ検索抑止指定 -nl デフォルトライブラリ検索抑止指定 -nd 未使用関数削除指定 -lnkopt デフォルト デフォルト 0 CM41-00315-6, July 31, 2015 付録 付録 D リンカのオプション一覧表 Support Soft Ma nual 表 D-1 リンカのオプション一覧表 (2 / 3) 機能 オプション 備考 C ソース実行開始シンボル指定 -entryc 削除対象外関数指定 -Xdel 未使用関数削除情報ファイル格納パス指定 -ufiin エントリアドレス指定 -e 外部シンボル値の仮設定 -df ターゲット CPU 指定 -cpu CPU 情報ファイル指定 -cif デバッグ情報存在チェック抑止指定 -NCI0302LIB 内蔵 ROM/RAM 領域の自動設定 -set_rora 内蔵 ROM/RAM 領域自動設定の抑止指定 -Xset_rora ユーザ指定領域のチェック指定 -check_rora ユーザ指定領域のチェック抑止指定 -Xcheck_rora セクション配置領域チェック指定 -check_locate セクション配置領域チェック抑止指定 -Xcheck_locate ユーザ指定外セクションのチェック指定 -check_section ユーザ指定外セクションのチェック抑止指定 -Xcheck_section デフォルト スタンバイモード遷移命令チェック指定 -check_SCF デフォルト スタンバイモード遷移命令チェック抑止指定 -Xcheck_SCF フェッチ単位チェックの指定 -Wf 引数のレジスタ渡し用ロードモジュール出力指定 -rp 引数のスタック渡し用ロードモジュール出力指定 -Xrp デフォルト DIR 属性セクション合計サイズチェック指定 -check_dirsize デフォルト DIR 属性セクション合計サイズチェック抑止指定 -Xcheck_dirsize サイズ 0 のセクション配置チェック指定 -check_size0_sec サイズ 0 のセクション配置チェック抑止指定 -Xcheck_size0_sec デフォルト 相対アセンブルリスト入力ディレクトリ指定 -alin 絶対アセンブルリスト出力ディレクトリ指定 -alout 絶対アセンブルリスト出力指定 -als 絶対アセンブルリスト出力モジュール指定 -alsf 絶対アセンブルリスト出力抑止指定 -Xals ROM/RAM, ARRAY リスト出力指定 -alr ROM/RAM, ARRAY リスト出力モジュール指定 -alrf July 31, 2015, CM41-00315-6 デフォルト _main 必須 デフォルト デフォルト デフォルト 381 付録 付録 D リンカのオプション一覧表 Su pp or t So ft Manu al 表 D-1 リンカのオプション一覧表 (3 / 3) 機能 382 オプション 備考 ROM/RAM, ARRAY リスト出力抑止指定 -Xalr ROM/RAM, ARRAY リストのシンボルとアドレスの表示位置指定 -na/-an 外部シンボル相互参照情報リスト出力指定 -xl 外部シンボル相互参照情報リストファイル名指定 -xlf 外部シンボル相互参照情報リスト出力抑止指定 -Xxl ローカルシンボルリスト出力指定 -sl ローカルシンボルリストファイル名の指定 -slf ローカルシンボルリスト出力抑止指定 -Xsl セクション詳細マップリスト出力指定 -ml セクション詳細マップリストファイル名の指定 -mlf セクション詳細マップリスト出力抑止指定 -Xml デフォルトオプションファイル読込み抑止指定 -Xdof *共通オプション オプションファイル読込み指定 -f *共通オプション ヘルプメッセージ表示指定 -help *共通オプション 版数 / メッセージ出力指定 -V *共通オプション 版数 / メッセージ出力抑止 -XV *共通オプション 終了メッセージ表示指定 -cmsg *共通オプション 終了メッセージ表示抑止指定 -Xcmsg *共通オプション ワーニング発生時の終了コードを 1 にする指定 -cwno *共通オプション ワーニング発生時の終了コードを 0 にする指定 -Xcwno *共通オプション CM41-00315-6, July 31, 2015 付録 付録 E ライブラリアンのオプション一覧表 Support 付録 E Soft Ma nual ライブラリアンのオプション一覧表 表 E-1 にライブラリアンのオプション一覧を示します。 ■ ライブラリアンのオプション一覧 表 E-1 ライブラリアンのオプション一覧表 機能 オプション 備考 モジュールの追加 ( 登録 ) -a モジュールの置換 ( 登録 ) -r モジュールの削除 -d モジュールの抽出 -x リストファイルの出力指定 -m リストファイルの出力抑止指定 -Xm デフォルト リストファイルの詳細情報の出力指定 -dt s, d, r, a リスト 1 ページの行数指定 -pl デフォルト 60 リスト 1 行の桁数指定 -pw デフォルト 70 バックアップファイルの作成 -b バックアップファイルの作成抑止 -Xb ライブラリファイルの内容検査 -c ファイル内容の最適化 -O デバッグ情報の出力指定 -g デバッグ情報の出力抑止指定 -Xg ターゲット CPU 指定 -cpu CPU 情報ファイル指定 -cif 引数のレジスタ渡し用ライブラリ出力指定 -rp 引数のスタック渡し用ライブラリ出力指定 -Xrp デフォルト デフォルトオプションファイル読込み抑止指定 -Xdof * 共通オプション オプションファイル読込み指定 -f * 共通オプション ヘルプメッセージ表示指定 -help * 共通オプション 版数 / メッセージ出力指定 -V * 共通オプション 版数 / メッセージ出力抑止指定 -XV * 共通オプション 終了メッセージ出力指定 -cmsg * 共通オプション 終了メッセージ出力抑止指定 -Xcmsg * 共通オプション ワーニング発生時の終了コードを 1 にする指定 -cwno * 共通オプション ワーニング発生時の終了コードを 0 にする指定 -Xcwno * 共通オプション July 31, 2015, CM41-00315-6 デフォルト 必須 383 付録 付録 F オブジェクト形式コンバータのコマンドおよびオプショ ン一覧表 Su pp or t 付録 F So ft Manu al オブジェクト形式コンバータのコマンドおよびオプ ション一覧表 表 F-1 にオブジェクト形式コンバータのコマンド一覧を , 表 F-2 にオブジェクト形 式コンバータのオプション一覧を示します。 ■ オブジェクト形式コンバータのコマンド一覧 表 F-1 オブジェクト形式コンバータのコマンド一覧 コマンド名 384 機能 f2ms 絶対形式ロードモジュール → S フォーマット f2hs 絶対形式ロードモジュール → 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 フォーマット CM41-00315-6, July 31, 2015 付録 付録 F オブジェクト形式コンバータのコマンドおよびオプショ ン一覧表 Support Soft Ma nual ■ オブジェクト形式コンバータのオプション一覧 表 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 のみ スプリットモード抑止指定 マップリストファイル作成指定 マップリストファイル作成抑止指定 出力ファイル S フォーマット指定 出力ファイル HEX フォーマット指定 -I16, -I20, -I32 スタートアドレスレコード出力指定 -entry f2hs のみ スタートアドレスレコード出力抑止指定 -Xentry f2hs のみ 整形指定 -adjust f2ms, f2hs のみ 開始アドレス変更指定 デフォルトオプションファイル読込み抑止指定 -ST f2hs, h2hs のみ m2ms, h2hs のみ -Xdof * 共通オプション -f * 共通オプション ヘルプメッセージ表示指定 -help * 共通オプション 版数 / メッセージ出力指定 -V * 共通オプション 版数 / メッセージ出力抑止 -XV * 共通オプション -cmsg * 共通オプション -Xcmsg * 共通オプション ワーニング発生時の終了コードを 1 にする指定 -cwno * 共通オプション ワーニング発生時の終了コードを 0 にする指定 -Xcwno * 共通オプション オプションファイル読込み指定 終了メッセージ表示指定 終了メッセージ表示抑止指定 July 31, 2015, CM41-00315-6 385 付録 付録 G OS による仕様の相違点 Su pp or t 付録 G So ft Manu al 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 386 Windows CM41-00315-6, July 31, 2015 付録 付録 H F2MC-16LX スタンバイモード遷移命令チェックツール Support 付録 H Soft Ma nual F2MC-16LX スタンバイモード遷移命令チェックツール F2MC-16LX スタンバイモード遷移命令チェックツールについて詳しく説明します。 なお , V30L10 以降のリンカでは , -cpu で指定された MB 番号からスタンバイモード 遷移命令チェックが必要な品種か判断し , チェックが必要な品種である場合には , ス タンバイモード遷移命令チェックツールを用いて自動的にチェックを行います。 H.1 F2MC-16LX スタンバイモード遷移命令チェックツールの概要 H.2 スタンバイモード遷移命令チェックツールの操作方法 H.3 チェック手順 H.4 警告メッセージ H.5 チェック方法 H.6 検出可能なスタンバイモード遷移命令 H.7 スタンバイモード遷移命令チェックツールの制限事項 H.8 スタンバイモード遷移のための低消費電力モード制御レジスタ (LPMCR) へアク セスする際の注意事項 July 31, 2015, CM41-00315-6 387 付録 付録 H F2MC-16LX スタンバイモード遷移命令チェックツール Su pp or t H.1 So ft Manu al F2MC-16LX スタンバイモード遷移命令チェックツールの概要 ここでは , F2MC-16LX スタンバイモード遷移命令チェックツールの概要について説 明します。 ■ スタンバイモード遷移命令チェックツールの概要 スタンバイモード遷移命令チェックツールは , F2MC-16LX ファミリ用に開発したプロ グラム上のスタンバイモード遷移命令を検出するツールです。 SOFTUNE V3 ツールで作成された絶対形式ロードモジュールファイル (ABS ファイル ) 内のコードセクションを検索し , 低消費電力モード制御レジスタ (LPMCR:A0 番地 ) を アクセスしていると考えられる命令を検出します。検出された低消費電力モード制御 レジスタ (LPMCR:A0 番地 ) をアクセスしていると考えられる命令以降の命令列を チェックし , 適切でない命令列の場合には警告メッセージを出力します。 警告メッセージが出力された箇所については ,「H.8 スタンバイモード遷移のための低 消費電力モード制御レジスタ (LPMCR) へアクセスする際の注意事項」に適合するか判 断していただき,適合する場合には注意事項に記載されている命令列に変更していただ く必要があります。注意事項の対応が行なわれたスタンバイモード遷移命令に関しま しては警告メッセージの出力は行なわれません。 また , スタンバイモード遷移命令チェックツールは , お客様のプログラムを静的に チェックしますので , お客様のプログラムが実行時にレジスタ間接を用いてスタンバ イモード遷移を行っている場合など ,低消費電力モード制御レジスタ(LPMCR:A0番地) をアクセスしていると考えられるコードおよび命令が完全に検出できるわけではあり ません。このような場合には , お客様にてスタンバイモード遷移命令列を確認していた だく必要があります。 本スタンバイモード遷移命令チェックツールのチェック処理概要および検出可能なス タンバイモード遷移命令列については「H.5 チェック方法」および「H.6 検出可能な スタンバイモード遷移命令」を参照してください。 図 H.1-1 スタンバイモード遷移命令チェックツールの機能 絶対形式 ロードモジュール 入力 (.abs) スタンバイモード 遷移命令チェック ツール (SCF_Check.exe) 検出メッセージ (コンソール) 388 出力 CM41-00315-6, July 31, 2015 付録 付録 H F2MC-16LX スタンバイモード遷移命令チェックツール Support H.2 Soft Ma nual スタンバイモード遷移命令チェックツールの操作方法 ここでは , スタンバイモード遷移命令チェックツールの起動方法とオプションについ て説明します。 ■ 起動方法 スタンバイモード遷移命令チェックツールは , 以下に示す手順で操作してください。 【書式】 SCF_Check [ < オプション >] < 絶対形式ロードモジュールファイル名 > 絶対形式ロードモジュールファイルのデフォルト拡張子は ".ABS" です。 【例】 SCF_Check module.abs SCF_Check -Wf module.abs 【説明】 スタンバイモード遷移命令チェックツールを使用するには , 以下の 3 つの方法があ ります。 • コマンドラインで使用する。 • SOFTUNE Workbench のカスタマイズビルド機能に登録する。 • SOFTUNE Workbench のツールの起動に登録し , 使用する。 ■ オプション スタンバイモード遷移命令チェックツールには , 以下のオプションがあります。 オプション名 説明 フェッチ単位チェックのみ行う。バイト単位チェックは行わない。 -Wf ■ 警告メッセージの出力先 スタンバイモード遷移命令チェックツールの警告メッセージは,標準出力に出力されま す。 警告メッセージをファイルに記録したい場合には , OS のリダイレクト機能を用いてく ださい。 【例】 July 31, 2015, CM41-00315-6 SCF_Check >check.log module.abs SCF_Check >check.log -Wf module.abs 389 付録 付録 H F2MC-16LX スタンバイモード遷移命令チェックツール Su pp or t So ft Manu al ■ コマンドラインで使用する方法 1. SCF_Check.exe を任意のフォルダにコピーします。 2. MS-DOS プロンプト ( コマンドプロンプト ) を起動します。 3. チェック対象の絶対形式ロードモジュールのあるフォルダに移動し , 以下のように コマンド入力を行います。 SCF_Check.exe をコピーしたフォルダのフルパス名 \SCF_Check 絶対形式ロードモジュール名 【例】 C:\SCF\SCF_Check module.abs C:\SCF\SCF_Check -Wf module.abs 【実行例】 図 H.2-1 コマンドラインの実行例 コマンド入力 C:\Softune\470\ABS>scf_check mb90470.abs *** W1378L:適切でないスタンバイモード遷移命令列をフェッチ検索で検出しました (mov io,#imm8, 00FC018B, cpu.c:70) *** W1378L:適切でないスタンバイモード遷移命令列をフェッチ検索で検出しました (mov io,#imm8, 00FC019C, cpu.c:77) *** W1378L:適切でないスタンバイモード遷移命令列をフェッチ検索で検出しました (mov io,#imm8, 00FC01AD, cpu.c:84) *** W1378L:適切でないスタンバイモード遷移命令列をフェッチ検索で検出しました (mov io,#imm8, 00FC01ED, cpu.c:106) *** W1378L:適切でないスタンバイモード遷移命令列をフェッチ検索で検出しました (mov io,#imm8, 00FC01F8, cpu.c:111) *** W1378L:適切でないスタンバイモード遷移命令列をフェッチ検索で検出しました (mov io,#imm8, 00FC0203, cpu.c:116) *** W1378L:適切でないスタンバイモード遷移命令列をフェッチ検索で検出しました (mov io,#imm8, 00FC022E, cpu.c:133) *** W1378L:適切でないスタンバイモード遷移命令列をフェッチ検索で検出しました (mov io,#imm8, 00FC0239, cpu.c:138) *** I0312L:S.C.Fチェックで8個のワーニングが出力されました C:\Softune\470\ABS> ■ SOFTUNE Workbench のカスタマイズビルド機能に登録する方法 V30L25 以降の SOFTUNE Workbench をご使用の場合 , 以下に示す方法でカスタマイズ ビルド機能に登録を行えば , ビルド時やメイク時にロードモジュール作成後に自動で チェックを行います。 登録方法 1. SCF_Check.exe を任意のフォルダにコピーします。 2. SOFTUNE Workbench を起動し , チェック対象のプロジェクトを開きます。 3. SOFTUNE Workbench の [ プロジェクト (P)] メニューの [ カスタマイズビルドの設定 (Z)] をクリックします。 4. [ カスタマイズビルドの設定 ] ダイアログで , [Linker] の [After] を選択し , 新規作成 ボタンをクリックします。 390 CM41-00315-6, July 31, 2015 付録 付録 H F2MC-16LX スタンバイモード遷移命令チェックツール Support Soft Ma nual 図 H.2-2 カスタマイズビルドの設定 1 5. [ カスタマイズビルドの設定 ] ダイアログの [ タイトル (T)], [ 実行ファイル名 (N)] , [ オプション (O)] に以下のように入力し , [ 有効 (E)] と [ アウトプットウィンドウを 使用 (U)] をチェックします。 入力例 備考 タイトル (T) SCF Check 実行ファイル名 (N) C:¥SCF¥SCF_Check.exe スタンバイモード遷移命令チェックツー ルをフルパスで指定 オプション (O) %(LOADMODULEFILE) ロードモジュールファイルを指定 ( ロード モジュールファイル- >フルパス名を指定) 実行時のディレクトリ(Y) July 31, 2015, CM41-00315-6 - 指定の必要はありません 391 付録 付録 H F2MC-16LX スタンバイモード遷移命令チェックツール Su pp or t So ft Manu al 図 H.2-3 カスタマイズビルドの設定 2 6. [OK] ボタンをクリックし , [ カスタマイズビルドの設定 ] を終了します。 使用方法 メイクまたはビルドを実行するとスタンバイモード遷移命令チェックツールが自 動的に実行され , 警告メッセージがある場合には , アウトプットウィンドウに以下 のメッセージが出力されます。 【実行例】 図 H.2-4 カスタマイズビルドでの実行例 チェックツールでの警告メッセージです。 ※注意事項: チェックツールにて警告メッセージが出力された場合において も,エラーがない場合には,"エラーは検出されませんでした。"と 出力されますのでご注意願います。 392 CM41-00315-6, July 31, 2015 付録 付録 H F2MC-16LX スタンバイモード遷移命令チェックツール Support Soft Ma nual ■ SOFTUNE Workbench のツールの起動に登録し , 使用する方法 V30L24 以前の SOFTUNE Workbench をご使用の場合は , 以下に示す方法で「ツールの 設定」で「ツールの起動」に登録を行えば , スタンバイモード遷移命令チェックツール を Workbench から使用できます。 登録方法 1. SCF_Check.exe を任意のフォルダにコピーします。 2. SOFTUNE Workbench を起動します。 3. SOFTUNE Workbench の [ 環境 (S)] メニューの [ ツールの設定 (O)] をクリックします。 4. [ ツールの設定 ] ダイアログで , [ タイトル (T)], [ 実行ファイル名 (N)] , [ オプション (O)]に以下のように入力し, [アウトプットウィンドウを使用(U)]をチェックします。 入力例 備考 タイトル (T) SCF Check 実行ファイル名 (N) C:¥SCF¥SCF_Check.exe スタンバイモード遷移命令チェックツー ルをフルパスで指定 オプション (O) %a ロードモジュールファイルを指定 実行時のディレクトリ(Y) C:¥SCF 実行ファイル名 (N) を設定すると自動で設 定されます。 図 H.2-5 ツールの設定 July 31, 2015, CM41-00315-6 393 付録 付録 H F2MC-16LX スタンバイモード遷移命令チェックツール Su pp or t So ft Manu al 5. [ ツールの設定 ] ダイアログで , [ 設定 (E)] ボタンをクリックしツールを登録します。 6. [OK] ボタンをクリックし , [ ツールの設定 ] を終了します。 スタンバイモード遷移命令チェックツールを使用する時は , 以下のように行います。 使用方法 SOFTUNE Workbench の [ 環境 ] メニューの [ ツールの起動 ] から , [ ツールの設定 ] で設定したタイトル名を選択してください。 図 H.2-6 使用方法 【実行例】 図 H.2-7 実行例 チェックツールでの警告メッセージです。 ※注意事項: チェックツールにて警告メッセージが出力された場合において も,エラーがない場合には,"エラーは検出されませんでした。"と 出力されますのでご注意願います。 394 CM41-00315-6, July 31, 2015 付録 付録 H F2MC-16LX スタンバイモード遷移命令チェックツール Support H.3 Soft Ma nual チェック手順 ここでは , スタンバイモード遷移命令チェックツールを用いたチェックの手順につい て説明します。 ■ チェック手順 スタンバイモード遷移命令チェックツールを使用し,以下に示す手順でチェックを行っ てください。 手順 1 オプションを指定しないでスタンバイモード遷移命令チェックツー ルにかける。 冗長なメッセージが出力されるかもしれませんが , フェッチ単位 チェック , バイト単位チェックの両方を行い , 疑わしい箇所をすべて 検出します。 これによりチェックの漏れが無くなります。 ( ただし , 実行時のレジスタ間接等の検出は除く ) 【例】 SCF_Check module.abs 手順 2 警告メッセージが出力された箇所を見直し , 修正するべきところを 修正する。 冗長な警告メッセージに関しては無視してください。 手順 3 -Wf オプションを指定し , 再度チェックを行う。 問題ないことを確認してください。 【例】 SCF_Check -Wf module.abs 見直し / 修正により警告が出なくなるまで , 手順 2 ~手順 3 を繰り返す。 July 31, 2015, CM41-00315-6 395 付録 付録 H F2MC-16LX スタンバイモード遷移命令チェックツール Su pp or t H.4 So ft Manu al 警告メッセージ 「スタンバイモード遷移のための低消費電力モード制御レジスタ (LPMCR) へアクセ スする際の注意事項」の対応が行なわれていない可能性があるスタンバイモード遷 移命令列を検出した場合に出力する警告メッセージについて説明します。 ■ 警告メッセージ 本スタンバイモード遷移命令チェックツールは ,「スタンバイモード遷移のための低消 費電力モード制御レジスタ (LPMCR) へアクセスする際の注意事項」の対応が行なわれ ていないスタンバイモード遷移命令列を検出した場合に,以下のようなメッセージを出 力します。 【書式】 警告メッセージ ( 命令パターン 絶対アドレス ソースファイル名 : 行番号 ) 警告メッセージ部には , フェッチ単位チェック , バイト単位チェックの 2 つのチェック 方法のうち , どちらのチェックで見つかったかを示すため , "***" の後に "F" または , "B" が付加されます。 【フェッチ単位チェックで見つかった場合の例】 *** W1378L: 適切でないスタンダード遷移命令をフェッチ検索で検出しました (setb io,#imm8 0x00ffffff source filename:line number) 【バイト単位チェックで見つかった場合の例】 *** W1379L: 適切でないスタンダード遷移命令をバイト検索で検出しました (setb io,#imm8 0x00ffffff source filename:line number) 【備考】 括弧内の補助情報に示される , ソースファイル名・行番号は , デバッグ情報から取 得しています。 デバッグ情報がない場合はソースファイル名 , 行番号は表示されません。 ソースファイル名,行番号を表示させたい場合は,チェック対象プログラムをデバッ グ情報付きで再ビルドしてください。 396 CM41-00315-6, July 31, 2015 付録 付録 H F2MC-16LX スタンバイモード遷移命令チェックツール Support H.5 Soft Ma nual チェック方法 ここでは , チェックの方法について説明します。 ■ チェック方法 本ツールは「フェッチ単位チェック」と「バイト単位チェック」の 2 つの方法を用い てチェックを行っています。 ■ フェッチ単位チェック 命令のフェッチを行い , 1 命令ずつ取り出し , チェックを行っていく方法です。 フェッチ単位チェックでは , 命令単位でチェックを行っているため , 誤検出による冗長 な警告メッセージが出力される可能性がありませんが , 反面 , コードセクションに命令 以外のデータが出力されていた場合に正しくチェックできない可能性があります。 【例】 コードセクションのバイトイメージ 0x42 0x6C 0x43 0xA0 オペコード , オペランド (16 進 ) ••• 命令 0x42, 0x6C MOV A,#0x6C 0x43, 0xA0 MOVX A,#0xA0 ・ ・ ・ 「MOV A,#0x6C」をチェック 「MOVX A,#0xA0」をチェック ・ ・ ・ フェッチ単位チェックで ,「スタンバイモード遷移のための低消費電力モード制御 レジスタ (LPMCR) へアクセスする際の注意事項」の対応が行なわれていないスタ ンバイモード遷移命令列が検出されると以下の警告メッセージが出力されます。 *** W1378L: 適切でないスタンダード遷移命令をフェッチ検索で検出しました (movw io,A, 00F90003 module.c:61) July 31, 2015, CM41-00315-6 397 付録 付録 H F2MC-16LX スタンバイモード遷移命令チェックツール Su pp or t So ft Manu al ■ バイト単位チェック 命令に関係なく , 1 バイトデータ単位でチェックを行う方法です。 バイト単位チェックでは , 1 バイトずつアドレス更新しながらバイトパターンでチェッ クを行っているため , 検出漏れは発生しませんが , 反面 , オペランドをオペコードと判 定する場合が考えられ , 冗長な警告メッセージが出力される可能性があります。 冗長なメッセージが出力される可能性がありますので,警告メッセージが出力された箇 所について,本当にスタンバイモード遷移命令列かどうかの判断はプログラム作成者に お願いすることになります。 【例】 コードセクションのバイトイメージ 0x42 0x6C 0x43 0xA0 オペコード , オペランド (16 進 ) ••• 命令 0x42, 0x6C MOV A,#0x6C 0x43, 0xA0 MOVX A,#0xA0 ・ ・ ・ 「0x42」をチェック 「0x6C」をチェック 「0x43」をチェック 「0xA0」をチェック ・ ・ ・ バイト単位チェックで ,「スタンバイモード遷移のための低消費電力モード制御レ ジスタ (LPMCR) へアクセスする際の注意事項」の対応が行なわれていないスタン バイモード遷移命令列が検出されると以下の警告メッセージが出力されます。 *** W1379L: 適切でないスタンダード遷移命令をバイト検索で検出しました (movw io,A, 00F90003 module.c:61) 398 CM41-00315-6, July 31, 2015 付録 付録 H F2MC-16LX スタンバイモード遷移命令チェックツール Support Soft Ma nual ■ スタンバイモード遷移命令を検出しても警告を出力しない場合 本スタンバイモード遷移命令チェックツールは,スタンバイモード遷移命令を検出した 場合でも , 遷移命令の次の命令が以下の命令列の場合には , 警告メッセージを出力しま せん。 ● スタンバイモード遷移命令の直後に表 H.8-3 の命令が記述されている場合 【例】 MOV LPMCR,#xxh ; スタンバイモード遷移命令 CLRB EIRR:0 ; 表 H.8-3 の命令 MOV A,#010H ; 任意の命令 ・ ・ ・ ● スタンバイモード遷移命令の直後に対策コードが記述されている場合 対策コード: スタンバイモード遷移命令の直後に 2 個以上の NOP 命令と JMP 系 命令を記述したもの , JMPP, JCTX, RET, RETP, RETI 命令でも良い。 JMP @(@PC+disp16),JMPP @(@PC+disp16) は除く 【例】 MOV LPMCR,#xxh ; スタンバイモード遷移命令 NOP ; 対策コード 1 個目の NOP NOP ; 対策コード 2 個目の NOP JMP LABEL ; 対策コード JMP 系命令 MOV A,#010H ; 任意の命令 ・ ・ ・ July 31, 2015, CM41-00315-6 399 付録 付録 H F2MC-16LX スタンバイモード遷移命令チェックツール Su pp or t H.6 So ft Manu al 検出可能なスタンバイモード遷移命令 ここでは , 検出可能なスタンバイモード遷移命令について説明します。 ■ 検出可能なスタンバイモード遷移命令 本ツールは , スタンバイモード遷移命令に以下に示す命令が使用されていた場合 , その 命令以降の命令をチェックし , 警告メッセージを出力します。 表 H.6-1 スタンバイモード遷移命令 1 命令 mov mov movw mov movw io, #imm8 dir,#imm8 io,#imm16 addr16,#imm8 ddr16,#imm16 備考 io, dir, addr16 が 0x00A0 か つ , #imm8, #imm16 の bit4 が 1 かつ , bit7 が 1 または bit6が1またはbit3が0のとき検出します。 表 H.6-2 スタンバイモード遷移命令 2 命令 setb setb setb io:bp dir:bp addr16:bp 備考 io, dir, addr16 が 0x00A0 かつ , bp が 7 ま たは 6 のとき検出します。 表 H.6-3 スタンバイモード遷移命令 3 命令 clrb clrb clrb io:bp dir:bp addr16:bp 備考 io, dir, addr16 が 0x00A0 かつ , bp が 3 の とき検出します。 表 H.6-4 スタンバイモード遷移命令 4 命令 mov mov mov movw movw movw or and orw andw 400 io,A dir,A addr16,A io,A dir,A addr16,A addr16,A addr16,A addr16,A addr16,A 備考 io, dir, addr16 が 0x00A0 のとき検出しま す。 CM41-00315-6, July 31, 2015 付録 付録 H F2MC-16LX スタンバイモード遷移命令チェックツール Support Soft Ma nual 表 H.6-5 スタンバイモード遷移命令 5 命令 movb movb movb io:bp,A dir:bp,A addr:bp,A 備考 io, dir, addr16 が 0x00A0 かつ , bp が 3 ま たは 6 または 7 のとき検出します。 <注意事項> 本スタンバイモード遷移命令チェックツールは静的なチェックのみ行っており , 明らかに 低消費電力モード制御レジスタ (LPMCR/ アドレス 0x00A0) への書込みと判断できる命令 のみ検出します。 実効レジスタに低消費電力モード制御レジスタのアドレス (0x00A0) を設定し , そのレジ スタを用いたレジスタ間接アドレッシングで , スタンバイモード遷移を行う様なプログラ ムでは , スタンバイモード遷移命令は検出できません。 検出不可能なスタンバイモード遷移命令については「H.7 スタンバイモード遷移命令 チェックツールの制限事項」の「検出不可能なスタンバイモード遷移命令」を参照してく ださい。 July 31, 2015, CM41-00315-6 401 付録 付録 H F2MC-16LX スタンバイモード遷移命令チェックツール Su pp or t H.7 So ft Manu al スタンバイモード遷移命令チェックツールの制限事項 スタンバイモード遷移命令チェックツールの制限事項について説明します。 ■ 制限事項 スタンバイモード遷移命令チェックツールには , 表 H.7-1 に示す制限があります。 表 H.7-1 スタンバイモード遷移命令 5 項 制限内容 検出不可能なスタンバイモード遷移命令 本スタンバイモード遷移命令チェックツールは ,「H.6 検出可能なスタンバイモード遷移命令」で示す命令を用 いてスタンバイモード遷移を行っている場合のみスタ ンバイモード遷移命令の検出を行います。以下の命令を 用いてスタンバイモード遷移を行っている場合は検出 できませんので十分に注意をしてください。 MOV MOV MOV MOV MOVW MOVW MOVW チェック可能なファイル 402 eam,#imm8 eam, Ri eam, A @RLi+disp8, A eam, RWi eam, A @RLi+disp8, A 本スタンバイモード遷移命令チェックツールは , SOFTUNE V3 ツールで作成された絶対形式ロードモ ジュールのみをチェック対象としています。SOFTUNE V1( 旧ツール ) で作成された絶対形式ロードモジュール のチェックにはご使用いただけません。 CM41-00315-6, July 31, 2015 付録 付録 H F2MC-16LX スタンバイモード遷移命令チェックツール Support H.8 Soft Ma nual スタンバイモード遷移のための低消費電力モード制御レ ジスタ (LPMCR) へアクセスする際の注意事項 ここでは , スタンバイモード遷移のための低消費電力モード制御レジスタ (LPMCR) へアクセスする際の注意事項について説明します。 ■ 注意事項が適用される対象品種 最新のハードウェアマニュアルおよび正誤表に ,「スタンバイモード遷移のための低消 費電力モード制御レジスタ (LPMCR) へアクセスする際の注意事項」が掲載されている 品種。 ■ アセンブラ言語を使用して低消費電力モード制御レジスタ (LPMCR) にアクセスす る場合 低消費電力モード制御レジスタ (LPMCR) においてスタンバイモードに移行する設定を 行う場合は , 表 H.8-1 の命令を使用してください。 表 H.8-1 の命令によるスタンバイモード遷移命令の直後には必ず下記囲み内の命令列 (NOP,NOP,JMP $+3) を配置してください。なお , 表 H.8-2 のスタンバイ制御マクロ命令 をご使用いただければ以下の命令列が配置されます。したがって , プログラム開発の際 には , スタンバイ制御マクロのご使用を推奨します。 MOV NOP NOP JMP LPMCR, #H'xx ; 表 H.8-1 の低消費電力モード遷移命令 $+3 MOV ; 次の命令へのジャンプ A, #H'10 ; 任意の命令 囲み内の命令列 (NOP,NOP,JMP $+3) 以外が配置されるとスタンバイモード解除後の動 作は保証されません。 ただし , スタンバイモード遷移命令直後に表 H.8-3 に示した命令が存在する場合のみ , 囲み内の命令列 (NOP,NOP,JMP $+3) が無くても , スタンバイモード解除後の動作は保 証されます。 July 31, 2015, CM41-00315-6 403 付録 付録 H F2MC-16LX スタンバイモード遷移命令チェックツール Su pp or t So ft Manu al 表 H.8-1 低消費電力モードに遷移する場合に使用する命令一覧 MOV io, #imm8 MOV dir, #imm8 MOV eam, #imm8 MOV eam, Ri MOV io, A MOV dir, A MOV addr16, A MOV eam, A MOV @Rli+disp8,A MOVW io, #imm16 MOVW dir, #imm16 MOVW eam, #imm16 MOVW eam, RWi MOVW io, A MOVW dir, A MOVW addr16, A MOVW eam, A MOVW @Rli+disp8,A SETB io:bp SETB dir:bp SETB addr16:bp CLRB io:bp CLRB dir:bp CLRB addr16:bp ■ スタンバイ制御マクロについて 以下のスタンバイ制御マクロをご使用いただければ,スタンバイモード遷移のための低 消費電力モード制御レジスタ (LPMCR) へアクセスする際の注意事項に対応した命令列 となります。したがって , プログラム開発の際には , スタンバイ制御マクロのご使用を 推奨いたします。 表 H.8-2 スタンバイ制御マクロ 404 IO_STOP_HOLD 低消費電力モード制御レジスタ (LPMCR) の SPL ビット =0, STP ビット =1 に設定します。 ストップモードまたは疑似時計モードに遷移します。 外部端子のレベルを保持します。 IO_STOP_Z 低消費電力モード制御レジスタ (LPMCR) の SPL ビット =1, STP ビット =1 に設定します。 ストップモードまたは疑似時計モードに遷移します。 外部端子のレベルをハイインピーダンスにします。 IO_SLEEP 低消費電力モード制御レジスタ (LPMCR) の SLP ビット =1 に設定します。 スリープモードに遷移します。 IO_TMD_HOLD 低消費電力モード制御レジスタ (LPMCR) の SPL ビット =0, STP ビット =1 に設定します。 時計モードに遷移します。外部端子のレベルを保持します。 IO_TMD_Z 低消費電力モード制御レジスタ (LPMCR) の SPL ビット =1, STP ビット =1 に設定します。 時計モードに遷移します。外部端子のレベルをハイインピーダンスにしま す。 IO_SET_LPMCR IMM 低消費電力モード制御レジスタ (LPMCR) に IMM に指定した値が設定され ます。 CM41-00315-6, July 31, 2015 付録 付録 H F2MC-16LX スタンバイモード遷移命令チェックツール Support Soft Ma nual 表 H.8-3 対象命令一覧 ADDC A ADDDC A SUBC A SUBDC A ADDW A SUBW A DIVU A MULU A MULUW A NOT A ANDW A ORW A XORW A NOTW A NEG A NEGW A ASRW A LSRW A / SHRW A LSLW A / SHLW A SWAP SWAPW / XCHW A,T EXTW MOV A,Ri MOV A,ear MOV A,@RWj MOV A,@RWj+ MOVX A,Ri MOVX A,ear MOVX A,@RWj MOVX A,@RWj+ MOV @RWj,A MOV @RWj+,A MOV Ri,@RWj MOV Ri,@RWj+ MOV @RWj,Ri MOV @RWj+,Ri MOV @RWj,#imm8 MOV @RWj+,#imm8 XCH A,@RWj XCH A,@RWj+ XCH Ri,@RWj XCH Ri,@RWj+ MOVW A,RWi MOVW A,ear MOVW A,@RWj MOVW A,@RWj+ MOVW @RWj,A MOVW @RWj+,A MOVW RWi,@RWj MOVW RWi,@RWj+ MOVW @RWj,RWi MOVW @RWj+,RWi MOVW @RWj,#imm16 July 31, 2015, CM41-00315-6 MOVW @RWj+,#imm16 XCHW A,@RWj XCHW A,@RWj+ XCHW RWi,@RWj XCHW RWi,@RWj+ MOVL A,@RWj MOVL A,@RWj+ MOVL @RWj,A MOVL @RWj+,A ADD A,@RWj ADD A,@RWj+ ADD @RWj,A ADD @RWj+,A ADDC A,@RWj ADDC A,@RWj+ ADDC A,ear SUB A,@RWj SUB A,@RWj+ SUB @RWj,A SUB @RWj+,A SUBC A,@RWj SUBC A,@RWj+ SUBC A,ear ADDW A,@RWj ADDW A,@RWj+ ADDW @RWj,A ADDW @RWj+,A ADDCW A,@RWj ADDCW A,@RWj+ ADDCW A,ear SUBW A,@RWj SUBW A,@RWj+ SUBW @RWj,A SUBW @RWj+,A SUBCW A,@RWj SUBCW A,@RWj+ SUBCW A,ear ADDL A,@RWj ADDL A,@RWj+ SUBL A,@RWj SUBL A,@RWj+ INC @RWj INC @RWj+ DEC @RWj DEC @RWj+ INCW @RWj INCW @RWj+ DECW @RWj DECW @RWj+ INCL @RWj INCL @RWj+ DECL @RWj DECL @RWj+ CMP A,@RWj CMP A,@RWj+ CMPW A,@RWj CMPW A,@RWj+ CMPL A,@RWj CMPL A,@RWj+ MULU A MULU A,@RWj MULU A,@RWj+ MULUW A MULUW A,@RWj MULUW A,@RWj+ DIVU A,@RWj DIVU A,@RWj+ DIVUW A,@RWj DIVUW A,@RWj+ AND A,@RWj AND A,@RWj+ AND @RWj,A AND @RWj+,A OR A,@RWj OR A,@RWj+ OR @RWj,A OR @RWj+,A XOR A,@RWj XOR A,@RWj+ XOR @RWj,A XOR @RWj+,A NOT @RWj NOT @RWj+ ANDW A,@RWj ANDW A,@RWj+ ANDW @RWj,A ANDW @RWj+,A ORW A,@RWj ORW A,@RWj+ ORW @RWj,A ORW @RWj+,A XORW A,@RWj XORW A,@RWj+ XORW @RWj,A XORW @RWj+,A NOTW @RWj NOTW @RWj+ ANDL A,@RWj ANDL A,@RWj+ ORL A,@RWj ORL A,@RWj+ XORL A,@RWj XORL A,@RWj+ NEG @RWj NEG @RWj+ NEGW A NEGW @RWj NEGW @RWj+ NRML A,R0 RORC,A RORC @RWj RORC @RWj+ ROLC,A ROLC @RWj ROLC @RWj+ JMP @(@RWj) JMP @(@RWj+) JMPP @(@RWj) JMPP @(@RWj+) CALL @(@RWj) CALL @(@RWj+) CALLP @(@RWj) CALLP @(@RWj+) CALLP @ear DBNZ @RWj,REL DBNZ @RWj+,REL DWBNZ @RWj,REL DWBNZ @RWj+,REL INT9 PUSHW A PUSHW AH PUSHW PS AND CCR,#imm8 OR CCR,#imm8 MOVEA RWi,@RWj MOVEA RWi,@RWj+ MOVEA A,@RWj MOVEA A,@RWj+ SETB io:bp CLRB io:bp CBNE @RWj,#imm8,rel CWBNE @RWj,#imm16,rel MUL A,ear MUL A,@RWj MUL A,@RWj+ MULW A,RWi MULW A,@RWj MULW A,@RWj+ DIV A,@RWj DIV A,@RWj+ DIVW A,@RWj DIVW A,@RWj+ MUL A MULW A DIV A 405 付録 付録 H F2MC-16LX スタンバイモード遷移命令チェックツール Su pp or t So ft Manu al ● スタンバイ制御マクロを使用せず, C言語にて低消費電力モード制御レジスタ(LPMCR)にア クセスする場合 低消費電力モード制御レジスタ (LPMCR) においてスタンバイモードに移行する設定を 行う場合は , 以下の 1. から 3. のどれかの方法でアクセスしてください。 1. スタンバイモードに遷移させる命令を関数化し , スタンバイモード遷移命令の後に __wait_nop() のビルトイン関数を 2 個挿入してください。関数内で , スタンバイ復帰 の割込み以外の割込みが発生する可能性がある場合は , コンパイル時に最適化を実 施し , LINK/UNLINK 命令の発生を抑止してください。 例 ( 時計モードまたはタイムベースタイマモード遷移関数の場合 ) void enter_watch(){ IO_LPMCR.byte = 0x10; /* LPMCR の TMD ビットに 0 をセット */ __wait_nop(); __wait_nop(); } 2. スタンバイモードに遷移させる命令を __asm 文で記述し , スタンバイモード遷移命 令の後に 2 個の NOP と JMP 命令を挿入してください。 例 ( スリープモード遷移の場合 ) __asm(" MOV I:_IO_LPMCR, #H'58"); /* LPMCR の SLP ビットに 1 をセット */ __asm(" NOP"); __asm(" NOP"); __asm(" JMP $+3"); /* 次の命令へのジャンプ */ 3. スタンバイモードに遷移させる命令を #pragma asm ~ #pragma endasm 間に記述し , スタンバイモード遷移命令の後に 2 個の NOP と JMP 命令を挿入してください。 例 ( ストップモード遷移の場合 ) #pragma asm MOV I:_IO_LPMCR, #H'98 /* LPMCR の STP ビットに 1 をセット */ $+3 /* 次の命令へのジャンプ */ NOP NOP JMP #pragma endasm 406 CM41-00315-6, July 31, 2015 付録 付録 I SOFTUNE リンカ (flnk907s) と旧版リンカ (link907a) の 仕様の差異について Support 付録 I Soft Ma nual SOFTUNE リンカ (flnk907s) と旧版リンカ (link907a) の仕様の差異について ここでは , SOFTUNE リンカ (flnk907s) と , 旧版リンカ (link907a) の仕様の差異に ついて説明します。 ■ はじめに 本資料は , SOFTUNE リンカ (flnk907s) と , 旧版リンカ (link907a) の仕様の差異について 述べたものです。 flnk907s は , link907a に比べて以下の点が変更されています。 • コマンドラインの記述方法 • 絶対アセンブルリスト作成機能のリンカへの取り込み • 制限事項 ( 入力ファイル数 , セクション数 , シンボル数等 ) の緩和 • • • • 環境変数の強化 外部シンボルの相互参照情報リスト作成機能のサポート シンボルの詳細情報リスト作成機能のサポート モジュールごとのセクションマップ作成機能のサポート ■ 絶対アセンブルリスト作成機能 旧版ツールでは別製品としていた ,「絶対アセンブルリスト作成ツール (meal907a)」の 機能をリンカに取り込みました。 図 I-1 絶対アセンブルリスト作成機能 ソースプログラム アセンブラ(fasm907s) オブジェクト モジュール アセンブルリスト リンカ(flnk907s) ロードモジュール July 31, 2015, CM41-00315-6 リンカ出力リスト 絶対形式 アセンブルリスト 407 付録 付録 I SOFTUNE リンカ (flnk907s) と旧版リンカ (link907a) の 仕様の差異について Su pp or t So ft Manu al ■ コマンド行の差異 起動時のコマンドライン指定の差異を表 I-1 と表 I-2 に示します。 表 I-1 リンカの起動形式 flnk907s link907a link907a ファイル名 [ オプション ]... flnk907s [ オプション ]... [ ファイル名 ] link907a @ オプションファイル 表 I-2 リンカのオプション指定 flnk907s link907a オプションの指定位置 どの位置でも可能 ファイル名指定の後 オプションファイルの指定 -f オプションファイル @オプションファイル 可 不可 flnk907s link907a TMP TMP インストールパス指定 FETOOL - 表示文字コード指定 FELANG - デフォルトオプションファイル の格納パス指定 OPT907 - ライブラリ検索パス指定 LIB907 LIB907 LIB905 LIB902 オプションファイルの複数指定 ■ 環境変数 環境変数の差異を表 I-3 に示します。 表 I-3 環境変数 作業用ディレクトリ指定 ■ オプション オプションの差異を表 I-4 と表 I-5 に示します。 表 I-4 リンカのオプション (1 / 3) 408 flnk907s link907a 入力ファイル名の指定 不要 -LINK ロードモジュール出力指定 不要 -OBJECT ロードモジュール出力抑止 - -NOOBJECT 出力ロードモジュール名の指定 -o -NAME CM41-00315-6, July 31, 2015 付録 付録 I SOFTUNE リンカ (flnk907s) と旧版リンカ (link907a) の 仕様の差異について Support Soft Ma nual 表 I-4 リンカのオプション (2 / 3) flnk907s link907a デバッグ情報出力指定 -g -DEBUG/-DEV デバッグ情報出力抑止 -Xg -NODEBUG 絶対形式ロードモジュール出力 -a -FORM A 相対形式ロードモジュール出力 -r -FORM R マップリストファイル名指定 -m -LIST -Xm -NOLIST リスト表示部の名前省略解除 -dt - 簡易リンケージリストの指定 - -BRIEF リスト 1 ページの行数指定 -pl -PAGELENGTH リスト 1 行の桁数指定 -pw -PAGEWIDTH 外部シンボル相互参照リスト作成 -xl -CROSS_REFERENCE 外部シンボル相互参照リストファイル名 指定 -xlf - 外部シンボル相互参照リスト出力抑止 -Xxl -NOCROSS_REFERENCE シンボルリスト出力指定 -sl -LOCAL_SYMBOL シンボルリストファイル名指定 -slf - シンボルリスト出力抑止指定 -Xsl - セクション情報マップ出力指定 -ml - セクション情報マップファイル名指定 -mlf - セクション情報マップ出力抑止 -Xml - - -[NO]ERRORPRINT ワーニングレベルの設定 -w -[NO]WARNING ROM 領域指定 -ro -ROM_BANK RAM 領域指定 -ra -RAM_BANK セクション配置順 / アドレス指定 -sc -LOCATE/-SEGMENT セクショングループ指定 -gr - レジスタバンク領域の設定 -rg -REGISTER_BANK 自動配置指定 -AL -AUTO_LOCATE 検索ライブラリファイルの指定 -l -LIBRARY ライブラリ検索パスの指定 -L - シンボル個別のライブラリ検索 -el - マップリスト出力抑止 エラー情報ファイルの出力 / 出力抑止 July 31, 2015, CM41-00315-6 409 付録 付録 I SOFTUNE リンカ (flnk907s) と旧版リンカ (link907a) の 仕様の差異について Su pp or t So ft Manu al 表 I-4 リンカのオプション (3 / 3) flnk907s link907a ライブラリ検索機能抑止 -nl - デフォルトライブラリ検索抑止 -nd - エントリアドレスの指定 -e - 外部シンボル値の設定 -df - - -RETCODE オプションファイルの終了 不要 -END ヘルプの表示 -help - ターゲット CPU の指定 -cpu -CPU -Xdof - -V/-XV - ワーニング時の復帰値の変更 / 変更抑止 -cwno/-Xcwno - 終了メッセージの表示 / 非表示 -cmsg/-Xcmsg - 不要 -END ステータスコードのファイル出力 デフォルトオプションファイル入力抑止 起動メッセージの表示 / 非表示 記述終了指定 表 I-5 絶対形式アセンブルリスト出力関連 410 flnk907s meal907a 入力ディレクトリ指定 -alin -INPUT 出力ディレクトリ指定 -alout -OUTPUT リスト出力指定 -als - リスト出力モジュール指定 -alsf -LIST リスト出力抑止指定 -Xals -NOLIST ROM/RAM, ARRAY リスト出力指定 -alr -ROM_RAM_LIST ROM/RAM, ARRAYリスト出力モジュール指定 -alrf -ROM_RAM_LIST ROM/RAM, ARRAY リスト出力抑止指定 -Xalr -NOROM_RAM_LIST ROM/RAM, ARRAY リスト表示位置指定 -na -an -NAME_ADDRESS -ADDRESS_NAME CM41-00315-6, July 31, 2015 付録 付録 I SOFTUNE リンカ (flnk907s) と旧版リンカ (link907a) の 仕様の差異について Support Soft Ma nual ■ 制限事項の緩和 処理限界の差異を表 I-6 に示します。 表 I-6 処理限界 flnk907s link907a 入力ファイル数 65535 1024 結合モジュール数 65535 3000 結合セクション数 65535 8192 外部定義シンボル数 65535 65535 外部参照シンボル数 65535 65535 July 31, 2015, CM41-00315-6 411 付録 付録 J SOFTUNE ライブラリアン (flib907s) と旧版ライブラリ アン (lib907a) の仕様の差異について Su pp or t 付録 J So ft Manu al SOFTUNE ライブラリアン (flib907s) と旧版ライブラ リアン (lib907a) の仕様の差異について ここでは , SOFTUNE ライブラリアン (flib907s) と旧版ライブラリアン (lib907a) の 仕様の差異について説明します。 ■ はじめに 本資料は , SOFTUNE ライブラリアン (flib907s) と , 旧版ライブラリアン (lib907a) の仕 様の差異について述べたものです。 ■ コマンド行の差異 起動時のコマンドライン指定の差異を表 J-1 と表 J-2 に示します。 表 J-1 ライブラリアンの起動形式 flib907s lib907a flib907s [ オプション ]... [ ファイル名 ] lib907a ファイル名 [ オプション ]... lib907a @ オプションファイル 表 J-2 ライブラリアンのオプション指定 flib907s lib907a オプションの指定位置 どの位置でも可能 ファイル名指定の後 オプションファイルの指定 -f オプションファイル @オプションファイル 可 不可 flib907s lib907a TMP TMP インストールパス指定 FETOOL - 表示文字コード指定 FELANG - デフォルトオプションファイル の格納パス指定 OPT907 - オプションファイルの複数指定 ■ 環境変数 環境変数の差異を表 J-3 に示します。 表 J-3 環境変数 作業用ディレクトリ指定 412 CM41-00315-6, July 31, 2015 付録 付録 J SOFTUNE ライブラリアン (flib907s) と旧版ライブラリ アン (lib907a) の仕様の差異について Support Soft Ma nual ■ オプション オプションの差異を表 J-4 に示します。 表 J-4 ライブラリアンのオプション flib907s lib907a ライブラリファイル作成 -a -CREATE(-C) モジュールの追加 -a -APPEND(-A) モジュールの置換 -r -REPLACE(-R) モジュールの削除 -d -DELETE(-D) モジュールの選択 - -SELECT(-S) モジュールの抽出 -x -EXTRACT(-X) バックアップファイルの作成 / 作成抑止 -b/-Xb - デバッグ情報の出力 / 出力抑止 -g/-Xg - リストファイルの出力 -m { ファイル名 |-} - は標準出力 モジュール名リスト出力 -LIST(-L) ファイル名 [, キー ワード ...] キーワード 常に出力 [NO]MODULE セグメント情報リスト出力 -dt s [NO]SEGMENT 外部定義シンボル情報出力 -dt d -dt a [NO]PUBLIC 外部参照シンボル情報出力 -dt r -dt a [NO]EXTRN リストファイルの出力抑止 -Xm 相互参照リストの作成 - -CROSS_REFERENCE(-XR) リスト 1 ページの行数指定 -pl - リスト 1 行の桁数指定 -pw - .LIB ファイルの内容検査 .LIB ファイル内容の最適化 -c - -O - エラー情報ファイルの出力 / 出力抑止 - -[NO]ERRORPRINT (-[NO]RP) ステータスコードのファイル出力 - -RETCODE(-RC) オプションファイルの終了 不要 ヘルプの表示 -help ターゲット CPU の指定 -cpu CPU タイプチェック抑止 -END(E) -CPU - -NOCPUTYPECHECK (-NCTC) -Xdof - -V/-XV - ワーニング時の復帰値の変更 / 変更抑止 -cwno/-Xcwno - 終了メッセージの表示 / 非表示 -cmsg/-Xcmsg - デフォルトオプションファイル入力抑止 起動メッセージの表示 / 非表示 July 31, 2015, CM41-00315-6 413 付録 付録 J SOFTUNE ライブラリアン (flib907s) と旧版ライブラリ アン (lib907a) の仕様の差異について Su pp or t So ft Manu al ■ 制限事項の緩和 処理限界の差異を表 J-5 に示します。 表 J-5 処理限界 414 flib907s lib907a 入力ファイル数 65535 255 結合モジュール数 65535 255 結合セクション数 65535 255 外部定義シンボル数 65535 1536 外部参照シンボル数 65535 1536 CM41-00315-6, July 31, 2015 付録 付録 K SOFTUNE ロードモジュールコンバータ (f2ms, f2hs) と 旧版ロードモジュールコンバータ (lmc907a) の仕様の差異につ Support 付録 K Soft Ma nual SOFTUNE ロードモジュールコンバータ (f2ms, f2hs) と旧版ロードモジュールコンバータ (lmc907a) の仕 様の差異について ここでは , SOFTUNE ロードモジュールコンバータ (f2ms, f2hs) と旧版ロードモ ジュールコンバータ (lmc907a) の仕様の差異について説明します。 ■ はじめに 本資料は , SOFTUNE ロードモジュールコンバータ (f2ms, f2hs) と , 旧版ロードモジュー ルコンバータ (lmc907a) の仕様の差異について述べたものです。 ■ コマンド行の差異 起動時のコマンドライン指定の差異を表 K-1 と表 K-2 に示します。 表 K-1 ロードモジュールコンバータの起動形式 f2ms, f2hs lmc907a S f2ms [オプション]... [ファイル名] lmc907a ファイル名[オプション]... HEX f2hs [ オプション ]... [ ファイル名 ] lmc907a @ オプションファイル 表 K-2 ロードモジュールコンバータのオプション指定 f2ms, f2hs lmc907a オプションの指定位置 どの位置でも可能 ファイル名指定の後 オプションファイルの指定 -f オプションファイル @オプションファイル 可 不可 f2ms, f2hs lmc907a TMP TMP インストールパス指定 FETOOL - 表示文字コード指定 FELANG - OPT - オプションファイルの複数指定 ■ 環境変数 環境変数の差異を表 K-3 に示します。 表 K-3 環境変数 作業用ディレクトリ指定 デフォルトオプションファイル の格納パス指定 July 31, 2015, CM41-00315-6 415 付録 付録 K SOFTUNE ロードモジュールコンバータ (f2ms, f2hs) と 旧版ロードモジュールコンバータ (lmc907a) の仕様の差異につ Su pp or t So ft Manu al ■ オプション オプションの差異を表 K-4 に示します。 表 K-4 ロードモジュールコンバータのオプション f2ms, f2hs lmc907a S フォーマットへ変換 f2ms を使用 -FORM(-F) M HEX フォーマットへ変換 f2hs を使用 -FORM(-F) I 出力ファイル名の指定 -o -OUTPUT(-O) 出力レコード長の変更 別ツール (m2ms, h2hs) を使用 -LENGTH(-L) エラー情報ファイルの出力 / 出力抑止 - -[NO]ERRORPRINT (-[NO]RP) ステータスコードのファイル 出力 - -RETCODE(-RC) オプションファイルの終了 不要 -END(E) ヘルプの表示 -help - デフォルトオプションファイル 入力抑止 -Xdof - 起動メッセージの表示 / 非表示 -V/-XV - ワーニング時の復帰値の変更 / 変更抑止 -cwno/-Xcwno - 終了メッセージの表示 / 非表示 -cmsg/-Xcmsg - ■ 変換ツールの追加 SOFTUNE ツールで追加した変換ツールを表 K-5 に示します。 表 K-5 ロードモジュール変換ツール一覧 416 SOFTUNE ツール 旧 16 系ツール 絶対形式ロードモジュール → S フォーマット f2ms lmc907a -FORM M 絶対形式ロードモジュール → HEX フォーマット f2hs lmc907a -FORM I 絶対形式ロードモジュール → HEX16 フォーマット f2es lmc907a -FORM I 絶対形式ロードモジュール → HEX8 フォーマット f2is - S フォーマット → S フォーマット m2ms - HEX フォーマット → HEX フォーマット h2hs - S フォーマット → バイナリ m2bs - HEX フォーマット → バイナリ h2bs - S フォーマット → HEX16 フォーマット m2es - S フォーマット → HEX8 フォーマット m2is - HEX16 フォーマット → S フォーマット e2ms - HEX8 フォーマット → S フォーマット i2ms - CM41-00315-6, July 31, 2015 付録 付録 L SOFTUNE 言語ツール移行時のオブジェクト同一性確認 方法 Support 付録 L Soft Ma nual SOFTUNE 言語ツール移行時のオブジェクト同一性 確認方法 ここでは , SOFTUNE 言語ツール移行時のオブジェクト同一性確認方法について説 明します。 ■ はじめに 本資料は , 旧 16 アセンブラ (asm907a) 用のソースプログラムを新アセンブラ (fasm907s) に移植した際 , 新 / 旧両絶対形式ファイルがバイナリレベルで完全に一致しているかど うかを調べようとする手順を説明したものです。 ■ 比較手順の概略 以下に手順を図示します。 図 L-1 比較手順の概略図 旧絶対形式 ファイル 新絶対形式 ファイル 旧オブジェクト用 ロードモジュール コンバータ(lmc907a) 新オブジェクト用 ロードモジュール コンバータ(f2ms) Sフォーマット ファイル Sフォーマット ファイル Sフォーマット アジャスタ(m2ms) Sフォーマット アジャスタ(m2ms) 整形済み Sフォーマット ファイル 整形済み Sフォーマット ファイル アドレス昇順にソート 1レコードのデータ数を一定化 ファイル比較ツール(fc.exe) 比較リスト この情報を元に判断します。 新/旧ツールで作成した絶対形式オブジェクトデータを, Sフォーマットに変換します。 S フォーマットアジャスタを用いて S レコードを整形します。 ファイル比較ツールを用いて整形済み S フォーマットファイルを比較します。 July 31, 2015, CM41-00315-6 417 付録 付録 L SOFTUNE 言語ツール移行時のオブジェクト同一性確認 方法 Su pp or t So ft Manu al <注意事項> 1 行目の S0 レコードと , 最終行の S7 レコードに関しては , 違いがあっても無視してくだ さい。 ■ 実施例 旧アセンブラで作成した絶対形式ファイルを "old.abs", 新アセンブラで作成した絶対形 式ファイルを "new.abs" として説明します。 >lmc907a old.abs -o old.mhx → 旧絶対形式ファイルを S フォーマットに変換します。 >m2ms old.mhx -o old.ahx -ran 0xff00,0xffff -S3 → 旧 S フォーマットをソートします。 >f2ms new.abs -o new.mhx → 新絶対形式ファイルを S フォーマットに変換します。 >m2ms new.mhx -o new.ahx -ran 0xff00,0xffff -S3 → 新 S フォーマットをソートします。 >fc old.ahx new.ahx → ファイルを比較します。 比較結果につぎのような違いが表示されることがありますが , レコードの先頭が "S0" あるいは "S7" から始まるデータである場合は無視してください。 このレコードはコメントを表すため , 一致する必要はありません。 【出力例】 >fc old.ahx new.ahx ***** old.ahx S0080000746573743106 ***** new.ahx S0080000544553543285 ***** <注意事項> F2MC-16 ファミリが持つ 16M バイトすべてのメモリ空間に渡るデータを , 一度に m2ms で処理しようとすると , 実行が遅くなる場合があります。 このような場合には , -ran オプションを使用して , ファイルを分割してください。 比較するデータが大きい場合にも , 同様に分割することをお勧めします。 418 CM41-00315-6, July 31, 2015 付録 付録 L SOFTUNE 言語ツール移行時のオブジェクト同一性確認 方法 Support Soft Ma nual ■ データに差異が生じている場合 以下に FC の出力例を示します。この情報を元に差異が生じた個所を特定します。 【出力例】 >fc old.ahx new.ahx ***** old.ahx S31500FF0000000102032C37060708090A0B0C0D0E0F19 ***** new.ahx S31500FF0000000102030405060708090A0B0C0D0E0F73 ***** ● S3 レコードからアドレスを求めます。 S3 レコードは以下のフォーマットを持ちます。 S3 データレコード長 (1Byte) アドレス (4Byte) ↑ データ CS ↑ S3 はデータレコードを表します。 ↑ データの開始アドレスを表します。 チェックサム * "S3" レコード以外は無視してください。 これより差異が生じているデータのアドレスを求めることができます。 S31500FF0000000102030405060708090A0B0C0D0E0F73 このレコードのデータは 0x00ff0000 番地から配置されています。 これより差異が生じているデータ "0405" は 0xff0005 番地と , 0xff0006 番地に配置され ているものであることが判ります ● リンクマップを使った問題モジュールの特定 リンクマップを使って , 前述の S3 レコードから求めたアドレスがどのモジュールで記 述されているかを特定します。 リンク時に -mlf オプションと -als オプションの指定が必要です。 mlfオプションは詳細マップ情報を, als オプションは絶対アセンブルリストを作成しま す。 【出力例】 >flnk907s main sub1 -AL 2 -mlf main.mpm -als -ro rom=0xff00/0xffff-ra rom=0/0xff 詳細マップ情報 (main.mpm) Section Mapping List Module(s) 1. main 2. sub1 S_Addr. -E_Addr. Size Section Type 00FF0000-00FF000F 00000010 CONST P RI 00FF0010-00FF001F 00000010 CONST P RI Al 02 02 M.No 1 2 Sec.(Top 80) data data この詳細マップ情報により , 該当するアドレス 0xff05, 0xff06 はモジュール番号 1 番 July 31, 2015, CM41-00315-6 419 付録 付録 L SOFTUNE 言語ツール移行時のオブジェクト同一性確認 方法 Su pp or t So ft Manu al "main" というモジュールで定義されていることが判ります。 ● 問題個所の特定 リンク時に作成しておいた絶対アセンブルリストから問題の箇所を特定します。 絶対アセンブルリスト (main.als) SN LOC OBJ <main.asm> MODULE NAME = da da da da 420 test 00FF00 -------- <data >--------00FF00 00 01 02 03 2C 37 06 00FF07 07 08 09 0A 0B 0C 0D 00FF0E 0E 0F == LLINE ===== 1 2 3 4 5 6 7 8 9 SOURCE .TITLE main .PROGRAM main .SECTION data,CONST,ALIGN=2 .DATA.B 0,1,2,3,44,55 ,6,7,8,9,10,11,12,13,14,15 ;data ends .END CM41-00315-6, July 31, 2015 付録 付録 M 関数呼び出しインタフェース変更ガイド Support 付録 M Soft Ma nual 関数呼び出しインタフェース変更ガイド 関数呼び出しインタフェースを変更した場合 , 一部のレジスタの使用方法や関数の 引数の受け渡し方法が変わります。このため , 従来の関数呼び出しインタフェース ( 以降「引数のスタック渡し」とよぶ ) と新しいインタフェース ( 以降「引数のレジ スタ渡し」とよぶ ) が混在した場合 , 正しく動作しません。 ここでは , プログラムを新しい関数呼び出しインタフェースへ変更する方法と , その 際に注意すべき点について説明します。 ■ 新しい関数呼び出しインタフェース F2MC-16 ファミリ SOFTUNE では , 関数の引数をスタックで受け渡す従来の関数呼び 出しインタフェース (「引数のスタック渡し」) に加え , 関数の引数をレジスタ (RW0, RW1) で受け渡す新しい関数呼び出しインタフェース (「引数のレジスタ渡し」) をサ ポートしました。 関数呼び出しインタフェースを「引数のレジスタ渡し」にすると , 一部の引数はレジス タで受け渡されます。引数がレジスタで受け渡されることにより , コードサイズおよび スタック使用量が削減され , 実行速度を改善することができます。 しかし ,「引数のレジスタ渡し」と「引数のスタック渡し」とでは引数の受け渡し方法 とレジスタの使用方法が異なっているため , 関数呼び出しインタフェースの異なるオブ ジェクトを混在して使用するとプログラムが正しく動作しません。このため , Workbench/ アセンブラ / リンカ / ライブラリアンは関数呼び出しインタフェースに関す る矛盾を検出したときに , 警告またはエラーメッセージを出力します。 新しい関数呼び出しインタフェースの詳細または , 使用方法については , 以下のマニュ アルを参照してください。 • F2MC-16 ファミリ SOFTUNE C コンパイラマニュアル 「関数呼び出しインタフェース ( 引数のレジスタ渡し )」 「スタックフレーム ( 引数のレジスタ渡し )」 「引数 ( 引数のレジスタ渡し )」 「引数の拡張形式 ( 引数のレジスタ渡し )」 「呼び出し手続き ( 引数のレジスタ渡し )」 「レジスタ ( 引数のレジスタ渡し )」 「戻り値 ( 引数のレジスタ渡し )」 • F2MC-16 ファミリ SOFTUNE アセンブラマニュアル 「-rp, -Xrp」 「.REG_PASS 命令」 • F2MC-16 ファミリ SOFTUNE リンケージキットマニュアル 「リンカでの関数呼び出しインタフェースの異なるオブジェクトの混在について」 「引数のレジスタ渡し用ロードモジュール指定オプション (-rp)」 「引数のスタック渡し用ロードモジュール指定オプション (-Xrp)」 「ライブラリアンでの関数呼び出しインタフェースの異なるオブジェクトの混在に ついて」 July 31, 2015, CM41-00315-6 421 付録 付録 M 関数呼び出しインタフェース変更ガイド Su pp or t So ft Manu al 「引数のレジスタ渡し用ライブラリ出力指定オプション (-rp)」 「引数のスタック渡し用ライブラリ出力指定オプション (-Xrp)」 • F2MC-16 ファミリ SOFTUNE Workbench 操作マニュアル 「プロジェクトの登録」 「プロジェクトの設定」-「一般」 ■ 関数呼び出しインタフェースの変更の流れ 関数呼び出しインタフェースを「引数のスタック渡し」から「引数のレジスタ渡し」へ 変更するときは , 以下の手順で行ってください。 図 M-1 関数呼び出しインタフェースの変更の流れ アセンブラソースを修正してください。 例) startup.asm (「アセンブラソースの修正」を参照してください) Workbenchを使用してビルドしていますか? Yes No プロジェクトの関数呼び出しインタ フェースを「引数のレジスタ渡し」 に変更して再ビルドしてください。 (「Workbenchでの変更」を参照し てください) コンパイラ/アセンブラ/リンカ/ライ ブラリアンすべてに-rpオプションを 指定して再ビルドしてください。 (「Workbenchを使用しない場合の変 更」 を参照してください) ■ 関数呼び出しインタフェースの変更の詳細 ● アセンブラソースの修正 関数呼び出しインタフェースを「引数のスタック渡し」から「引数のレジスタ渡し」へ 変更するときは , 以下の手順でアセンブラソースの修正を行ってください。 1) .REG_PASS 擬似命令の記述 アセンブラは , -rp オプションが指定されたとき , 引数のレジスタ渡し用オブジェク トを出力します。しかし , -rp オプションの指定のみでは , 入力アセンブラソースが , 引数のレジスタ渡し用か引数のスタック渡し用かを判別できません。 REG_PASS 擬似命令は , アセンブラソースが引数のレジスタ渡し用アセンブラソー ス で あ る こ と を 示 す 擬 似 命 令 で す。ア セ ン ブ ラ は , -rp オ プ シ ョ ン 指 定 時 に .REG_PASS 擬似命令の記述がないアセンブラソースをアセンブルするとエラーを 出力します。引数スタック渡し用アセンブラソースを引数のレジスタ渡し用アセ ンブラソースに変更する場合 , .REG_PASS 擬似命令を記述してください。記述位 置は , .END 擬似命令以前であればどの位置でも記述可能です。 【.REG_PASS 擬似命令の記述例】 .PROGRAM 422 _func CM41-00315-6, July 31, 2015 付録 付録 M 関数呼び出しインタフェース変更ガイド Support .TITLE Soft Ma nual _func ; register argument passing .REG_PASS : 2) 引数の受け渡し方法の変更 アセンブラソースに , 引数を持つ関数の定義および , 引数を持つ関数の呼び出しが あるとき,引数の受け渡し方法を「引数のレジスタ渡し」に変更する必要があります。 C コンパイラのアセンブラ記述機能 (asm 文 ) で , 引数を持つ関数の定義および , 引 数を持つ関数の呼び出しを行う場合にも , 同様な修正が必要です。 引数の受け渡し方法を「引数のレジスタ渡し」に変更する場合は , F2MC-16 ファミ リ SOFTUNE C コンパイラマニュアル「引数 ( 引数のレジスタ渡し )」の表にした がって変更してください。 【引数を持つ関数の定義の修正例】 ( 引数のスタック渡し ) ( 引数のレジスタ渡し ) _func: LINK MOVW ADDW ADDW MOVW _func: LINK MOVW MOVW ADDW ADDW MOVW #0 A, A, A, _var, @RW3+4 @RW3+6 @RW3+8 A : #0 RW4, A, A, A, _var, @RW3+4 RW0 RW1 RW4 A : 【引数を持つ関数の呼び出しの修正例】 ( 引数のスタック渡し ) : MOVW PUSHW MOVW PUSHW MOVW PUSHW CALL ADDSP : ( 引数のレジスタ渡し ) A, #3 A A, #2 A A, #1 A _func #6 : MOVW PUSHW MOVW MOVW MOVW MOVW CALL POPW : A, A A, RW1, A, RW0, _func AH #3 #2 A #1 A 補足 ) 「引数のスタック渡し」と「引数のレジスタ渡し」のアセンブラソースの兼 用方法 既定義マクロ "__REG_PASS__" を使用することで ,「引数のスタック渡し」と「引 数のレジスタ渡し」で兼用のアセンブラソースを作成できます。 既定義マクロ "__REG_PASS__" は , -rp オプションを指定してアセンブルされた場 合に 1 を設定し , -rp オプションが指定されずにアセンブルされた場合に 0 を設定し ます。 【既定義マクロ "__REG_PASS__" の記述例】 July 31, 2015, CM41-00315-6 .PROGRAM _func .TITLE _func 423 付録 付録 M 関数呼び出しインタフェース変更ガイド Su pp or t So ft Manu al #if __REG_PASS__ ; register argument passing .REG_PASS #endif : <注意事項> 関数呼び出しインタフェースが「引数のレジスタ渡し」のとき , レジスタ RW0, RW1 の 関数からの復帰時の値は保証されません。関数呼び出しをまたがってこれらのレジスタを 使用しないようにしてください。 ● Workbench での変更 プロジェクトの関数呼び出しインタフェースを「引数のスタック渡し」に変更してく ださい。 関数呼び出しインタフェースで ,「引数のレジスタ渡し」が選択された場合は , コンパ イラ / アセンブラ / リンカおよびライブラリアン起動時に -rp オプションが自動的に適 用されます。 1) 現在のプロジェクトの設定を変更する場合 [ プロジェクトの設定 ] ダイアログにおいてプロジェクトの関数呼び出しインタ フェースを「引数のレジスタ渡し」に変更してください。 図 M-2 プロジェクトの設定ダイアログ 2) 新規に作成するプロジェクトの設定を変更する場合 プロジェクトの [ 新規作成 ] ダイアログでは , デフォルトとして「引数のスタック 渡し」が選択されます。関数呼び出しインタフェースを「引数のレジスタ渡し」に 424 CM41-00315-6, July 31, 2015 付録 付録 M 関数呼び出しインタフェース変更ガイド Support Soft Ma nual 変更してください。 図 M-3 プロジェクトの新規作成ダイアログ <注意事項> 関数呼び出しインタフェースとして「引数のレジスタ渡し」を選択した場合 , デバッガの 操作にいくつかの制限があります。これらの制限は , 引数を持つ関数から呼び出され , コ ンパイラの最適化により LINK/UNLINK 命令が出力されない関数をデバッグする時の制限 になります。 • ステップアウト (GO/RETURN コマンド ) の操作 親関数の取得ができなくなるため , 正常にプログラムの実行が停止しません。 • コールスタック (SHOW CALLS コマンド ) の操作 親関数の取得ができなくなるため , その関数以降の親関数が正しく表示されません。 • UP コマンドの操作 親関数の取得ができなくなるため , その関数以降の親関数へ正しくスコープを移すこ とができません。 July 31, 2015, CM41-00315-6 425 付録 付録 M 関数呼び出しインタフェース変更ガイド Su pp or t So ft Manu al ● Workbench を使用しない場合の変更 1) Workbench を使用しない場合の変更 Workbench を使用しない場合は , コンパイラ / アセンブラ / リンカ / ライブラリアン すべてに -rp オプションを指定してください。 2) コンパイル / アセンブル時の変更 関数のプロトタイプ宣言がない関数を呼び出す場合の動作は保証できないため , す べての関数について関数のプロトタイプ宣言を行ってください。 引数レジスタ退避域は , スタックで渡された仮引数領域とは連続しません。連続す ることを期待するようなプログラムは正しく動作しないため , そのようなプログラ ムがある場合は修正をしてください。 可変個引数は , 従来の関数呼び出しインタフェースと同様にすべての引数がスタッ ク渡しとなるため修正の必要はありません。 3) リンクおよびライブラリ作成時の変更 「引数のレジスタ渡し」用に以下の C ライブラリを追加しました。 「引数のレジスタ渡し」をお使いになる場合には , 以下の "_rp" 付きのライブラリを リンクしてお使いください。 • lib/907/lib9*_rp.lib: 48 ファイル 426 CM41-00315-6, July 31, 2015 付録 付録 M 関数呼び出しインタフェース変更ガイド Support Soft Ma nual ■ 警告とエラーメッセージ Workbench/ アセンブラ / リンカ / ライブラリアンで , 関数呼び出しインタフェースに関 する矛盾を検出した場合 , 以下の警告または , エラーメッセージを出力します。 ● Workbench の警告メッセージ • プロジェクト追加時 I0227W ワークスペース内に関数呼び出しインタフェースが異なるプロジェクト が存在します。 関数呼び出しインタフェースが異なるプロジェクトで作成したオブジェ クト同士は混在できません。処理を続行しますか ? YES:プロジェクトを追加する。 NO :プロジェクトを追加しない。 • プロジェクト間の依存関係 ( サブプロジェクト ) 設定時 I0228W プロジェクト間の関数呼び出しインタフェースが異なります。 関数呼び出しインタフェースが異なるプロジェクトで作成したオブジェ クト同士は混在できません。処理を続行しますか ? YES:プロジェクト間の依存関係を設定する。 NO :プロジェクト間の依存関係を設定しない。 • 関数呼び出しインタフェース変更時 I0229W 関数呼び出しインタフェースを変更する場合は , 使用するアセンブラ ソース , オブジェクト , ライブラリの関数呼び出しインタフェースが統 一されている必要があります。関数呼び出しインタフェースが統一され ていないプログラムの動作は保証されません。 この変更はプロジェクト内のすべてのプロジェクト構成に反映されま す。変更しますか ? YES:関数呼び出しインタフェースを変更する。 NO :関数呼び出しインタフェースを変更しない。 July 31, 2015, CM41-00315-6 427 付録 付録 M 関数呼び出しインタフェース変更ガイド Su pp or t So ft Manu al ● アセンブラのエラーメッセージ E4718A 関数呼び出しインタフェースが違います 本エラーメッセージは , 以下の付表 M-1 に示す条件で出力されます。 付表 M-1 .REG_PASS 擬似命令の記述と -rp オプションの関係 .REG_PASS 擬似命令の記述 あり あり 「引数のレジスタ渡し」の正常な 組み合わせです。 エラーは出力しません。 -rp オプション指定 なし エラー (E4718A) を出力します。 なし エラー (E4718A) を出力します。 「引数のスタック渡し」の正常な 組み合わせです。 エラーは出力しません。 本エラーが発生した場合は , 付表 M-1 を参照して -rp オプション指定または , アセンブラソースの . REG_PASS 擬似命令の記述を修正してください。 ● リンカのエラーメッセージ E4313L 関数呼び出しインタフェースの異なるモジュールがあります ( ファイル名 ) 本エラーメッセージは , 以下の付表 M-2 に示す条件で出力されます。 付表 M-2 入力オブジェクトと -rp オプションの関係 入力オブジェクトの関数呼び出しインタフェース 「引数のレジスタ渡し」 「引数のスタック渡し」 あり 「引数のレジスタ渡し」の正常な 組み合わせです。 エラーは出力しません。 エラー (E4313L) を出力します。 なし エラー (E4313L) を出力します。 「引数のスタック渡し」の正常な 組み合わせです。 エラーは出力しません。 -rp オプション指定 本エラーが発生した場合 , 付表 M-2 を参照して -rp オプション指定または , 入力オブジェクトの関数呼 び出しインタフェースを修正してください。 428 CM41-00315-6, July 31, 2015 付録 付録 M 関数呼び出しインタフェース変更ガイド Support Soft Ma nual ● ライブラリアンエラーメッセージ E4410U 関数呼び出しインタフェースの異なるモジュールがあります ( ファイル名 ) 本エラーメッセージは , 以下の付表 M-3 に示す条件で出力されます。 付表 M-3 入力オブジェクト , 編集対象ライブラリと -rp オプションの関係 入力オブジェクトと編集対象ライブラリの 関数呼び出しインタフェース 「引数のレジスタ渡し」 あり 「引数のレジスタ渡し」の正常な 組み合わせです。 エラーは出力しません。 なし エラー (E4410U) を出力します。 -rp オプション指定 「引数のスタック渡し」 エラー (E44410U) を出力します。 「引数のスタック渡し」の正常な 組み合わせです。 エラーは出力しません。 本エラーが発生した場合 , 付表 M-3 を参照して -rp オプション指定または , 入力オブジェクト , 編集対 象ライブラリの関数呼び出しインタフェースを修正してください。 <注意事項> 関数呼び出しインタフェースの異なるオブジェクトをリンクすることはできません。以下 の弊社提供オブジェクトの関数呼び出しインタフェースは ,「引数のスタック渡し」のみ となっているため注意してください。 • モニタデバッガ July 31, 2015, CM41-00315-6 429 付録 付録 N 主な変更内容 Su pp or t 付録 N So ft Manu al 主な変更内容 ページ 場所 変更箇所 Revision 5.1 - - 社名変更および記述フォーマットの変換 Revision 5.2 8 1.5 起動メッセージ 社名部分を削除 34 3.2.4 社名部分を削除 89 5.14 5.14 未使用関数削除を追加 93 6.1 表 6.1-1 に未使用関数削除機能関連オプションとして , -lnkopt -entryc -Xdel -ufiin を追加 93 6.1 -Xcheck_dirsize の備考欄を削除 95 6.2 ■未使用関数削除機能関連オプションを追加 100 6.2.5 【説明】内に -AL オプション指定に関する記載を追加 125 6.2.20 【説明】内に相対形式のロードモジュール作成時の AL オプション指定に関する記載を追加 132 6.2.26 6.2.26 未使用関数削除指定 (-lnkopt) を追加 134 6.2.27 6.2.27 C ソースのプログラム実行開始シンボル指定 (-entryc) を追加 135 6.2.28 6.2.28 削除対象外関数指定 (-Xdel) を追加 136 6.2.29 6.2.29 未使用関数削除情報ファイル格納パス指定 (-ufiin) を追加 192 7.2.2 S-Addr E-Addr Size に未使用関数削除時の表示 193 7.2.2 ■ 未使用関数削除機能により削除されたセクションの マップリスト表示例を追加 196 7.2.4 Symbol Value に未使用関数削除時の表示 197 7.2.4 ■ 削除された関数のシンボルリスト表示例追加 201 7.3.2 *2 のアドレスに未使用関数削除時の表示を追加 202 7.3.2 例 2 を追加 203 7.3.3 *2 のロケーションに未使用関数削除時の表示を追加 204 7.3.3 例 2 を追加 207 7.3.5 *3 の値に未使用関数削除時の表示を追加 208 7.3.5 例 2 を追加 209 7.4 図 7.4-1 に未使用関数として削除された例を追加 209 7.4 ● type/value に未使用関数削除時の表示を追加 Revision 6.0 430 CM41-00315-6, July 31, 2015 付録 付録 N 主な変更内容 Support ページ 場所 Soft Ma nual 変更箇所 210 7.5 図 7.5-1 の func2 を未使用関数として削除された例に 変更 211 7.5 ● val に未使用関数削除時の表示を追加 211 7.5 注意事項を● val から全体の注意事項に変更 212 7.6 図 7.6-1 に未使用関数として削除された例を追加 212 7.6 ● S.Addr.-E.Addr. と ● Size に未使用関数削除時の表 示を追加 287 15.3.1 【説明】の記載内容を変更 287 15.3.1 【注意】に -S1, -S2, -S3 いずれも指定しない場合を追加 287 15.3.1 表 15.3-1 に「指定なし」を追加 341 付録 A E4305L 枠外 未使用関数削除機能の場合を追加 380, 381 付録 D 表 D-1 に -lnkopt -entryc -Xdel -ufiin を追加 July 31, 2015, CM41-00315-6 431 付録 付録 N 主な変更内容 Su pp or t 432 So ft Manu al CM41-00315-6, July 31, 2015 索引 Support Soft Ma nual 索引 A -a 絶対形式ロードモジュールの出力指定 (-a) ........99 モジュールの追加 ( 登録 )(-a) .............................239 -adjust 整形指定 (-adjust) ..........................................286, 292 -AL -AL 1 が指定された場合の配置例 ........................68 -AL 2 が指定された場合の配置例 ........................70 自動配置指定 (-AL) ..............................................125 -alin 相対アセンブルリスト入力ディレクトリ指定 (-alin) ................................................................167 -alout 絶対アセンブルリスト出力ディレクトリ指定 (-alout) ..............................................................168 -alr ROM/RAM,ARRAY リスト出力指定 (-alr) ........172 -alrf ROM/RAM,ARRAY リスト出力モジュール指定 (-alrf) .................................................................173 -als 絶対アセンブルリスト出力指定 (-als) ...............169 -alsf 絶対アセンブルリスト出力モジュール指定 (-alsf) .................................................................170 -an ROM/RAM,ARRAY リストのシンボルとアドレス の表示位置指定 (-na,-an) ...............................175 ARRAY リスト ROM/RAM,ARRAY リスト .................................201 ROM/RAM,ARRAY リスト出力指定 (-alr) ........172 ROM/RAM,ARRAY リスト出力モジュール指定 (-alrf) .................................................................173 ROM/RAM,ARRAY リスト出力抑止指定 (-Xalr) ...............................................................174 ROM/RAM,ARRAY リストのシンボルとアドレス の表示位置指定 (-na,-an) ...............................175 B -b バックアップファイルの作成 (-b) ......................248 -check_rora ユーザ指定領域のチェック指定 (-check_rora) ....................................................144 -check_SCF スタンバイモード遷移命令チェック指定 (-check_SCF) ....................................................154 -check_section ユーザ指定外セクションのチェック指定 (-check_section) ............................................... 151 -check_size0_sec サイズ 0 のセクション配置チェック指定 (-check_size0_sec) ...........................................164 -cif CPU 情報ファイル指定 (-cif) ......................140, 255 -cmsg 終了メッセージ表示指定 (-cmsg) .........................36 -cmsg オプション -cmsg オプション ....................................................29 終了メッセージと -cmsg オプション ..................... 9 CPU -cpu オプションとオブジェクト混在可能 CPU 一覧 ...................................................87, 232 CPU 情報ファイル ..................................................86 CPU 情報ファイル指定 (-cif) ......................140, 255 CPU 情報ファイル名 .............................................. 86 ターゲット CPU 指定 (-cpu) ........................139, 254 -cpu ターゲット CPU 指定 (-cpu) ........................139, 254 -cpu オプション -cpu オプションとオブジェクト混在可能 CPU 一覧 ...................................................87, 232 CPU 情報ファイル CPU 情報ファイル ..................................................86 CPU 情報ファイル名 .............................................. 86 CPU 情報ファイル指定 CPU 情報ファイル指定 (-cif) ......................140, 255 -cs ROM 領域のチェックサム指定 (-cs) .................. 109 -cwno ワーニング発生時の終了コードを 1 にする指定 (-cwno) ...............................................................38 -cwno オプション -cwno オプション ................................................... 29 C ソース C ソースのプログラム実行開始シンボル指定 (-entryc) ...........................................................134 C D -c ライブラリファイルの内容検査 (-c) ..................250 -check_dirsize DIR 属性セクション合計サイズチェック指定 (-check_dirsize) ................................................162 -check_locate セクション配置領域チェック指定 (-check_locate) .................................................147 July 31, 2015, CM41-00315-6 -d モジュールの削除 (-d) .........................................241 -df 外部シンボル値の仮設定 (-df) ............................138 DIR 属性セクション DIR 属性セクション 合計サイズチェックについて ........................ 85 DIR 属性セクションの配置について .................. 83 433 索引 Su pp or t DIR 属性セクション合計サイズチェック指定 DIR 属性セクション合計サイズチェック指定 (-check_dirsize) ................................................162 DIR 属性セクション合計サイズチェック抑止指定 DIR 属性セクション合計サイズチェック抑止指定 (-Xcheck_dirsize) .............................................163 -dt リスト表示の名前の省略解除 (-dt) ....................105 リストファイルの詳細情報の出力指定 (-dt) ...................................................................245 E -e エントリアドレスの指定 (-e) ..............................137 e2ms e2ms(HEX16 フォーマット → S フォーマット変換 ) ................................325 -el シンボル個別のライブラリの指定 (-el) .............129 -entry スタートアドレス出力指定 (-entry) ...................286 スタートアドレスレコード出力指定 (-entry) ..............................................................289 -entryc C ソースのプログラム実行開始シンボル指定 (-entryc) ............................................................134 F -f オプションファイルからの読込み指定 (-f) .......................................................................31 f2es f2es( 絶対形式ロードモジュール → HEX16 フォーマット変換 ) ......................296 f2hs f2hs( 絶対形式ロードモジュール → HEX フォーマット変換 ) ..........................294 f2is f2is( 絶対形式ロードモジュール → HEX8 フォーマット変換 ) ........................295 f2ms f2ms( 絶対形式ロードモジュール → S フォーマット変換 ) ................................293 FELANG FELANG .............................................................13, 15 FETOOL FETOOL .............................................................13, 16 -fill ROM 領域のフィル指定 (-fill) .............................101 -f オプション -f オプション ...........................................................29 G So ft Manu al H -help ヘルプメッセージの表示 (-help) .......................... 33 -help オプション -help オプション ..................................................... 29 HEX16 エンドレコード (HEX8/HEX16/HEX32) ............366 拡張セグメントアドレスレコード (HEX16/HEX32) .............................................. 367 スタートセグメントアドレスレコード (HEX16/HEX32) .............................................. 368 データレコード (HEX8/HEX16/HEX32) ............365 HEX16 フォーマット e2ms(HEX16 フォーマット → S フォーマット変換 ) ............................... 325 f2es( 絶対形式ロードモジュール → HEX16 フォーマット変換 ) ...................... 296 m2es(S フォーマット → HEX16 フォーマット変換 ) ...................... 323 HEX32 エンドレコード (HEX8/HEX16/HEX32) ............366 拡張セグメントアドレスレコード (HEX16/HEX32) .............................................. 367 拡張リニアアドレスレコード (HEX32) ............369 スタートセグメントアドレスレコード (HEX16/HEX32) .............................................. 368 スタートリニアアドレスレコード (HEX32) ...........................................................370 データレコード (HEX8/HEX16/HEX32) ............365 HEX8 エンドレコード (HEX8/HEX16/HEX32) ............366 データレコード (HEX8/HEX16/HEX32) ............365 HEX8 フォーマット f2is( 絶対形式ロードモジュール → HEX8 フォーマット変換 ) ........................ 295 i2ms(HEX8 フォーマット → S フォーマット変換 ) ............................... 324 m2is(S フォーマット → HEX8 フォーマット変換 ) ........................ 322 HEX フォーマット f2hs( 絶対形式ロードモジュール → HEX フォーマット変換 ) .......................... 294 出力 HEX フォーマット指定 (-I16/-I20/-I32) ......................... 286, 288, 302, 307 I -I 出力 HEX フォーマット指定 (-I16/-I20/-I32) ......................... 286, 288, 302, 307 i2ms i2ms(HEX8 フォーマット → S フォーマット変換 ) ............................... 324 L -g デバッグ情報の出力指定 (-g) ........................97, 252 -L セクショングループの指定 (-gr) ........................122 -l ライブラリ検索パスの指定 (-L) .........................128 -gr 検索ライブラリファイルの指定 (-l) .................. 127 434 CM41-00315-6, July 31, 2015 索引 Support Soft -len 出力レコードデータ長指定 (-len) .......................302 出力レコード内データ長指定 (-len) ...................303 LIB907 LIB907 ......................................................................17 LIB907 ( ライブラリファイル検索ディレクトリ ) .............................................................................13 -lnkopt 未使用関数削除指定 (-lnkopt) .............................132 LPMCR アセンブラ言語を使用して低消費電力モード制御 レジスタ (LPMCR) にアクセスする場合 .....................403 Ma nual OPT( デフォルトオプションファイル 格納ディレクトリ ) .......................................... 13 OPT907 OPT907 ..................................................................... 18 OPT907 ( デフォルトオプションファイル 格納ディレクトリ ) .......................................... 13 OS OS による仕様の相違点 ...................................... 386 P -p パディング (-p) ..................................................... 281 -pl M リスト 1 ページの行数指定 (-pl) ................108, 246 -pw リスト 1 行の桁数指定 (-pw) ..............................247 リスト行の桁数指定 (-pw) ..................................107 -m マップリストファイルの作成指定 (-m) ...........................................................313, 317 マップリストファイル名の指定 (-m) ................103 リストファイルの出力指定 (-m) ........................243 m2es m2es(S フォーマット → HEX16 フォーマット変換 ) ......................323 m2is m2is(S フォーマット → HEX8 フォーマット変換 ) ........................322 -ml セクション詳細マップリスト出力指定 (-ml) ..................................................................183 -mlf セクション詳細マップリストファイル名の指定 (-mlf) .................................................................184 -mmi メモリ使用情報リストの出力指定 (-mmi) ...............................................................106 N -na ROM/RAM,ARRAY リストのシンボルとアドレス の表示位置指定 (-na,-an) ...............................175 -NCI0302LIB デバッグ情報存在チェック抑止指定 (-NCI0302LIB) .................................................141 -nd デフォルトライブラリ検索の抑止指定 (-nd) ..................................................................131 -nl ライブラリ検索の抑止指定 (-nl) ........................130 O -O ファイル内容の最適化 (-O) .................................251 -o 出力ファイル名の変更 (-o) ..................................279 出力ロードモジュールファイル名指定 (-o) ......................................................................96 OPT OPT ...........................................................................19 July 31, 2015, CM41-00315-6 R -r 相対形式ロードモジュールの出力指定 (-r) ..................................................................... 100 モジュールの置換 ( 登録 )(-r) ............................. 240 -ra RAM 領域の指定 (-ra) .......................................... 118 RAM RAM 領域の指定 (-ra) .......................................... 118 ROM/RAM,ARRAY リスト ................................. 201 ROM/RAM,ARRAY リスト出力指定 (-alr) .................................................................. 172 ROM/RAM,ARRAY リスト出力モジュール指定 (-alrf) ................................................................. 173 ROM/RAM,ARRAY リスト出力抑止指定 (-Xalr) ...............................................................174 ROM/RAM,ARRAY リストのシンボルと アドレスの表示位置指定 (-na,-an) ............... 175 ROM/RAM 領域の設定とセクション配置 ..........79 ROM/RAM 領域名 ..................................................86 ROM および RAM 領域の指定 ............................. 56 ROM → RAM 転送セクション ............................. 80 ROM → RAM 転送セクションの使用方法 ......... 80 ROM → RAM 転送セクションの注意 ................. 81 内蔵 ROM/RAM 領域自動設定の抑止指定 ......... 86 内蔵 ROM/RAM 領域自動設定の抑止指定 (-Xset_rora) ......................................................143 内蔵 ROM/RAM 領域の自動設定 (-set_rora) .........................................................142 -ran 出力範囲指定 (-ran) ...................... 302, 304, 313, 314 -rg レジスタバンク領域の指定 (-rg) ........................ 123 -ro ROM 領域の指定 (-ro) .......................................... 117 ROM ROM/RAM,ARRAY リスト ................................. 201 ROM/RAM,ARRAY リスト出力指定 (-alr) .................................................................. 172 ROM/RAM,ARRAY リスト出力モジュール指定 (-alrf) ................................................................. 173 435 索引 Su pp or t So ft Manu al ROM/RAM,ARRAY リスト出力抑止指定 (-Xalr) ...............................................................174 ROM/RAM,ARRAY リストのシンボルと アドレスの表示位置指定 (-na,-an) ...............175 ROM/RAM 領域の設定とセクション配置 ..........79 ROM/RAM 領域名 ..................................................86 ROM および RAM 領域の指定 .............................56 ROM 化支援 .............................................................56 ROM 領域の指定 (-ro) ..........................................117 ROM 領域のチェックサム指定 (-cs) ..................109 ROM 領域のフィル指定 (-fill) .............................101 ROM → RAM 転送セクション .............................80 ROM → RAM 転送セクションの 使用方法 ............................................................80 ROM → RAM 転送セクションの注意 .................81 内蔵 ROM/RAM 領域自動設定の 抑止指定 ............................................................86 内蔵 ROM/RAM 領域自動設定の抑止指定 (-Xset_rora) .......................................................143 内蔵 ROM/RAM 領域の自動設定 (-set_rora) .........................................................142 ROM/RAM,ARRAY リスト出力指定 ROM/RAM,ARRAY リスト出力指定 (-alr) ..................................................................172 ROM/RAM,ARRAY リスト出力モジュール指定 ROM/RAM,ARRAY リスト出力モジュール指定 (-alrf) .................................................................173 ROM/RAM,ARRAY リスト出力抑止指定 ROM/RAM,ARRAY リスト出力抑止指定 (-Xalr) ...............................................................174 ROM 化支援 ROM 化支援 .............................................................56 ROM → RAM 転送セクション ROM → RAM 転送セクション .............................80 ROM → RAM 転送セクションの 使用方法 ............................................................80 ROM → RAM 転送セクションの注意 .................81 -rp 引数のレジスタ渡しのライブラリ出力指定 オプション (-rp) ..............................................256 引数のレジスタ渡しのロードモジュール出力指定 オプション (-rp) ..............................................160 S7 タイプ S7 タイプ ( ターミネータレコード ) ................. 377 S8 タイプ S8 タイプ ( ターミネータレコード ) ................. 378 S9 タイプ S9 タイプ ( ターミネータレコード ) ................. 379 -sc セクション配置順 / アドレスの指定 (-sc) ......... 119 -set_rora 内蔵 ROM/RAM 領域の自動設定 (-set_rora) .........................................................142 -sl ローカルシンボル情報リスト出力指定 (-sl) ................................................................... 180 -slf ローカルシンボル情報リストファイル名の指定 (-slf) .................................................................. 181 SOFTUNE Workbench SOFTUNE Workbench のカスタマイズビルド機能 に登録する方法 .............................................. 390 SOFTUNE Workbench のツールの起動に登録し , 使用する方法 ..................................................393 -sp スプリットモード指定 (-sp) ........................313, 315 -ST 開始アドレス変更指定 (-ST) ............................... 308 レコード開始アドレス変更指定 (-ST) ............... 302 S フォーマット e2ms(HEX16 フォーマット → S フォーマット変換 ) ............................... 325 f2ms( 絶対形式ロードモジュール → S フォーマット変換 ) ............................... 293 i2ms(HEX8 フォーマット → S フォーマット変換 ) ............................... 324 m2es(S フォーマット → HEX16 フォーマット変換 ) ...................... 323 m2is(S フォーマット → HEX8 フォーマット変換 ) ........................ 322 出力 S フォーマット指定 (-S1/-S2/-S3) ............................. 286, 287, 302, 305 S TMP TMP( ワークディレクトリ ) ........................... 13, 14 T -S 出力 S フォーマット指定 (-S1/-S2/-S3) .............................286, 287, 302, 305 S0 タイプ S0 タイプ ( ヘッダレコード ) ..............................372 S1 タイプ S1 タイプ ( データレコード : 2 バイトアドレス ) ..........................................................................373 S2 タイプ S2 タイプ ( データレコード : 3 バイトアドレス ) ...........................................................................374 S3 タイプ S3 タイプ ( データレコード : 4 バイトアドレス ) ...........................................................................375 S5 タイプ S5 タイプ ( レコード数管理レコード ) ..............376 436 U -ufiin 未使用関数削除情報ファイル格納パス指定 (-ufiin) .............................................................. 136 V -V 版数 / メッセージ出力指定 (-V) ...........................34 -V オプション -V オプション ......................................................... 29 起動メッセージと -V オプション .......................... 8 CM41-00315-6, July 31, 2015 索引 Support Soft W -w 警告メッセージ出力レベルの指定 (-w) .............116 -Wf フェッチ単位チェックの指定 (-Wf) ..................158 X -x モジュールの抽出 (-x) ..........................................242 -Xalr ROM/RAM,ARRAY リスト出力抑止指定 (-Xalr) ...............................................................174 -Xals 絶対アセンブルリスト出力抑止指定 (-Xals) ...............................................................171 -Xb バックアップファイルの作成抑止 (-Xb) ...........249 -Xcheck_dirsize DIR 属性セクション合計サイズチェック抑止指定 (-Xcheck_dirsize) .............................................163 -Xcheck_locate セクション配置領域チェック抑止指定 (-Xcheck_locate) ...............................................150 -Xcheck_rora ユーザ指定領域のチェック抑止指定 (-Xcheck_rora) ..................................................146 -Xcheck_SCF スタンバイモード遷移命令チェック抑止指定 (-Xcheck_SCF) .................................................156 -Xcheck_section ユーザ指定外セクションのチェック抑止指定 (-Xcheck_section) .............................................153 -Xcheck_size0_sec サイズ 0 のセクション配置チェック抑止指定 (-Xcheck_size0_sec) .........................................166 -Xcmsg 終了メッセージ表示抑止指定 (-Xcmsg) ..............37 -Xcmsg オプション -Xcmsg オプション .................................................29 -Xcwno ワーニング発生時の終了コードを 0 にする指定 (-Xcwno) .............................................................39 -Xcwno オプション -Xcwno オプション .................................................29 -Xdel 削除対象外関数指定 (-Xdel) ................................135 -Xdof デフォルトオプションファイル抑止指定 (-Xdof) ................................................................30 -Xdof オプション -Xdof オプション ....................................................29 -Xentry スタートアドレス出力抑止指定 (-Xentry) ...........................................................286 スタートアドレスレコード出力抑止指定 (-Xentry) ...........................................................291 -Xg デバッグ情報の削除指定 (-Xg) .............................98 デバッグ情報の出力抑止指定 (-Xg) ...................253 July 31, 2015, CM41-00315-6 Ma nual -xl 外部シンボル相互参照情報リスト出力指定 (-xl) ................................................................... 177 -xlf 外部シンボル相互参照情報リストファイル名の 指定 (-xlf) .........................................................178 -Xm マップリスト出力の抑止指定 (-Xm) ................. 104 マップリストファイルの作成抑止指定 (-Xm) ........................................................313, 319 リストファイルの出力抑止指定 (-Xm) ............. 244 -Xml セクション詳細マップリスト出力抑止指定 (-Xml) ...............................................................185 -Xrp 引数のスタック渡しのライブラリ出力指定 オプション (-Xrp) ...........................................258 引数のスタック渡しのロードモジュール出力指定 オプション (-Xrp) ...........................................161 -Xset_rora 内蔵 ROM/RAM 領域自動設定の抑止指定 (-Xset_rora) ......................................................143 -Xsl ローカルシンボル情報リスト出力抑止指定 (-Xsl) ................................................................. 182 -Xsp スプリットモード抑止指定 (-Xsp) .............313, 316 -XV 版数 / メッセージ出力抑止 (-XV) ........................ 35 -XV オプション -XV オプション ......................................................29 -Xxl 外部シンボル相互参照情報リスト出力抑止指定 (-Xxl) ................................................................ 179 437 索引 Su pp or t Manu al あ え アジャスタ バイナリコンバータ , アジャスタの制限事項 ..................................328 アセンブラ言語 アセンブラ言語を使用して低消費電力モード制御 レジスタ (LPMCR) にアクセスする場合 ..........................................................................403 アセンブルソースリスト アセンブルソースリストの形式 .........................203 アセンブルリスト アセンブルリスト内の エラーメッセージ ..........................................199 絶対アセンブルリスト作成機能 .........................407 絶対アセンブルリスト出力指定 (-als) ...............169 絶対アセンブルリスト出力ディレクトリ指定 (-alout) ..............................................................168 絶対アセンブルリスト出力モジュール指定 (-alsf) .................................................................170 絶対アセンブルリスト出力抑止指定 (-Xals) ...............................................................171 絶対アセンブルリストの形式 .............................198 絶対形式アセンブルリスト .................................188 絶対形式アセンブルリスト 出力関連オプション ........................................95 相対アセンブルリスト入力ディレクトリ指定 (-alin) ................................................................167 アドレスレコード 拡張セグメントアドレスレコード (HEX16/HEX32) ..............................................367 拡張リニアアドレスレコード (HEX32) .............369 スタートセグメントアドレスレコード (HEX16/HEX32) ..............................................368 スタートリニアアドレスレコード (HEX32) ...........................................................370 エラーメッセージ アセンブルリスト内の エラーメッセージ .......................................... 199 警告とエラーメッセージ .................................... 427 コンバータのエラーメッセージ ........................ 357 ライブラリアンのエラーメッセージ ................ 351 リンカのエラーメッセージ ................................334 リンケージキットのエラーメッセージの 表示形式 .......................................................... 333 リンケージキットの エラーメッセージ分類 ..................................332 エントリアドレス エントリアドレス / シンボル値の設定 ............... 54 エントリアドレスの指定 (-e) ..............................137 エントリアドレス指定 エントリアドレス指定 .......................................... 58 エンドレコード エンドレコード (HEX8/HEX16/HEX32) ............366 い 一般形式 一般形式 .................................................................363 引数 引数のスタック渡しのライブラリ出力指定 オプション (-Xrp) ...........................................258 引数のスタック渡しのロードモジュール出力指定 オプション (-Xrp) ...........................................161 引数のレジスタ渡しのライブラリ出力指定 オプション (-rp) ..............................................256 引数のレジスタ渡しのロードモジュール出力指定 オプション (-rp) ..............................................160 インタフェース 新しい関数呼び出しインタフェース .................421 関数呼び出しインタフェースの 変更の詳細 ......................................................422 関数呼び出しインタフェースの 変更の流れ ......................................................422 ライブラリアンでの関数呼び出しインタフェース の異なるオブジェクトの混在 ......................233 リンカでの関数呼び出しインタフェースの異なる オブジェクトの混在 ........................................88 438 So ft お オブジェクト -cpu オプションとオブジェクト混在可能 CPU 一覧 ...................................................87, 232 オブジェクト形式コンバータの 使用上の Q &A ............................................... 329 オブジェクト形式コンバータの制限事項 ........328 オブジェクト内容リスト出力関連オプション ............................................................................95 ライブラリアンでのオブジェクト混在 ............232 ライブラリアンでの関数呼び出しインタフェース の異なるオブジェクトの混在 ...................... 233 リンカでの関数呼び出しインタフェースの異なる オブジェクトの混在 ........................................ 88 オブジェクト形式コンバータ オブジェクト形式コンバータの オプション一覧 .............................................. 385 オブジェクト形式コンバータの概要 ................ 272 オブジェクト形式コンバータの共通 オプションの種類 .......................................... 278 オブジェクト形式コンバータの コマンド一覧 ..................................................384 オブジェクト形式コンバータの コマンド実行 ..................................................276 オブジェクト形式コンバータの使用上の Q &A ................................................................ 329 オブジェクト形式コンバータの制限事項 ........328 オブジェクト混在 オブジェクト混在 ..................................................87 ライブラリアンでのオブジェクト混在 ............232 オブジェクト混在可能 CPU 一覧 -cpu オプションとオブジェクト混在可能 CPU 一覧 ...................................................87, 232 オブジェクト内容リスト出力関連オプション オブジェクト内容リスト 出力関連オプション ........................................ 95 オブジェクトファイル オブジェクトファイルフォーマット上の 制限事項 .......................................................... 216 入力オブジェクトファイルの指定 ...................... 55 CM41-00315-6, July 31, 2015 索引 Support Soft オプション -cmsg オプション ....................................................29 -cpu オプションとオブジェクト混在可能 CPU 一覧 ....................................................87, 232 -cwno オプション ....................................................29 -f オプション ...........................................................29 -help オプション .....................................................29 -V オプション .........................................................29 -Xcmsg オプション .................................................29 -Xcwno オプション .................................................29 -Xdof オプション ....................................................29 -XV オプション .......................................................29 引数のスタック渡しのライブラリ出力指定 オプション (-Xrp) ...........................................258 引数のスタック渡しのロードモジュール出力指定 オプション (-Xrp) ...........................................161 引数のレジスタ渡しのライブラリ出力指定 オプション (-rp) ..............................................256 引数のレジスタ渡しのロードモジュール出力指定 オプション (-rp) ..............................................160 オブジェクト形式コンバータの共通オプションの 種類 ..................................................................278 オブジェクト内容リスト出力関連オプション ............................................................................95 オプション .....................................389, 408, 413, 416 オプション一覧 .....................................................236 オプション形式 .......................................................22 オプションの指定に関する注意 .........................266 起動メッセージと -V オプション ..........................8 終了メッセージと -cmsg オプション .....................9 出力モジュールに関するオプション ...................95 出力リストに関するオプション ...................95, 238 絶対形式アセンブルリスト出力関連オプション ............................................................................95 相反関係にあるオプションの指定例 ...................25 その他のオプション .............................................238 その他のリンク制御オプション ...........................95 配置 / 結合オプション ...........................................95 ファイル検索 , 保護に関するオプション ..........238 包含関係にあるオプションの指定例 ...................25 未使用関数削除機能関連オプション ...................95 ライブラリ制御オプション ...................................95 ライブラリの作成 , 編集に関するオプション ..........................................................................238 オプション一覧 オブジェクト形式コンバータの オプション一覧 ..............................................385 オプション一覧 .....................................................236 共通オプション一覧 ...............................................28 バイナリコンバータのオプション一覧 .............312 フォーマットアジャスタの オプション一覧 ..............................................301 ライブラリアンのオプション一覧 .....................383 リンカのオプション一覧 ...............................92, 380 ロードモジュールコンバータの オプション一覧 ..............................................285 オプションパラメータ オプションパラメータでの数値表現 ...................23 オプションファイル オプションファイル ...............................................42 オプションファイルからの読込み指定 (-f) .......................................................................31 オプションファイル指定による実行 ...................42 July 31, 2015, CM41-00315-6 Ma nual オプションファイル中の継続指定 ...................... 43 オプションファイル中のコメント指定 ..............44 オプションファイルの記述例 ..............................45 か 開始アドレス変更指定 開始アドレス変更指定 (-ST) ............................... 308 外部シンボル相互参照情報リスト 外部シンボル相互参照情報リスト .................... 188 外部シンボル相互参照情報リスト出力指定 外部シンボル相互参照情報リスト出力指定 (-xl) ................................................................... 177 外部シンボル相互参照情報リスト出力抑止指定 外部シンボル相互参照情報リスト出力抑止指定 (-Xxl) ................................................................ 179 外部シンボル相互参照情報リストファイル 外部シンボル相互参照情報リストファイル ..........................................................................209 外部シンボル相互参照情報リストファイル名 外部シンボル相互参照情報リストファイル名の 指定 (-xlf) .........................................................178 外部シンボル値 外部シンボル値の仮設定 (-df) ............................138 外部シンボル値の設定 .......................................... 58 拡張セグメントアドレスレコード 拡張セグメントアドレスレコード (HEX16/HEX32) .............................................. 367 拡張リニアアドレスレコード 拡張リニアアドレスレコード (HEX32) ............369 格納ディレクトリ OPT( デフォルトオプションファイル格納 ディレクトリ ) ..................................................13 OPT907 ( デフォルトオプションファイル格納 ディレクトリ ) ..................................................13 格納パス指定 未使用関数削除情報ファイル格納パス指定 (-ufiin) ...............................................................136 カスタマイズビルド機能 SOFTUNE Workbench のカスタマイズビルド機能 に登録する方法 .............................................. 390 仮設定 外部シンボル値の仮設定 (-df) ............................138 環境変数 環境変数 ................................................ 408, 412, 415 関数 削除された関数のシンボルリスト 表示例 .............................................................. 197 削除対象外関数指定 (-Xdel) ................................135 未使用関数削除機能 .............................................. 89 未使用関数削除機能により削除されたセクション のマップリスト表示例 ..................................193 未使用関数削除指定 (-lnkopt) ............................. 132 未使用関数削除情報ファイル格納パス指定 (-ufiin) .............................................................. 136 未使用関数とは ......................................................89 関数呼び出しインタフェース 新しい関数呼び出しインタフェース ................ 421 関数呼び出しインタフェースの 変更の詳細 ......................................................422 関数呼び出しインタフェースの 変更の流れ ......................................................422 439 索引 Su pp or t ライブラリアンでの関数呼び出しインタフェース の異なるオブジェクトの混在 ......................233 リンカでの関数呼び出しインタフェースの異なる オブジェクトの混在 ........................................88 緩和 制限事項の緩和 .............................................411, 414 き 記述例 オプションファイルの記述例 ...............................45 起動メッセージ 起動メッセージ .........................................................8 起動メッセージと -V オプション ..........................8 起動メッセージ表示の選択 ...................................55 行数指定 リスト 1 ページの行数指定 (-pl) ................108, 246 強制終了 強制終了 .....................................................................6 共通オプション オブジェクト形式コンバータの共通オプションの 種類 ..................................................................278 共通オプション一覧 共通オプション一覧 ...............................................28 共有結合 セクションの共有結合 ...........................................61 く グループ化 セクションのグループ化 .......................................56 クロスリファレンスリスト クロスリファレンスリストの形式 .....................207 け 警告 警告とエラーメッセージ .....................................427 警告チェックレベル 警告チェックレベルの選択 ...................................55 警告メッセージ 警告メッセージ .....................................................396 警告メッセージの出力先 .....................................389 警告メッセージ出力レベル 警告メッセージ出力レベルの指定 (-w) .............116 継承 デバッグ情報の継承 ...............................................55 継続指定 オプションファイル中の継続指定 .......................43 桁数指定 リスト 1 行の桁数指定 (-pw) ...............................247 リスト行の桁数指定 (-pw) ...................................107 結合 セクションの結合 / 配置に関する制御 ...............54 配置 / 結合オプション ...........................................95 結合順序 セクションの結合順序が指定された場合の 配置例 ................................................................64 セクションの結合順序が指定されなかった場合の 配置例 ................................................................63 440 So ft Manu al 結合属性 セクションの結合属性 .......................................... 60 検索 検索ライブラリの指定 .......................................... 72 検索ライブラリファイル指定 ..............................57 シンボルごとの検索ライブラリファイル 指定 .................................................................... 57 デフォルトライブラリ検索の抑止指定 (-nd) .................................................................. 131 ファイル検索 , 保護に関するオプション ......... 238 ライブラリ検索の抑止 .......................................... 57 ライブラリ検索の抑止指定 (-nl) ........................ 130 ライブラリ検索パス指定 ...................................... 57 ライブラリの検索に関する制御 .......................... 54 検索順序 ライブラリファイルの検索順序 .......................... 72 検索ディレクトリ LIB907 ( ライブラリファイル検索ディレクトリ ) ............................................................................. 13 検索パス ライブラリ検索パスの指定 (-L) .........................128 検索ライブラリファイル 検索ライブラリファイルの指定 (-l) .................. 127 検索ライブラリファイル指定 検索ライブラリファイル指定 ..............................57 シンボルごとの検索ライブラリファイル指定 ............................................................................57 検索例 ライブラリファイルが 1 つの場合の検索例 1 ...................................... 73 ライブラリファイルが 1 つの場合の検索例 2 ...................................... 74 ライブラリファイルが 1 つの場合の検索例 3 ...................................... 75 ライブラリファイルが 複数の場合の検索例 1 ..................................... 76 ライブラリファイルが 複数の場合の検索例 2 ..................................... 77 こ 構成文字種 識別子の構成文字種 .............................................. 11 コマンド オブジェクト形式コンバータの コマンド実行 ..................................................276 コマンド一覧 オブジェクト形式コンバータの コマンド一覧 ..................................................384 コマンド行 コマンド行の差異 ................................408, 412, 415 コマンドライン コマンドラインで使用する方法 ........................ 390 コマンドラインの形式 ............................................ 5 コマンドラインの指定例 ...................................... 26 コメント指定 オプションファイル中のコメント指定 ..............44 混在 ライブラリアンでのオブジェクト混在 ............232 ライブラリアンでの関数呼び出しインタフェース の異なるオブジェクトの混在 ...................... 233 CM41-00315-6, July 31, 2015 索引 Support Soft コントロールリスト部 コントロールリスト部の リスト出力フォーマット ..............................190 コントロールリスト部のリスト表示例 .............191 コンバータ オブジェクト形式コンバータの使用上の Q &A ................................................................329 オブジェクト形式コンバータの制限事項 .........328 コンバータのエラーメッセージ .........................357 その他のコンバータの種類 .................................275 さ 差異 データに差異が生じている場合 .........................419 最適化 ファイル内容の最適化 (-O) .................................251 削除された関数 削除された関数のシンボルリスト表示例 .........197 削除指定 未使用関数削除指定 (-lnkopt) .............................132 削除対象外 削除対象外関数指定 (-Xdel) ................................135 し 識別子 識別子の区別 ...........................................................11 識別子の構成文字種 ...............................................11 識別子文字数の制限 ...............................................11 識別名表示 リスト出力時の識別名表示 ...................................11 実施例 実施例 .....................................................................418 指定 削除対象外関数指定 (-Xdel) ................................135 指定例 コマンドラインの指定例 .......................................26 相反関係にあるオプションの指定例 ...................25 包含関係にあるオプションの指定例 ...................25 自動設定 内蔵 ROM/RAM 領域の自動設定 (-set_rora) .........................................................142 自動配置 セクションの自動配置 ...........................................66 自動配置指定 自動配置指定 (-AL) ..............................................125 終了コード 終了コードの値と終了状態 .....................................7 ワーニング発生時の終了コードを 0 にする指定 (-Xcwno) .............................................................39 ワーニング発生時の終了コードを 1 にする指定 (-cwno) ................................................................38 終了メッセージ 終了メッセージ .........................................................9 終了メッセージと -cmsg オプション .....................9 終了メッセージ表示指定 (-cmsg) .........................36 終了メッセージ表示の選択 ...................................55 終了メッセージ表示抑止指定 (-Xcmsg) ..............37 終了メッセージ表示指定 終了メッセージ表示指定 (-cmsg) .........................36 July 31, 2015, CM41-00315-6 Ma nual 終了メッセージ表示抑止指定 終了メッセージ表示抑止指定 (-Xcmsg) ..............37 出力 HEX フォーマット指定 出力 HEX フォーマット指定 (-I16/-I20/-I32) ......................... 286, 288, 302, 307 出力 S フォーマット指定 出力 S フォーマット指定 (-S1/-S2/-S3) ............................. 286, 287, 302, 305 出力指定 絶対形式ロードモジュールの出力指定 (-a) ......................................................................99 相対形式ロードモジュールの出力指定 (-r) ..................................................................... 100 メモリ使用情報リストの出力指定 (-mmi) ...............................................................106 出力ディレクトリ 絶対アセンブルリスト出力ディレクトリ指定 (-alout) .............................................................. 168 出力範囲指定 出力範囲指定 (-ran) ...................... 302, 304, 313, 314 出力ファイル名 出力ファイル名の変更 (-o) ................................. 279 出力フォーマット コントロールリスト部の リスト出力フォーマット ..............................190 出力フォーマットの指定 ...................................... 55 シンボルリスト部の リスト出力フォーマット ..............................196 マップリスト部の リスト出力フォーマット ..............................192 メモリ使用情報リスト部の リスト出力フォーマット ..............................194 出力メッセージ 出力メッセージに関する指定 ..............................95 出力モジュール ROM/RAM,ARRAY リスト出力モジュール指定 (-alrf) ................................................................. 173 出力モジュールに関するオプション .................. 95 出力リスト 出力リストに関するオプション ..................95, 238 出力レコードデータ長指定 出力レコードデータ長指定 (-len) ...................... 302 出力レコード内データ長指定 出力レコード内データ長指定 (-len) .................. 303 出力レベル 警告メッセージ出力レベルの指定 (-w) ............116 出力ロードモジュールファイル 出力ロードモジュールファイル名の指定 ..........55 出力ロードモジュールファイル名指定 出力ロードモジュールファイル名指定 (-o) ......................................................................96 省略解除 リスト表示の名前の省略解除 (-dt) .................... 105 初期値付変数 初期値付変数の扱い ............................................ 218 シンボル シンボルごとの検索ライブラリファイル指定 ............................................................................57 シンボル個別のライブラリの指定 (-el) ............129 シンボル指定 C ソースのプログラム実行開始シンボル指定 (-entryc) ...........................................................134 441 索引 Su pp or t シンボル値 エントリアドレス / シンボル値の設定 ...............54 外部シンボル値の仮設定 (-df) ............................138 外部シンボル値の設定 ...........................................58 シンボルリスト表示例 削除された関数のシンボルリスト表示例 .........197 シンボルリスト部 シンボルリスト部の リスト出力フォーマット ..............................196 シンボルリスト部のリスト表示例 .....................197 す スタートアドレス出力指定 スタートアドレス出力指定 (-entry) ...................286 スタートアドレス出力抑止指定 スタートアドレス出力抑止指定 (-Xentry) ........286 スタートアドレスレコード出力指定 スタートアドレスレコード出力指定 (-entry) ..............................................................289 スタートアドレスレコード出力抑止指定 スタートアドレスレコード出力抑止指定 (-Xentry) ...........................................................291 スタートセグメントアドレスレコード スタートセグメントアドレスレコード (HEX16/HEX32) ..............................................368 スタートリニアアドレスレコード スタートリニアアドレスレコード (HEX32) ...........................................................370 スタンバイ制御マクロ スタンバイ制御マクロについて .........................404 スタンバイモード遷移命令 検出可能なスタンバイモード遷移命令 .............400 スタンバイモード遷移命令を検出しても警告を 出力しない場合 ..............................................399 スタンバイモード遷移命令チェック指定 スタンバイモード遷移命令チェック指定 (-check_SCF) ....................................................154 スタンバイモード遷移命令チェックツール スタンバイモード遷移命令チェックツールの 概要 ..................................................................388 スタンバイモード遷移命令チェック抑止指定 スタンバイモード遷移命令チェック抑止指定 (-Xcheck_SCF) .................................................156 スプリット スプリットモード指定 (-sp) ........................313, 315 スプリットモード抑止指定 (-Xsp) .............313, 316 スプリットモード スプリットモードの概要 .....................................311 スプリットモード指定 スプリットモード指定 (-sp) ........................313, 315 スプリットモード抑止指定 スプリットモード抑止指定 (-Xsp) .............313, 316 せ 整形指定 整形指定 (-adjust) ..........................................286, 292 セクション DIR 属性セクション合計サイズチェック指定 (-check_dirsize) ................................................162 442 So ft Manu al DIR 属性セクション合計サイズチェックについて ............................................................................85 DIR 属性セクション合計サイズチェック抑止指定 (-Xcheck_dirsize) .............................................163 DIR 属性セクションの配置について .................. 83 ROM/RAM 領域の設定とセクション配置 ..........79 ROM → RAM 転送セクション ............................. 80 ROM → RAM 転送セクションの使用方法 ......... 80 ROM → RAM 転送セクションの注意 ................. 81 サイズ 0 のセクション配置チェック指定 (-check_size0_sec) ...........................................164 サイズ 0 のセクション配置チェック抑止指定 (-Xcheck_size0_sec) .........................................166 セクション種別と配置先 ...................................... 69 セクション詳細マップリスト ............................188 セクション詳細マップリスト出力指定 (-ml) .................................................................. 183 セクション詳細マップリスト出力抑止指定 (-Xml) ...............................................................185 セクション詳細マップリストファイル名の指定 (-mlf) ................................................................. 184 セクション情報リストの形式 ............................205 セクション内容種別 .............................................. 59 セクションの共有結合 .......................................... 61 セクションのグループ化 ...................................... 56 セクションの結合 / 配置に関する制御 ............... 54 セクションの結合順序が指定された場合の 配置例 ................................................................ 64 セクションの結合順序が指定されなかった場合の 配置例 ................................................................ 63 セクションの結合属性 .......................................... 60 セクションの識別 ..................................................60 セクションの自動配置 .......................................... 66 セクションの単純連結結合 ..................................61 セクションの配置順と 配置アドレスの指定 ........................................ 56 セクションの配置属性 .......................................... 59 セクションのリンク .............................................. 62 セクション配置順 / アドレスの指定 (-sc) ......... 119 セクション配置詳細情報リストファイル ........212 セクション配置領域チェック指定 (-check_locate) ................................................. 147 セクション配置領域チェック抑止指定 (-Xcheck_locate) .............................................. 150 セクション名 .......................................................... 59 ユーザ指定外セクションのチェック指定 (-check_section) ............................................... 151 ユーザ指定外セクションのチェック抑止指定 (-Xcheck_section) .............................................153 セクショングループ セクショングループの指定 (-gr) ........................ 122 セクショングループの指定がある場合の 配置例 ................................................................ 65 セクション種別 セクション種別と配置先 ...................................... 69 セクション詳細マップリスト セクション詳細マップリスト ............................188 セクション詳細マップリスト出力指定 セクション詳細マップリスト出力指定 (-ml) .................................................................. 183 セクション詳細マップリスト出力抑止指定 セクション詳細マップリスト出力抑止指定 (-Xml) ...............................................................185 CM41-00315-6, July 31, 2015 索引 Support Soft セクション詳細マップリストファイル名 セクション詳細マップリストファイル名の指定 (-mlf) .................................................................184 セクション情報リスト セクション情報リストの形式 .............................205 セクション配置詳細情報リストファイル セクション配置詳細情報リストファイル .........212 セクション配置チェック指定 サイズ 0 のセクション配置チェック指定 (-check_size0_sec) ............................................164 セクション配置チェック抑止指定 サイズ 0 のセクション配置チェック抑止指定 (-Xcheck_size0_sec) .........................................166 セクション配置領域チェック指定 セクション配置領域チェック指定 (-check_locate) .................................................147 セクション配置領域チェック抑止指定 セクション配置領域チェック抑止指定 (-Xcheck_locate) ...............................................150 絶対アセンブルリスト 絶対アセンブルリストの形式 .............................198 絶対アセンブルリスト作成機能 絶対アセンブルリスト作成機能 .........................407 絶対アセンブルリスト出力指定 絶対アセンブルリスト出力指定 (-als) ...............169 絶対アセンブルリスト出力ディレクトリ指定 絶対アセンブルリスト出力ディレクトリ指定 (-alout) ..............................................................168 絶対アセンブルリスト出力モジュール指定 絶対アセンブルリスト出力モジュール指定 (-alsf) .................................................................170 絶対アセンブルリスト出力抑止指定 絶対アセンブルリスト出力抑止指定 (-Xals) ...............................................................171 絶対形式アセンブルリスト 絶対形式アセンブルリスト .................................188 絶対形式アセンブルリスト出力関連オプション 絶対形式アセンブルリスト 出力関連オプション ........................................95 絶対形式ロードモジュール f2es( 絶対形式ロードモジュール → HEX16 フォーマット変換 ) ......................296 f2hs( 絶対形式ロードモジュール → HEX フォーマット変換 ) ..........................294 f2is( 絶対形式ロードモジュール → HEX8 フォーマット変換 ) ........................295 f2ms( 絶対形式ロードモジュール → S フォーマット変換 ) ................................293 絶対形式ロードモジュールの出力指定 (-a) .......................................................................99 遷移命令 検出可能なスタンバイモード遷移命令 .............400 スタンバイモード遷移命令チェック指定 (-check_SCF) ....................................................154 スタンバイモード遷移命令チェックツールの 概要 ..................................................................388 スタンバイモード遷移命令チェック抑止指定 (-Xcheck_SCF) .................................................156 スタンバイモード遷移命令を検出しても警告を 出力しない場合 ..............................................399 July 31, 2015, CM41-00315-6 Ma nual そ 相互参照情報 外部シンボル相互参照情報リスト .................... 188 外部シンボル相互参照情報リスト出力指定 (-xl) ................................................................... 177 外部シンボル相互参照情報リスト出力抑止指定 (-Xxl) ................................................................ 179 外部シンボル相互参照情報リストファイル ..........................................................................209 外部シンボル相互参照情報リストファイル名の 指定 (-xlf) .........................................................178 相対アセンブルリスト入力ディレクトリ指定 相対アセンブルリスト入力ディレクトリ指定 (-alin) ................................................................ 167 相対形式ロードモジュール 相対形式ロードモジュールの出力指定 (-r) ..................................................................... 100 相反関係 相反関係にあるオプションの指定例 .................. 25 た ターゲット CPU 指定 ターゲット CPU 指定 (-cpu) ........................139, 254 ターミネータレコード S7 タイプ ( ターミネータレコード ) ................. 377 S8 タイプ ( ターミネータレコード ) ................. 378 S9 タイプ ( ターミネータレコード ) ................. 379 ダイレクトページ ダイレクトページについて ..................................83 単純連結結合 セクションの単純連結結合 ..................................61 ち チェックサム指定 ROM 領域のチェックサム指定 (-cs) .................. 109 チェックツール スタンバイモード遷移命令チェックツールの 概要 .................................................................. 388 つ ツール SOFTUNE Workbench のツールの起動に登録し , 使用する方法 ..................................................393 て 低消費電力モード制御レジスタ アセンブラ言語を使用して低消費電力モード 制御レジスタ (LPMCR) にアクセスする場合 ..........................................................................403 ディスク容量 必要なディスク容量についての注意 ................ 266 ディレクトリ LIB907 ( ライブラリファイル検索ディレクトリ ) ............................................................................13 OPT( デフォルトオプションファイル 格納ディレクトリ ) .......................................... 13 443 索引 Su pp or t OPT907 ( デフォルトオプションファイル格納 ディレクトリ ) ..................................................13 絶対アセンブルリスト出力ディレクトリ指定 (-alout) ..............................................................168 相対アセンブルリスト入力ディレクトリ指定 (-alin) ................................................................167 データレコード S1 タイプ ( データレコード : 2 バイトアドレス ) ..........................................................................373 S2 タイプ ( データレコード : 3 バイトアドレス ) ...........................................................................374 S3 タイプ ( データレコード : 4 バイトアドレス ) ...........................................................................375 データレコード (HEX8/HEX16/HEX32) ............365 デバッグ情報 デバッグ情報の継承 ...............................................55 デバッグ情報の削除 .....................................226, 230 デバッグ情報の削除指定 (-Xg) .............................98 デバッグ情報の出力指定 (-g) ........................97, 252 デバッグ情報の出力抑止指定 (-Xg) ...................253 デバッグ情報存在チェック抑止指定 デバッグ情報存在チェック抑止指定 (-NCI0302LIB) .................................................141 デフォルトオプションファイル OPT( デフォルトオプションファイル 格納ディレクトリ ) ..........................................13 OPT907 ( デフォルトオプションファイル 格納ディレクトリ ) ..........................................13 デフォルトオプションファイル ...........................46 デフォルトオプションファイル抑止指定 デフォルトオプションファイル抑止指定 (-Xdof) ................................................................30 デフォルトライブラリ検索 デフォルトライブラリ検索の抑止指定 (-nd) ..................................................................131 転送セクション ROM → RAM 転送セクション .............................80 ROM → RAM 転送セクションの使用方法 .........80 ROM → RAM 転送セクションの注意 .................81 な 内蔵 ROM 内蔵 ROM/RAM 領域自動設定の抑止指定 .........86 内蔵 ROM/RAM 内蔵 ROM/RAM 領域自動設定の抑止指定 (-Xset_rora) .......................................................143 内蔵 ROM/RAM 領域の自動設定 (-set_rora) .........................................................142 内蔵 ROM/RAM 領域自動設定 内蔵 ROM/RAM 領域自動設定の抑止指定 .........86 に 入出力ファイル 入出力ファイル / メッセージに関する制御 .......53 入力オブジェクトファイル 入力オブジェクトファイルの指定 .......................55 入力ディレクトリ 相対アセンブルリスト入力ディレクトリ指定 (-alin) ................................................................167 444 So ft Manu al は 配置 DIR 属性セクションの配置について .................. 83 ROM/RAM 領域の設定と セクション配置 ................................................ 79 セクションの結合 / 配置に関する制御 ............... 54 配置 / 結合オプション ...........................................95 配置 / 結合オプション 配置 / 結合オプション ...........................................95 配置アドレス セクションの配置順と 配置アドレスの指定 ........................................ 56 配置アドレスの決定方法 ................................ 67, 70 配置順 セクションの配置順と 配置アドレスの指定 ........................................ 56 配置属性 セクションの配置属性 .......................................... 59 配置例 -AL 1 が指定された場合の配置例 ........................ 68 -AL 2 が指定された場合の配置例 ........................ 70 セクショングループの指定がある場合の 配置例 ................................................................ 65 セクションの結合順序が指定された場合の 配置例 ................................................................ 64 セクションの結合順序が指定されなかった場合の 配置例 ................................................................ 63 バイト単位チェック バイト単位チェック ............................................ 398 バイナリコンバータ バイナリコンバータ ............................................ 274 バイナリコンバータ , アジャスタの制限事項 ..................................328 バイナリコンバータのオプション一覧 ............312 バイナリコンバータの概要 ................................310 パス指定 ライブラリ検索パス指定 ...................................... 57 バックアップファイル バックアップファイルの作成 (-b) .....................248 バックアップファイルの作成抑止 (-Xb) ..........249 パディング パディング (-p) ..................................................... 281 版数 / メッセージ出力指定 版数 / メッセージ出力指定 (-V) ...........................34 版数 / メッセージ出力抑止 版数 / メッセージ出力抑止 (-XV) ........................ 35 ひ 比較手順 比較手順の概略 ....................................................417 表示指定 終了メッセージ表示指定 (-cmsg) .........................36 表示抑止指定 終了メッセージ表示抑止指定 (-Xcmsg) ..............37 表示例 コントロールリスト部のリスト表示例 ............191 削除された関数の シンボルリスト表示例 ..................................197 シンボルリスト部のリスト表示例 .................... 197 マップリスト部のリスト表示例 ........................ 193 CM41-00315-6, July 31, 2015 索引 Support Soft 未使用関数削除機能により削除されたセクション のマップリスト表示例 ..................................193 メモリ使用情報リスト部のリスト表示例 .........195 ふ ファイル検索 ファイル検索 , 保護に関するオプション ..........238 ファイル名 ファイル名の文字コード .......................................12 ファイル名の文字数 ...............................................12 フィル指定 ROM 領域のフィル指定 (-fill) .............................101 フェッチ フェッチ単位チェックの指定 (-Wf) ..................158 フェッチ単位チェック フェッチ単位チェック .........................................397 フェッチ単位チェックの指定 (-Wf) ..................158 フォーマットアジャスタ フォーマットアジャスタ .....................................274 フォーマットアジャスタの オプション一覧 ..............................................301 フォーマットアジャスタの概要 .........................298 フォーマットアジャスタの機能 .........................299 プログラム実行開始 C ソースのプログラム実行開始シンボル指定 (-entryc) ...........................................................134 へ ヘッダ ヘッダ形式 .............................................................200 ヘッダレコード S0 タイプ ( ヘッダレコード ) ..............................372 ヘルプメッセージ ヘルプメッセージ ...................................................10 ヘルプメッセージの表示 (-help) ...........................33 変換 e2ms(HEX16 フォーマット → S フォーマット変換 ) ................................325 f2es( 絶対形式ロードモジュール → HEX16 フォーマット変換 ) ......................296 f2hs( 絶対形式ロードモジュール → HEX フォーマット変換 ) ..........................294 f2is( 絶対形式ロードモジュール → HEX8 フォーマット変換 ) ........................295 f2ms( 絶対形式ロードモジュール → S フォーマット変換 ) ................................293 i2ms(HEX8 フォーマット → S フォーマット変換 ) ................................324 m2es(S フォーマット → HEX16 フォーマット変換 ) ......................323 m2is(S フォーマット → HEX8 フォーマット変換 ) ........................322 変換ツール 変換ツールの追加 .................................................416 ほ 包含関係 包含関係にあるオプションの指定例 ...................25 July 31, 2015, CM41-00315-6 Ma nual 保護 ファイル検索 , 保護に関するオプション ......... 238 ま マクロ スタンバイ制御マクロについて ........................ 404 マップリスト セクション詳細マップリスト ............................188 セクション詳細マップリスト出力指定 (-ml) .................................................................. 183 セクション詳細マップリスト出力抑止指定 (-Xml) ...............................................................185 未使用関数削除機能により削除されたセクション のマップリスト表示例 ..................................193 マップリスト出力 マップリスト出力の抑止指定 (-Xm) ................. 104 マップリスト表示例 未使用関数削除機能により削除されたセクション のマップリスト表示例 ..................................193 マップリスト部 マップリスト部の リスト出力フォーマット ..............................192 マップリスト部のリスト表示例 ........................ 193 マップリストファイル セクション詳細マップリストファイル名の指定 (-mlf) ................................................................. 184 マップリストファイルの作成指定 (-m) ...........................................................313, 317 マップリストファイルの作成抑止指定 (-Xm) ........................................................313, 319 マップリストファイル名の指定 (-m) ................ 103 み 未使用関数 未使用関数削除機能関連オプション .................. 95 未使用関数削除機能により削除されたセクション のマップリスト表示例 ..................................193 未使用関数削除情報ファイル格納パス指定 (-ufiin) .............................................................. 136 め 命令 検出可能なスタンバイモード遷移命令 ............400 スタンバイモード遷移命令チェック指定 (-check_SCF) ....................................................154 スタンバイモード遷移命令チェックツールの 概要 .................................................................. 388 スタンバイモード遷移命令チェック抑止指定 (-Xcheck_SCF) ................................................. 156 スタンバイモード遷移命令を検出しても警告を 出力しない場合 .............................................. 399 メッセージ 入出力ファイル / メッセージに関する 制御 .................................................................... 53 メモリ使用情報リスト メモリ使用情報リストの出力指定 (-mmi) ...............................................................106 445 索引 Su pp or t Manu al メモリ使用情報リスト部 メモリ使用情報リスト部の リスト出力フォーマット ..............................194 メモリ使用情報リスト部の リスト表示例 ..................................................195 読込み指定 オプションファイルからの読込み指定 (-f) ....................................................................... 31 予約シンボル リンカの予約シンボル ........................................ 216 も ら モード スプリットモード指定 (-sp) ........................313, 315 スプリットモードの概要 .....................................311 スプリットモード抑止指定 (-Xsp) .............313, 316 モジュール モジュールの削除 (-d) ..........................................241 モジュールの置換 ( 登録 )(-r) ..............................240 モジュールの抽出 (-x) ..........................................242 モジュールの追加 ( 登録 )(-a) .............................239 モジュール抽出 ライブラリファイル内の モジュール抽出 ......................................226, 229 ライブラリ 検索ライブラリの指定 .......................................... 72 シンボル個別のライブラリの指定 (-el) ............129 ライブラリ検索の抑止 .......................................... 57 ライブラリ検索パス指定 ...................................... 57 ライブラリの検索に関する制御 .......................... 54 ライブラリの作成 , 編集に関するオプション ..............................238 ライブラリアン ライブラリアンでのオブジェクト混在 ............232 ライブラリアンでの関数呼び出しインタフェース の異なるオブジェクトの混在 ...................... 233 ライブラリアンのエラーメッセージ ................ 351 ライブラリアンのオプション一覧 .................... 383 ライブラリアンの制限事項 ................................266 ライブラリアンの役割 ........................................ 224 ライブラリ検索 ライブラリ検索の抑止指定 (-nl) ........................ 130 ライブラリ検索パス ライブラリ検索パスの指定 (-L) .........................128 ライブラリ検索パス指定 ライブラリ検索パス指定 ...................................... 57 ライブラリ出力指定オプション 引数のスタック渡しのライブラリ 出力指定オプション (-Xrp) ........................... 258 引数のレジスタ渡しのライブラリ 出力指定オプション (-rp) ..............................256 ライブラリ制御オプション ライブラリ制御オプション ..................................95 ライブラリファイル LIB907 ( ライブラリファイル検索ディレクトリ ) ............................................................................13 検索ライブラリファイル指定 ..............................57 検索ライブラリファイルの指定 (-l) .................. 127 シンボルごとの検索ライブラリファイル指定 ............................................................................57 ライブラリファイル内の モジュール抽出 ......................................226, 229 ライブラリファイルが 1 つの場合の検索例 1 ...................................... 73 ライブラリファイルが 1 つの場合の検索例 2 ...................................... 74 ライブラリファイルが 1 つの場合の検索例 3 ...................................... 75 ライブラリファイルが 個別に指定された場合の処理 ........................ 78 ライブラリファイルが 複数の場合の検索例 1 ..................................... 76 ライブラリファイルが 複数の場合の検索例 2 ..................................... 77 ライブラリファイルの検索順序 .......................... 72 ライブラリファイルの作成に関する Q &A ................................................................ 267 ライブラリファイルの新規作成 ................226, 227 ゆ ユーザ指定外セクション ユーザ指定外セクションのチェック指定 (-check_section) ................................................151 ユーザ指定外セクションのチェック抑止指定 (-Xcheck_section) .............................................153 ユーザ指定領域 ユーザ指定領域のチェック指定 (-check_rora) .....................................................144 ユーザ指定領域のチェック抑止指定 (-Xcheck_rora) ..................................................146 よ 抑止指定 DIR 属性セクション合計サイズチェック抑止指定 (-Xcheck_dirsize) .............................................163 サイズ 0 のセクション配置チェック抑止指定 (-Xcheck_size0_sec) .........................................166 スタンバイモード遷移命令チェック抑止指定 (-Xcheck_SCF) .................................................156 セクション配置領域チェック抑止指定 (-Xcheck_locate) ...............................................150 デバッグ情報存在チェック抑止指定 (-NCI0302LIB) .................................................141 デフォルトオプションファイル抑止指定 (-Xdof) ................................................................30 デフォルトライブラリ検索の抑止指定 (-nd) ..................................................................131 内蔵 ROM/RAM 領域自動設定の抑止指定 .........86 内蔵 ROM/RAM 領域自動設定の抑止指定 (-Xset_rora) .......................................................143 マップリスト出力の抑止指定 (-Xm) ..................104 ユーザ指定外セクションのチェック抑止指定 (-Xcheck_section) .............................................153 ユーザ指定領域のチェック抑止指定 (-Xcheck_rora) ..................................................146 ライブラリ検索の抑止指定 (-nl) ........................130 446 So ft CM41-00315-6, July 31, 2015 索引 Support Soft ライブラリファイルの内容検査 (-c) ..................250 ライブラリファイルの 内容チェック ..........................................226, 231 ライブラリファイルの内容表示 .................226, 231 ライブラリファイルの編集 .........................226, 227 り リスト リスト 1 ページの行数指定 (-pl) ........................108 リスト行 リスト行の桁数指定 (-pw) ...................................107 リスト出力概要 リスト出力概要 .....................................261, 262, 263 リスト出力関連オプション オブジェクト内容リスト出力関連オプション ............................................................................95 リスト出力フォーマット コントロールリスト部の リスト出力フォーマット ..............................190 シンボルリスト部の リスト出力フォーマット ..............................196 マップリスト部の リスト出力フォーマット ..............................192 メモリ使用情報リスト部の リスト出力フォーマット ..............................194 リスト表示 リスト表示の名前の省略解除 (-dt) ....................105 リスト表示例 コントロールリスト部のリスト表示例 .............191 削除された関数の シンボルリスト表示例 ..................................197 シンボルリスト部のリスト表示例 .....................197 マップリスト部のリスト表示例 .........................193 未使用関数削除機能により削除されたセクション のマップリスト表示例 ..................................193 メモリ使用情報リスト部の リスト表示例 ..................................................195 リストファイル リストファイルの形式変更 ...................................55 リストファイルの構成 .........................................260 リストファイルの出力指定 (-m) ........................243 リストファイルの出力抑止指定 (-Xm) ..............244 リストファイルの詳細情報の出力指定 (-dt) ...................................................................245 リストファイル名の指定 .......................................55 リンカ リンカでの関数呼び出しインタフェースの異なる オブジェクトの混在 ........................................88 リンカのエラーメッセージ .................................334 リンカのオプション一覧 ...............................92, 380 リンカの概要 ...........................................................52 リンカの使用上の Q &A ......................................217 リンカの制限事項 .................................................216 リンカの予約シンボル .........................................216 リンク制御オプション その他のリンク制御オプション ...........................95 リンクリストファイル リンクリストファイル .........................................188 リンクリストファイルの構成 .............................189 July 31, 2015, CM41-00315-6 Ma nual リンケージキット リンケージキットのエラーメッセージの 表示形式 .......................................................... 333 リンケージキットの エラーメッセージ分類 ..................................332 リンケージキットのサポート範囲 ........................ 4 れ レコード S0 タイプ ( ヘッダレコード ) ............................. 372 S1 タイプ ( データレコード : 2 バイトアドレス ) ........................................................................... 373 S2 タイプ ( データレコード : 3 バイトアドレス ) ........................................................................... 374 S3 タイプ ( データレコード : 4 バイトアドレス ) ........................................................................... 375 S5 タイプ ( レコード数管理レコード ) ............. 376 S7 タイプ ( ターミネータレコード ) ................. 377 S8 タイプ ( ターミネータレコード ) ................. 378 S9 タイプ ( ターミネータレコード ) ................. 379 拡張セグメントアドレスレコード (HEX16/HEX32) .............................................. 367 拡張リニアアドレスレコード (HEX32) ............369 出力レコードデータ長指定 (-len) ...................... 302 出力レコード内データ長指定 (-len) .................. 303 スタートアドレスレコード出力指定 (-entry) .............................................................. 289 スタートアドレスレコード出力抑止指定 (-Xentry) ...........................................................291 スタートセグメントアドレスレコード (HEX16/HEX32) .............................................. 368 スタートリニアアドレスレコード (HEX32) ...........................................................370 レコード開始アドレス変更指定 (-ST) ............... 302 レコード開始アドレス変更指定 レコード開始アドレス変更指定 (-ST) ............... 302 レコード数管理レコード S5 タイプ ( レコード数管理レコード ) ............. 376 レジスタ アセンブラ言語を使用して低消費電力モード 制御レジスタ (LPMCR) にアクセスする場合 ..........................................................................403 レジスタバンク レジスタバンク領域の指定 (-rg) ........................ 123 ろ ローカルシンボル情報リスト ローカルシンボル情報リスト ............................188 ローカルシンボル情報リスト出力指定 ローカルシンボル情報リスト出力指定 (-sl) ................................................................... 180 ローカルシンボル情報リスト出力抑止指定 ローカルシンボル情報リスト出力抑止指定 (-Xsl) ................................................................. 182 ローカルシンボル情報リストファイル ローカルシンボル情報リストファイル ............210 ローカルシンボル情報リストファイル名 ローカルシンボル情報リストファイル名の指定 (-slf) .................................................................. 181 447 索引 Su pp or t ロードモジュール f2es( 絶対形式ロードモジュール → HEX16 フォーマット変換 ) ......................296 f2hs( 絶対形式ロードモジュール → HEX フォーマット変換 ) ..........................294 f2is( 絶対形式ロードモジュール → HEX8 フォーマット変換 ) ........................295 f2ms( 絶対形式ロードモジュール → S フォーマット変換 ) ................................293 引数のスタック渡しのロードモジュール出力指定 オプション (-Xrp) ...........................................161 引数のレジスタ渡しのロードモジュール出力指定 オプション (-rp) ..............................................160 出力ロードモジュールファイル名指定 (-o) ......................................................................96 絶対形式ロードモジュールの出力指定 (-a) .......................................................................99 相対形式ロードモジュールの出力指定 (-r) .....................................................................100 ロードモジュールコンバータ ロードモジュールコンバータの オプション一覧 ..............................................285 ロードモジュールコンバータの概要 .................284 ロードモジュールコンバータの種類 .................274 ロードモジュール出力指定オプション 引数のスタック渡しのロードモジュール出力指定 オプション (-Xrp) ...........................................161 引数のレジスタ渡しのロードモジュール出力指定 オプション (-rp) ..............................................160 ロードモジュールファイル 出力ロードモジュールファイル名の指定 ...........55 448 So ft Manu al わ ワークディレクトリ TMP( ワークディレクトリ ) ........................... 13, 14 ワーニング ワーニング発生時の終了コードを 0 にする指定 (-Xcwno) .............................................................39 ワーニング発生時の終了コードを 1 にする指定 (-cwno) ...............................................................38 CM41-00315-6, July 31, 2015 Support Soft Ma nual 奥付 CM41-00315-6 Spansion • SOFTWARE SUPPORT MANUAL F2MC-16 ファミリ SOFTUNETM リンケージキット マニュアル V3 対応 2015 年 7 月 Rev. 6.0 発行 Spansion Inc. 編集 コーポレートコミュニケーション部 July 31, 2015, CM41-00315-6 449 Su pp or t So ft Manu al 免責事項 本資料に記載された製品は、通常の産業用 , 一般事務用 , パーソナル用 , 家庭用などの一般的用途 ( ただし、用途の限定はあ りません ) に使用されることを意図して設計・製造されています。(1) 極めて高度な安全性が要求され、仮に当該安全性が 確保されない場合、社会的に重大な影響を与えかつ直接生命・身体に対する重大な危険性を伴う用途 ( 原子力施設における 核反応制御 , 航空機自動飛行制御 , 航空交通管制 , 大量輸送システムにおける運行制御 , 生命維持のための医療機器 , 兵器シ ステムにおけるミサイル発射制御等をいう ) 、ならびに (2) 極めて高い信頼性が要求される用途 ( 海底中継器 , 宇宙衛星等を いう ) に使用されるよう設計・製造されたものではありません。上記の製品の使用法によって惹起されたいかなる請求また は損害についても、Spansion は、お客様または第三者、あるいはその両方に対して責任を一切負いません。半導体デバイス はある確率で故障が発生します。当社半導体デバイスが故障しても、結果的に人身事故 , 火災事故 , 社会的な損害を生じさ せないよう、お客様において、装置の冗長設計 , 延焼対策設計 , 過電流防止対策設計 , 誤動作防止設計などの安全設計をお 願いします。本資料に記載された製品が、外国為替及び外国貿易法、米国輸出管理関連法規などの規制に基づき規制され ている製品または技術に該当する場合には、本製品の輸出に際して、同法に基づく許可が必要となります。 商標および注記 このドキュメントは、断りなく変更される場合があります。本資料には Spansion が開発中の Spansion 製品に関する情報が 記載されている場合があります。Spansion は、それらの製品に対し、予告なしに仕様を変更したり、開発を中止したりする 権利を有します。このドキュメントに含まれる情報は、現状のまま、保証なしに提供されるものであり、その正確性 , 完全 性 , 実施可能性および特定の目的に対する適合性やその市場性および他者の権利を侵害しない事を保証するものでなく、ま た、明示 , 黙示または法定されているあらゆる保証をするものでもありません。Spansion は、このドキュメントに含まれる 情報を使用することにより発生したいかなる損害に対しても責任を一切負いません。 Copyright © 2004-2015 Cypress All rights reserved. 商標:Spansion®, Spansion ロゴ ( 図形マーク ), MirrorBit®, MirrorBit® EclipseTM, ORNANDTM 及びこれらの組合せは、米国・ 日本ほか諸外国における Spansion LLC の商標です。第三者の社名・製品名等の記載はここでは情報提供を目的として表記 したものであり、各権利者の商標もしくは登録商標となっている場合があります。 450 CM41-00315-6, July 31, 2015
© Copyright 2024 ExpyDoc