Renesas Synergy™

FAQ 105978 : C言語で記述した各関数を絶対アドレス(固定アドレス)にしたいのですがどのようにすればいいのでしょうか?

Q: 質問

C言語で記述した各関数を絶対アドレス(固定アドレス)にしたいのですがどのようにすればいいのでしょうか? 


A: 回答

NC30WAは、関数をprogramセクションに配置します。したがって、関数を絶対アドレスに配置するためには、programセクションの配置アドレスを指定してください。
programセクションの配置アドレスは、sect30.incファイル中の ".section program"の行の後で、疑似命令.orgを使用して指定してください。

[例:関数を10000H番地に配置する場合]
sect30.incファイルで以下のように指定してください。

    .section program
   .org 10000H


関数毎に別のアドレスに配置する場合は、対象となる関数に対して "#pragma SECTION"を用いてprogramセクションとは別のセクション名を作成して、そのセクションの配置アドレスを指定するように記述してください。


[例:関数func()を"program1"というセクションに配置し、そのセクションを20000Hに配置する場合]

  1. 以下のように関数を配置するセクション名を指定できます。
    #pragma SECTION program program1
    func()
    {
    }
  2. sect30.incファイルでセクションの配置アドレスを以下のように指定してください。
        .section program1
       .org 20000H

 

適用製品

M16Cシリーズ,R8Cファミリ用C/C++コンパイラパッケージ [M3T-NC30WA]
他にご質問がございましたら、リクエストを送信してください