リンカーはリファレンスマニュアルに書かれているようにVLE関数間のギャップを圧縮しません。
「CodeWarrior Development Studio for Power Architecture ®プロセッサ ビルド ツール リファレンス」には次のように記載されています。
-func_align
実行可能コード内の関数の配置を指定します。
構文
-func_align 4 | 8 | 16 | 32 | 64 | 128
備考
デフォルトの配置は 4 です。ただし、最適化レベル 4 では、アライメントは 16 に変わります。-func_align 4 (またはなし) を使用しており、VLE 用にコンパイルしている場合、リンカーは VLE 関数間のギャップを圧縮します。
• これらの関数がClassic PPC関数によって呼び出されない場合
• 関数のアライメントは 4 より大きい。
注:ギャップの圧縮は、CodeWarrior コンパイラによってコンパイルされたファイルでのみ行われます。
------------------------
質問:
1.ここに矛盾はありませんか、それともこれをどのように理解すべきでしょうか?
「-func_align 4 (またはなし) を使用しており、VLE 用にコンパイルしている場合、リンカーは VLE 関数間のギャップを圧縮します。」
「• 関数のアライメントは 4 より大きいです。」
2. 「クラシックPPC機能」とは何ですか?
3. 関数間にまだギャップ「00 00」があるのはなぜですか。VLE コードをコンパイルし、Codewarrior プロジェクト設定の「関数のアライメント」(コード生成 -> EPPC プロセッサ) が「4 バイト」に設定されています (添付ファイルを確認してください)。
Re: Linker does not compress gaps between VLE functions like Reference Manual sayFORCEFILES { "module.o"}
何らかの理由で、リンク元に約束を忘れる権利が与えられます。同じ問題が発生する場合は、モジュール名を削除してください。
Re: Linker does not compress gaps between VLE functions like Reference Manual sayUPD1: 空のプロジェクトを作成し、サンプル関数を入力しましたが、このプロジェクトでは関数間にギャップは生成されません。私はこれで遊んでいます
Re: Linker does not compress gaps between VLE functions like Reference Manual say...添付ファイル...