スマートコンフィグレータの自動生成をカスタマイズしたい

コードジェネレータに /* Start user code があり、ここでカスタムコードを使用できるのですが、

/*Start user code 部分以外にカスタムコードを挿入したいのです。

/* Start user code 部分以外に挿入しても、「コード生成」で消えてしまうので

生成部分に手をいれて自動で出力するようにできないか?という希望がありました。

e2Studio を調べてみたら、 e2Studioのインストールフォルダ下、eclipse\pluginsに

jarファイルがあり、jarファイルの中に出力するコードのひな形(?)があり、これを修正することでほぼ

目的の出力が得られるようにはなりました。

ただ、このjarファイルはバージョンでファイルが分かれていて、e2Studioが何をもとに

バージョンを選択しているのか分かりません。

ファイルの日付?バージョンの新しいもの?

scfgファイルを見ると、コンポーネントのバージョンが記載されていたので、試しにこれを直接修正してみましたが、

e2StudioのスマートコンフィグレータUIの「概要」に示されるバージョン番号は変わらず。

(これが変更できれぱ、該当のバージョンを使用できるのかも)

jarファイルの中には、plugin.xml ファイルがあり、ここにバージョンがありましたので、こちらもscfgに合わせたバージョンに修正してみました。

このような修正(が出来たとして)は当然サポート外の修正となるのは承知していますが、

CGのコンポーネントバージョン(修正方法)とバージョンに対応するjarファイルの選択の仕組みをご存じの方が見えましたら、情報をお願いします。

Parents
  • ka.makiharaさん、こんにちは。NoMaYです。

    すみません、本件そのものについては、私も知らなくて、回答が出来ませんけれども、ちなみに、どのコンポーネントのどの部分に関してなのでしょうか?


    私が認識していることでは、以下のような点がありますけれども。

    * #pragma interrupt部分での多重割り込み許可
    * 割り込みエントリ関数の最初の部分と最後の部分でμITRON(NORTi等)対応のコードを入れたい
    * 割り込み関数を全体的に書き換えたい(例えば通信系CGコンポーネントでのリングバッファ対応とかスレーブモード処理とか)
    * 割り込み処理の起動処理(例えば送受信開始処理など)を全体的に書き換えたい)
    * コンポーネントの初期化処理で独自の初期化処理を追加したい(XXXX_UserInit()ではタイミング的にスッキリしない)
    * スタートアップ時のコンポーネントの一連の初期化処理と同じタイミングで独自の初期化処理を追加したい
    * インクルードファイルの順序問題や相互依存問題でテンプレートでのユーザ記述箇所以外に#includeを記述したい

  • ほやさん、NoMaYさんこんにちは。

    ほやさんに教えていただいた、別プロジェクトでやる方法と

    以前 NoMay さんが試していた、スマートコンフィグレータでLibを作る方法、を合わせてやってみようかと思っています。

    ・まずやりたいのは、NORTi の割込み対応コードを入れ込みたい。

    ・きっかけは、RSPIとI2Cのコンポーネントで、user関数で定義された割込みハンドラに /* start user code がなかったため

     ビルド(コード生成)毎に入れ込みたいコードが消えてしまう。

    ・mispoさんからは、ハンドラ内でauto変数も使用できない、と言われているので、RSPIの割込みハンドラ内の変数をグローバル変数とする。

    FITコンポーネントは一度ファイルが生成されると、消去でもしない限り、上書きされない(ヘッダーは変わる)ので

    入れ込んだのですが、CGはクリーンビルドでも更新されて消えてしまうので。

    消えてしまっても、ビルドエラーにならないので、間違ってリリースしてしまう危険性があり、

    何とか自動で入れ込みたいのです。

  • CGはクリーンビルドでも更新されて消えてしまうので。
    これについては .project ファイルから、SCContentBuilder と ScannerConfigBuilder のブロックを外し、
    Project Nature からも ScannerConfigNature を外してしまえば回避できると思います。

    ↑ 「SmartConfiguratorなしでプロジェクトを作った時の .project と同じにする」という意味です。
    次にコードを生成する時だけ戻せばOK。

Reply
  • CGはクリーンビルドでも更新されて消えてしまうので。
    これについては .project ファイルから、SCContentBuilder と ScannerConfigBuilder のブロックを外し、
    Project Nature からも ScannerConfigNature を外してしまえば回避できると思います。

    ↑ 「SmartConfiguratorなしでプロジェクトを作った時の .project と同じにする」という意味です。
    次にコードを生成する時だけ戻せばOK。

Children
  • ka.makiharaさん、ほや さん、こんにちは。NoMaYです。

    > ↑ 「SmartConfiguratorなしでプロジェクトを作った時の .project と同じにする」という意味です。

    私の経験では、.projectをそのようにしても(少なくともe2 studio 2022-01では)何かの拍子に削除したものが復活してしまい、よろしく無かったです。以下のスレッドに投稿した設定の方が(e2 studio 2022-04でも)具合が良いようです。

    壊れてしまったAmazon FreeRTOS Renesas RX OTA e2 studioプロジェクトを直してみるスレッド
    japan.renesasrulz.com/cafe_rene/f/forum21/8192/amazon-freertos-renesas-rx-ota-e2-studio/42292#42292