Skip to main content

IAR Embedded Workbench for Arm 9.70.x

‑‑no_literal_pool

このセクションの内容:
構文
‑‑no_literal_pool 
説明

このオプションを使用して、データの読取りが許可されておらず、コードの実行のみが可能なメモリ領域から実行されるコードを生成します。64ビットモードの場合、このオプションは影響しません。

このオプションを使用すると、コンパイラはリテラルプールではなく、MOV32擬似命令を使用してアドレスおよび大きな定数を生成します。switch文はテーブルを使用して変換されなくなり、定数データが.rodataセクションに配置されます。

このオプションは、リンカが実行するライブラリの自動選択にも影響します。IAR固有のELF属性を使用して、このオプションによりコンパイルされたライブラリを使用するかどうかが決まります。

このオプションArmv6-M およびArmv7 コアでのみ使用でき、‑‑ropiまたは‑‑rwpiオプションと併用できるのはArmv7 コア(Armv8-M、Armv8.1-M、Armv8-A、およびArmv8-R コアを含む)のみです。

注記

Mアーキテクチャプロファイル(Cortex-Mコア)の場合、このオプションはリトルエンディアンのバイトオーダーを使用しているときのみ利用できます。

関連項目

‑‑no_literal_pool.

注意

[プロジェクト]>[オプション]>[C/C++コンパイラ]>[コード]>[コードメモリ内のデータリードなし]