Renesas Synergy™

FAQ 1011726 : GNUコンパイラでは __sectop、__secend 演算子が使えません。 セクションの先頭・終端アドレスを知るにはどうしたら良いでしょう?

Q : 質問

GNUコンパイラでは __sectop、__secend 演算子が使えません。 セクションの先頭・終端アドレスを知るにはどうしたら良いでしょう?


A : 回答

リンカのセクション定義画面で設定したセクション内のラベルは 一般の外部変数と同様にextern参照が可能です。

例えば、e² studioで作成したGNUプロジェクトでは、 .data セクションの先頭と終端にそれぞれ "_data", "_edata" が デフォルトで定義してあります。

以下のような記述により各ラベルのアドレスをポインタとして参照できます。

   extern unsigned char data[];  /* _data label (section top) */
   extern unsigned char edata[];  /* _edata label (section bottom) */

ユーザが任意に作成したセクションでも、ラベルを追加することで同様の使い方が可能になります。

 

 

適用製品

e² studio
他にご質問がございましたら、リクエストを送信してください