Renesas Synergy™

FAQ 3000292 : セクションの分割の回避方法(CC-RX)

Q: 質問
RXコンパイラCC-RXを使用しています。
ビルドで指定したセクションがアライメント数に応じて3つのセクションに分かれて生成されましたが、セクションを分けず、メモリに配置されている変数のアドレスを変えたくありません。

HEWを使用していたときは、最適化しないという設定で回避できましたが、CS+ではどうすればセクション分割を回避できるのでしょうか?


A: 回答

CS+ではオプション指定により、回避(連番にするか、1セクションにまとめるかの選択)可能です。

1セクションにまとめるには、コンパイラのオプション -nostaffを使用します。
-nostuffオプションを使用すると、全ての変数をアライメント4(つまり セクション名末尾に _2も、_1もつかないセクション)に配置します。

-nostaffオプションは、変数の種類に対して、個別に指定します。
a) -nostuff=B 初期値なし非const変数に作用します。
b) -nostuff=D 初期値あり非const変数に作用します。
c) -nostuff=C const修飾変数に作用します。
d) -nostuff=W switch文の分岐テーブル配置に作用します。

ご使用になられるCソース記述に合わせて、オプションをご指定下さい。

以下から設定してください。
「コンパイル・オプション」タブ → 「オブジェクト」→
「初期値なし変数をアライメント4のセクションに配置する」
「初期値あり変数をアライメント4のセクションに配置する」
「const修飾変数をアライメント4のセクションに配置する」
「switch文分岐テーブルをアライメント4のセクションに配置する」

 

適用製品

RXファミリ用C/C++コンパイラパッケージ
CS+ (旧 CubeSuite+)
他にご質問がございましたら、リクエストを送信してください