synergy_gen配下のコンパイルエラーが発生し、解決できません

はじめまして、初心者です。

下記のようなエラーが解決できず行き詰っています。

プログラムは「Renesas Synergy™ NetXを使ったソケット通信の応用例:マルチクライアントサーバ」
an-r30an0321jj0100-synergy-multi-client-server-sample-using-netx.zip
です。最終的にはap殿のボード(ap-s7g2-0a)でシステムを構築することを目的としています。

ボードの設定をS7G2-SKに設定すると問題なくコンパイルできますが、
ボードの設定をap-s7g2-0aにすると上記エラーが生じます。

ap殿が提供するサンプルプログラムでも同様の事象が発生し、問い合わせたところ、以下のような回答でした。
・ap殿が提供するサンプルプログラムはver1.7.8に対応していない
・旧バージョン(Ver1.4.0)取得はRenesasに依頼
・apではソフトウェアの質問を原則受け付けないので「かふぇルネ」などをご利用して欲しい
・ver1.7.8で稼働させたいのであれば「お客様自身で修正していただく」

旧バージョンの取り寄せはRenesas殿に依頼いていますが、今のところ音沙汰がありません。
そこで、「お客様自身で修正していただく」を模索しています。

初心者なので、まずはサンプルプログラムが正しく動作する事から習得する計画ですが、入口の所で、行き詰っています。
ちなみに、LED点滅や、UARTの入出力は確認できたので、コンパイルの操作やステップ実行などは操作できています。

ヘッダファイルにマクロを追加するなどの事で解決するようにも思うのですが、やみくもにマクロを追加して動く保証も確率もありません。
何しろ初心者であるため、全く方向違いを目指しているのかも知れません。
そもそも、ハードウェアの違いを吸収するためのbspファイル(拡張子がpack)であって、マクロを追加しなければならいのは本末転倒のような気もします。
その意味では、ver1.7.8に対応していないのは、ソースプログラムの方ではなく、bspファイルの方なのでしょうか。
アドバイスを頂けると大変助かります。

Parents
  • Urkさん、こんにちは。NoMaYと申します。

    たまたまウェブで調べ物をしていて気付いたのですが、SSP v1.7.8対応のサンプルが公開されたようですよ。(私ではRenesas Synergyの中身は分かりませんので、所望のものが入っているかは分からないのですけれども。)

    サポート - 株式会社アルファプロジェクト
    www.apnet.co.jp/support/

    2020/10/15    更新    Renesas Synergy™CPUボード サンプルプログラム更新(SSPV1.7.8対応)


  • NoMaY 様、お知らせ有難うございます。
    ウォッチしてなかたので、大変助かります。

    サンプルプログラムもドキュメントも全て更新が行われています。
    早速「AP-S7G2-0A Ethernet サンプルプログラム」をダウンロードして、試してみました。
    残念ながら、今までとは異なるエラー(bsp_board_cfg.hが見つからない)が出るようになりました。

    ちなみに、サンプルプログラムのファイル群の中にはsynergy_gen配下のファイルも含まれています。
    私の拙い理解では、synergy_gen配下は、GenerateProjectContentで生成されるプログラムなので、
    配布プログラムに含まれている事に違和感を感じます。
    コンパイルエラーが出る事と直接の関係はないのかも知れませんが、
    いままでの経緯から、疑念を抱く対象が拡散してしまいます。
  • Urkさん、こんにちは。NoMaYです。

    > 私の拙い理解では、synergy_gen配下は、GenerateProjectContentで生成されるプログラムなので、配布プログラムに含まれている事に違和感を感じます。

    そのことは構わないと、私は、思います。例えば、私が、かふぇルネにプログラムを投稿する時やFreeRTOSのForum/GitHubにプログラムを投稿する時も、RL78コード生成機能やRXスマートコンフィグレータで生成されるフォルダ以下丸ごと投稿していますね。(単に"ビルド"すれば良いようにと思ってです。もっとも、これらの場合は、生成されたソースの"ユーザ記述部"にコードを追加しておくことも多いので、そうする必要がある、ということもありますけど。)

    [追記]

    あっ、フォルダ以下丸ごと、と書きましたが、APIドキュメントのPDFが含まれている場合は容量節約の為にPDFファイルを削除しています。

    それと、もしかすると、Renesas Synergyのコード生成メカニズム的に、それではとても都合が悪い、ということがあったりするかも知れないですので、すみません、その点は私の配慮不足だったかも、と思いました。

Reply
  • Urkさん、こんにちは。NoMaYです。

    > 私の拙い理解では、synergy_gen配下は、GenerateProjectContentで生成されるプログラムなので、配布プログラムに含まれている事に違和感を感じます。

    そのことは構わないと、私は、思います。例えば、私が、かふぇルネにプログラムを投稿する時やFreeRTOSのForum/GitHubにプログラムを投稿する時も、RL78コード生成機能やRXスマートコンフィグレータで生成されるフォルダ以下丸ごと投稿していますね。(単に"ビルド"すれば良いようにと思ってです。もっとも、これらの場合は、生成されたソースの"ユーザ記述部"にコードを追加しておくことも多いので、そうする必要がある、ということもありますけど。)

    [追記]

    あっ、フォルダ以下丸ごと、と書きましたが、APIドキュメントのPDFが含まれている場合は容量節約の為にPDFファイルを削除しています。

    それと、もしかすると、Renesas Synergyのコード生成メカニズム的に、それではとても都合が悪い、ということがあったりするかも知れないですので、すみません、その点は私の配慮不足だったかも、と思いました。

Children
  • NoMaY様、さっそくのご返信ありがとうございます。

    synergy_gen配下のソースについては、本題とずれますが、GenerateProjectContentが何をしてくれるのか今一つ理解しておらず、ここも知りたい点です。
    GenerateProjectContentを押下すると、synergy_gen配下のプログラムは上書きされるという認識です。従って、ユーザプログラムをそこに書くべきではないと理解していました。『"ユーザ記述部"にコードを追加しておくことも多い』という使い方を前提とすると、うっかりGenerateProjectContentは押せないという事でしょうか。
  • Urkさん、こんにちは。NoMaYです。

    RL78コード生成機能やRXスマートコンフィグレータの場合、生成ソースコードの中に以下のようなブロックがあり、そこにユーザ自身がコードを書くことが出来る仕組みになっているのです。(その発想の起源はMicrosoftのVisual Studioという開発ツールの大昔のMFCコード生成機能だったように思います。)(小細工も結構出来て、私の性にあっています。) ただ、RXスマートコンフィグレータでは、それが出来るコンポーネントと出来ないコンポーネントがあり、出来ない方のコンポーネントとRenesas Synergyは近い発想なのかな、と思います。それでも、その出来ない方のコンポーネントでも生成済みのコンポーネントは上書きしないようにする設定が出来て(デフォルトだったかと思う)、その出来ない方のコンポーネントに関しては、(万一その必要があれば)ゴリゴリと書き換えていく、ようなことも出来ます。ですので、このような機能がRenesas Synergyに無ければ、生成コードを書き換えることはUrkさんの考えどおり出来ないかと思います。生成コードを書き換えた場合には、うっかりGenerateProjectContentは押せない、という認識で正しいと思います。(Renesas Synergyの中身を分かっていない、と書いたのは、私はRenesas Synergyを実際に使ったことは無い、という意味だったのです。すみません。)

    多数あるユーザ記述部のひとつです(コードを再生成させてもブロック内は保持される仕組みになっています)

    /***************************************************************************************
    Global variables and functions
    ***************************************************************************************/
    /* Start user code for global. Do not edit comment generated here */

    /* Board Support Data Structures. */
    sci_hdl_t xSerialSciHandle;
    dtc_transfer_data_t xSerialTxDtcInfo;

    /* Workaround to execute FIT Board Support Settings */
    void R_CG_Config_Create(void);
    void R_FIT_Board_Support_Settings(void);
    void R_Systeminit(void)
    {
        R_CG_Config_Create();
        R_FIT_Board_Support_Settings();
    }
    #define R_Systeminit R_CG_Config_Create

    /* End user code. Do not edit comment generated here */

     

  • Urkさま
    cc? : NoMaYさま

    こんにちは、Sugachanceです。

    Renesas Synergy™ プラットフォーム入門ハンズオン
    のセミナで
    src/synergy_gen:プログラマ編集不可
    の説明がありましたので、synergy_gen配下のコードは
    いじってはいけないというのがRenesasの方針のようです。

    ほとんどthreadXありきを想定しているようですので(Non-OSはほぼ想定外)、
    自動生成されたファイルの中では、src/XXX_entry()の中に
    ユーザーコードを書く形が推奨されています。

    XXX_entryには↓のようなコメントが生成されてあります。

    /* TODO: add your own code here */

     

    上の投稿でセミナーについて言及しましたが
    いろいろ質問にも答えてもらえるのでお勧めです。