RL78 配置アドレス指定について

いつもお世話になっております。

RL78の Cファイル(または関数)、変数 の配置開始アドレス指定に関しお教え願います。

Cファイル(または関数)、変数の配置アドレスを指定したいのですが、CC-RLのリンクオプション設定、#pragma section記述方法が

マニュアルを読んでもいまひとつ うまく行きません。

お手数をお掛け致しますが、具体的な手順をお教えいただけないでしょうか?

お願い致します。

開発環境:CC-RL、 マイコン:RL78/R5F100MGAFA、

 

Parents
  • > マニュアルを読んでもいまひとつ うまく行きません。

    現状どのようなことをしたい前提で、どのようなことをやられていて、どのようにいまひとつうまく行かない(=うまく行かないところ以外うまく行く)のか明らかにされるとアドバイスする側も指摘し易いと思いますよ。
    使用されてる CC-RL のバージョンやエラーメッセージ等も情報としてあると尚良いでしょう。
Reply
  • > マニュアルを読んでもいまひとつ うまく行きません。

    現状どのようなことをしたい前提で、どのようなことをやられていて、どのようにいまひとつうまく行かない(=うまく行かないところ以外うまく行く)のか明らかにされるとアドバイスする側も指摘し易いと思いますよ。
    使用されてる CC-RL のバージョンやエラーメッセージ等も情報としてあると尚良いでしょう。
Children
  • 現在、リンクディレクティブファイルを使ってCファイル、変数の配置アドレス指定を行って
    製品化しているRL78ソフトウェア プロジェクトがあるのですが、今回から開発環境をCAからCCに
    移行する事を考えております。(CC-RLの正式ライセンスは4月に購入予定)

    そこで、先ず(評価版の)開発統合環境CS+ 用C コンパイラCC-RLにて
     1.コード生成ツールでソースコードの自動生成を実行 (クロック発生回路、ウオッチドッグタイマ
     (使用する)のみ設定)
     2.コード生成されたr_cg_wdt.cのvoid R_WDT_Restart(void)を ROMアドレス 0x2000から配置しようと
     以下のように設定

     ① void R_WDT_Restart(void)の直前に #pragma section text .TESTと記述

     ② CC-RL(ビルドツール) /[リンク・オプション]のタブをクリック
     ③ セクションの項目を開く
     ④ セクションを自動的に配置する:「はい」から「いいえ」に変更
     ⑤ セクションの開始アドレスの項目の[…]ボタンをクリック⇒追加をクリック
     ⑥アドレスを0x2000に、セクションを.TEST
    ⑦セクションを自動的に配置する:「はい」に戻す
     ⑧ビルド/リビルドプロジェクトをクリック
    ========== 全リビルドの開始(2020年3月19日 10:20:01) ==========
    ------ ビルド開始(aaa, DefaultBuild) ------
    >r_main.c
    >r_systeminit.c
    >r_cg_cgc.c
    >r_cg_cgc_user.c
    >r_cg_wdt.c
    >r_cg_wdt_user.c
    >cstart.asm
    >stkinit.asm
    >DefaultBuild\aaa.abs DefaultBuild\aaa.mot
    W0561017:The evaluation period has expired
    W0561100:Cannot find ".TEST" specified in option "start"
    W0561120:Section address is not assigned to ".TEST_f"
    W0561017:The evaluation period has expired
    Renesas Optimizing Linker Completed
    ------ ビルド終了(エラー:0個, 警告:4個)(aaa, DefaultBuild) ------
    ========== 終了しました(成功:1プロジェクト, 失敗:0プロジェクト)(2020年3月19日 10:20:07) ==========

    →mapファイルをみるとR_WDT_Restartが0xffe20に配置されていました。

    //*******mapファイル*************************
    SECTION=.TEST_f
    FILE=DefaultBuild\r_cg_wdt.obj
    000ffe20 000ffe23 4
    _R_WDT_Restart
    000ffe20 4 func ,g 0

    //***********************************************

    <その他情報 (詳細バージョン情報 貼り付け)>

    --- システム情報 ---
    *OS バージョン
    Microsoft Windows 10 Pro (-, 10.0.17763, WOW64)
    *言語
    日本語 (日本)
    *.NET Framework バージョン
    Microsoft .NET Framework 4 [.NET 4.6 / .NET 4.6.1] (4.0.30319.42000)

    --- アプリケーション情報 ---
    *製品名
    CS+ for CC
    *パッケージ・バージョン
    V8.03.00 [21 Nov 2019]
    *バージョン
    V9.03.00.07 [11 Nov 2019]
    *アセンブリ・バージョン
    3.12.10.1
    *拠点情報
    Japan
    *製品ライセンス
    Compiler Standard V3 for RX (CC-RX) ノードロック・ライセンス(permanent);
    *実行場所
    C:\Program Files (x86)\Renesas Electronics\CS+\CC
    *メモリ使用量
    *プライベート・ワーキング・セット
    343 MB
    *GDIオブジェクト数
    2044
    *USERオブジェクト数
    1022
    *開いているファイル
    0 editors, 0 files, 0 KB

    --- ビルド・ツール・プラグイン情報 ---
    RH850ビルド・ツールCC-RH用プラグイン
    *バージョン
    V8.02.00.00 [25 Mar 2019]
    *アセンブリ・バージョン
    1.1.10.12
    *DLL ファイル名
    BuildToolCCRH.dll
    RL78ビルド・ツールCC-RL用プラグイン
    *バージョン
    V8.02.00.00 [25 Mar 2019]
    *アセンブリ・バージョン
    1.0.0.0
    *DLL ファイル名
    BuildToolCCRL.dll
    RXビルド・ツールCC-RX用プラグイン
    *バージョン
    V8.02.00.00 [25 Mar 2019]
    *アセンブリ・バージョン
    3.12.10.1
    *DLL ファイル名
    BuildToolCCRX.dll
    RH850ビルド・ツールGHS CCRH850用プラグイン
    *バージョン
    V1.04.00.01 [12 Oct 2018]
    *アセンブリ・バージョン
    1.0.0.0
    *DLL ファイル名
    BuildToolGHSCCRH850.dll

    --- デバッグ・ツール・プラグイン情報 ---
    デバッガ・コレクション・プラグイン
    *バージョン
    V8.03.00.05 [11 Nov 2019]
    *アセンブリ・バージョン
    2.12.10.1
    *DLL ファイル名
    DebugToolCollection.dll

    --- その他のプラグイン情報 ---
    RH850用コード生成
    *バージョン
    V1.02.02.05 [25 May 2018]
    *アセンブリ・バージョン
    1.0.0.0
    *DLL ファイル名
    CodeGeneratorRH850.dll
    コード生成プラグイン
    *バージョン
    V4.08.04.01 [17 May 2019]
    *アセンブリ・バージョン
    3.0.0.0
    *DLL ファイル名
    CodePart.dll
    コード生成/端子図プラグイン
    *バージョン
    V2.10.05.01 [15 Nov 2019]
    *アセンブリ・バージョン
    1.0.0.0
    *DLL ファイル名
    CodePart2.dll
    デバッグ・コンソール・プラグイン
    *バージョン
    V7.00.00.01 [06 Apr 2018]
    *アセンブリ・バージョン
    7.0.0.0
    *DLL ファイル名
    DebugConsole.dll
    Quick and Effective tool solution - QE
    *バージョン
    V3.03.00.02 [20 May 2019]
    *アセンブリ・バージョン
    1.15.10.16
    *DLL ファイル名
    InCarTools.dll
    端子配置プラグイン
    *バージョン
    V1.54.01.01 [31 Jul 2014]
    *アセンブリ・バージョン
    1.6.10.23
    *DLL ファイル名
    PinConfig.dll
    プログラム解析プラグイン
    *バージョン
    V4.11.00.01 [25 Sep 2019]
    *アセンブリ・バージョン
    3.12.11.9
    *DLL ファイル名
    ProgramAnalyzer.dll
    IronPythonコンソール・プラグイン
    *バージョン
    V1.39.00.03 [04 Nov 2019]
    *アセンブリ・バージョン
    1.6.10.23
    *DLL ファイル名
    PythonConsole.dll
    エディタ・パネル
    *バージョン
    V1.15.00.01 [29 Mar 2019]
    *アセンブリ・バージョン
    1.1.0.0
    *DLL ファイル名
    SEditor.dll
    スタック見積もりツール
    *バージョン
    V1.05.00.02 [30 Jul 2014]
    *アセンブリ・バージョン
    1.30.11.15
    *DLL ファイル名
    Stk.dll
    アップデート・マネージャ・プラグイン
    *バージョン
    V2.03.00.02 [29 Oct 2018]
    *アセンブリ・バージョン
    1.13.6.20
    *DLL ファイル名
    Update.dll

    デバッグ・ツール共通インタフェース
    *バージョン
    V8.03.00.05 [11 Nov 2019]
    *アセンブリ・バージョン
    3.12.10.1
    *DLL ファイル名
    CommonDebuggerInterface.dll
    デバイス情報共通インタフェース
    *バージョン
    V9.02.00.03 [25 Apr 2019]
    *アセンブリ・バージョン
    3.0.0.0
    *DLL ファイル名
    DeviceInformation.dll

    --- メイン・プロジェクト情報 ---
    C:\Develop\充電器\CHG4_RL78forCC\Test0318_cc\aaa\aaa.mtpj
    マイクロコントローラ情報
    *R5F100MG
    *ファイル名: バージョン
    RL78_Productlist.xml: V8.030000
    R5F100MG_common.xml: V1.10.00.XX.01
    DR5F100MG.DVF: V1.14
    g13_mxafx.ti: V1.00
    -: -


    ビルド・ツール情報
    *CC-RL
    * プラグイン(*.dll)のバージョン
    V8.03.00.02 [21 Oct 2019]
    * コンパイラ・パッケージのバージョン
    V1.09.00


    デバッグ・ツール情報
    *RL78 シミュレータ
    Debugger Library V8.03.00.05 [11 Nov 2019]


    その他のツール情報
    *なし

    *なし

    *なし

    *端子配置
    *プログラム解析
    *バージョン
    V4.11.00.01 [25 Sep 2019]

    *コード生成
    その他の情報
    *RL78/G13コードライブラリ
    *バージョン
    V2.05.04.02 [20 Nov 2019]
    *説明
    RL78/G13コード生成プラグインのためのコードライブラリです。


    お手数をお掛け致しますが、何卒宜しくお願い致します。
    以上
  • 出てる警告

    > W0561017:The evaluation period has expired
    > W0561100:Cannot find ".TEST" specified in option "start"
    > W0561120:Section address is not assigned to ".TEST_f"
    > W0561017:The evaluation period has expired

    の内、W0561017は「評価期間切れ(金払え)」なので無視して良いとして(良くないが)、W0561100は「startオプションで指定されてる".TEST"が見つからん」、W0561120は「".TEST_f"にアドレスが設定されてねえ」ということなので関係ありそうです。

    試しに「CC-RL セクション _f」でぐぐってみると

    > CC-RLの#pragma sectionにおけるnear領域用のセクション名は「変更後セクション名+”_n”」,far領域用のセクション名は「変更後セクション名+”_f”」,saddr領域用のセクション名は「変更後セクション名+”_s”」となります。詳細はCC-RLのユーザーズ・マニュアルを参照してください。

    とか出てくるので多分これじゃないかと思います。

    > ① void R_WDT_Restart(void)の直前に #pragma section text .TESTと記述

    で指定しているセクション名が .TEST_f となり、

    > ⑥アドレスを0x2000に、セクションを.TEST

    で設定している .TEST と合致していないのだと思うので、試しにこれを .TEST_f にされてみてはいかがと思います。

  • いろいろ ご教示いただき、ありがとうございました。

    もう一度、基本に戻りCC-RLコンパイラ ユーザーズマニュアルumを読んでみますと
    ”1.4 ライセンスについて” のところでprofessional 版のみでサポートしている#pragma 指令というところで
    #pragma sectionも含まれていました。

    現時点では実施したいことは何もできないことが分かりましたので、CC-RLのprofessional 版を購入してから
    いろいろ試そうと考えます。
  • たかび さん、こんにちは。NoMaYと申します。

    ちょっと失礼します。#pragma sectionは無償版でもサポートされていますよ。

  • > ”1.4 ライセンスについて” のところでprofessional 版のみでサポートしている#pragma 指令というところで
    > #pragma sectionも含まれていました。

    表 4.15 の「内容」の項目に【Professional 版のみ】と注記があるものだけが Professional 版のみの機能であり、#pragma section はそれに該当しないと思われます。
  • CC-RL/リンク・オプション/セクション/セクションの開始アドレスの設定においてセクション名に
    . _nをつけていなかった事が原因の様でした。
    ソースファイル側は #pragma section text .test と記述し、CC-RL/リンク・オプション/セクション/セクション
    の開始アドレスの設定においてセクション名をtestとしていました。
    (セクション名を.test_n にすると指定したアドレスに配置されている事が確認できました。)

    いろいろ、ありがとうございました。