FS2021_RX65N_FreeRTOS_GCCのコンパイルエラー

はじめまして、ヨッシーと申します。

freeRTOSを検討したいと、sampleのプロジェクトをダウンロードして

確認を進めようとしています。

ターゲットはRX65Nとして、FS2021_RX65N_FreeRTOPSとFS2021_RX65N_FreeRTOS_GCCを

e2studioでインポートしてコンパイルしているのですが

FS2021_RX65N_FreeRTOS_GCCだけ、vecttle.cの

R_BSP_ATTRIB_SECTION_CHANGE_EXCEPTVECT void (* const Except_Vectors[])(void) =
{
  ***** 省略
};

で、下記エラーとなります。

../src/smc_gen/r_bsp/mcu/rx65n/vecttbl.c:175:39: error: expected ';' before 'void'
R_BSP_ATTRIB_SECTION_CHANGE_EXCEPTVECT void (* const Except_Vectors[])(void) =
                         ^~~~~

どの様に解決するのでしょうか?

どなたか、ご教授頂けると有難いです。


  • ヨッシーさん、こんにちは。NoMaYと申します。

    プロジェクトをインポートしてビルド出来ないのは何か変ですね。ウェブ公開されているサンプルプログラムのようですので、私の方でも試してみようと思います。それで、すみません、念の為に以下のバージョンを教えて頂けませんか。

    (1) e2 studio
    (2) GNURX (GCC for Renesas)

  • ヨッシーです。

    (1) e2 studio

     2021-10(21.10.0)

    (2) GCC for Renesas RX

      8.3.0.202102

    です。

    宜しく、お願いします。

  • ヨッシーさん、こんにちは。NoMaYです。

    ごめんなさい、ルネサスさんのセンサソフトウェアのウェブページからダウンロード出来ると思っていたのですけれど、HS3001やZMOD○○○のサンプルプログラムはあったのですが、FS2012のものがありませんでした。(FITの単品しか置かれていなかった。) ヨッシーさんがダウンロードされた場所を教えて頂けませんか?

  • ヨッシーさん、こんにちは。NoMaYです。

    ごめんなさい、私の使っていたブラウザのサポートが打ち切られたのか、ウェブページの画面レイアウトが崩れて、裏の方に隠れてしまっていました。それをダウンロードしてみます。すみません。

  • ヨッシーです。

    下記URLです。

    FS2012 Sample application - サンプルコード | Renesas

    解凍したr01an6047xx0100-fs2021のフォルダに、他のCPUのプロジェクトとともに有ります。

    以上、宜しくお願い致します。

  • ヨッシーさん、こんにちは。NoMaYです。

    まだe2 studio 2021-10をダウンロードしていませんのでe2 studio 2021-07でやろうとしたのですけれども、FS2012のサンプルプログラムをダウンロードして解凍してインポートしてビルドしてみたところ、まず最初に以下のエラーになりませんでしたか?もしそうであるなら、先に進む前に、このエラーをどうやって解消したのかなぁ?、というところが知りたいです。(このサンプルプログラムですが、FITモジュール生成コード内のPDFファイルによりダウンロードファイルサイズが巨大になることを嫌がったのか(と私は推測しましたけど)、サンプルプログラムのFITモジュールのソースが丸ごと抜き取られていますね(IAR版ソースを除いて)、、、)

    'rx-elf-gcc -O0 -ffunction-sections -fdata-sections -fdiagnostics-parseable-fixits -Wstack-usage=100 -g2 -mcpu=rx64m -misa=v2 -mlittle-endian-data -std=gnu99 -I"C:\\Renesas\\GitHubDesktop\\workspaces\\workspace_e2v202107\\FS2012_RX65N_FreeRTOS_GCC\\src\\FreeRTOS\\Source\\include" -I"C:\\Renesas\\GitHubDesktop\\workspaces\\workspace_e2v202107\\FS2012_RX65N_FreeRTOS_GCC\\src\\FreeRTOS\\Source\\portable\\GCC\\RX600v2" -I"C:\\Renesas\\GitHubDesktop\\workspaces\\workspace_e2v202107\\FS2012_RX65N_FreeRTOS_GCC\\src\\frtos_startup" -I"C:\\Renesas\\GitHubDesktop\\workspaces\\workspace_e2v202107\\FS2012_RX65N_FreeRTOS_GCC\\src\\frtos_config" -Wa,-adlnh="fs2012_sensor_thread.lst" -MMD -MP -MF"src/frtos_skeleton/fs2012_sensor_thread.d" -MT"src/frtos_skeleton/fs2012_sensor_thread.o" "../src/frtos_skeleton/fs2012_sensor_thread.c" -c -o "src/frtos_skeleton/fs2012_sensor_thread.o"'
    ../src/frtos_startup/freertos_start.c:36:10: fatal error: platform.h: No such file or directory
     #include "platform.h"
              ^~~~~~~~~~~~

     

  • ヨッシーさん

    こんにちは、シェルティです。ルネサスの中の人です。

    RX65Nマイコンやセンサをご検討いただきありがとうございます。

    ご提示いただいたサンプルを正しくビルドするためには一度スマートコンフィグレータでコード生成しなおしてみてください。NoMaYさんのご推察の通りコード生成で自動生成させるコードはサンプルダウンロード時に時間がかかるので削除しています。

    以下、実際にうまくいくのか試してみました。以下手順でビルドOKになりました。

    ①FS2012_RX65N_FreeRTOS_GCC を e2 studio にインポート

    ②プロジェクトエクスプローラにある「FS2012_RX_FreeRTOS.scfg」をダブルクリックしスマートコンフィグレータを起動

    ③コンポーネントタブに以下のようにmissing parts (灰色のキューブ型アイコン)があれば「コンポーネントをダウンロード」をクリックして「OK」ボタン

     ⇒GitHubから適切なコンポーネントの適切なバージョンを自動ダウンロードしてきます。

    ④スマートコンフィグレータ右上の「コードの生成」を押す

    ⑤ビルドする⇒OK

    以上です

  • NoMayさん

    シェルティさんの回答に有りますが、

    FS2012_RX_FreeRTOS.scfgでコード生成し

    それでも、インクルドPATHがたりなかったので、

    プロジェクト ⇒ プロパティ ⇒ C/C++一般 ⇒ パスおよびシンボル で

    RTOS関係のディレクトリーを追加しました。

    それで、たりないファイルはインクルード出来たのですが

    お尋ねしたエラーが残りました。

    何かが、たりないのだと思いますので、シェルティさんのご提示通り実行してみます。

    以上、有り難うございます。

  • シェルティさん。ヨッシーです。

    ご提示の通りを行った心算ですが、エラーが解消されません。

    コンポーネントですが、グレーアウトではなく、ビックリマークが付いている状態です。

    コンポーネントにマウスを合わせるとポップアップで

    >サンプルプロジェクトが利用可能です

    ダウンロードするには、コンポーネントを右クリックし、サンプルプロジェクトのダウンロードとインポートを選択します。

    と表示します。

    以前は何もしていませんでしたが、ダウンロードとインポートを行いましたが、

    ビックリマークは消えませんでした。

    この状態でコード生成したら、それなりにディレクトリーとファイルが出来ます。

    それで、インクルードファイルが無いエラーは出ない状態です。

    すべてビルドで、プロジェクトのビルドを行いますが

    vecttble.c の

    R_BSP_ATTRIB_SECTION_CHANGE_EXCEPTVECT void (* const Except_Vectors[])(void) =

    の行で、次のエラーとなります。

    ../src/smc_gen/r_bsp/mcu/rx65n/vecttbl.c:175:39: error: expected ';' before 'void'
    R_BSP_ATTRIB_SECTION_CHANGE_EXCEPTVECT void (* const Except_Vectors[])(void) =
    ^~~~~

    なにか、足りないのでしょうか?

    以上、宜しくお願い致します。

  • ヨッシーさん、こんにちは。NoMaYです。

    > それでも、インクルドPATHがたりなかった

    > RTOS関係のディレクトリーを追加しました

    ここが何かおかしいですね。最初の投稿に、プロジェクトをインポートされた、とありましたので、新規にプロジェクトを作成して、FS2012_RX_FreeRTOS.scfgをコピーして、ファイルを生成させて、では無いのですよね?、、、e2 studioに用意されているプロジェクトのインポート機能を使われた、ということですよね?、、、(プロジェクトをインポートする、という操作のイメージが私達と合ってるかな?の確認です、、、)

    また、可能なら以下のファイルをzipファイルに固めて投稿に添付して投稿して頂くことは出来ませんか?

    (1) .project
    (2) .cprojct
    (3) FS2012_RX_FreeRTOS.scfg
    (4) ビルドログ(ビルド時にConsoleビューに表示されたものをテキストファイルにコピペしたもの)

  • NoMayさん。ヨッシーです。

    いろりろ試して、最初が解らなくなってしまいましたが

    『FS2012_RX_FreeRTOS.scfgをコピーして、ファイルを生成させて』はしていませんので

    インポート機能を使ったと思います。

    e2 studioは初めてですので、今一つ勝手がわからず、申し訳ありません。

    以上、宜しくお願い致します。

    コンポーネント.zip

  • ヨッシーさん、こんにちは。NoMaYです。

    どうもzipファイルをありがとうございました。ただ、頂いたGNURXプロジェクトの.cprojectファイルですが、e2 studio 2021-07からでは、プロジェクトのプロパティのコンパイラ設定のタブを開こうとするとエラーが発生して正しくタブを開けませんでした。

    また、.cprojectをエディタで開いて中を見ると、プロジェクトの対象デバイス名とかCPUコアバージョンとか欠落していると見受けられましたので、先ほど頂いたリプライの内容と合わせて考えると、これはe2 studio 2021-10のGNURXプロジェクトのインポート機能に不具合が生じている可能性が疑われます。(実は予感的には、また互換性を捨てたプロジェクトフォーマットの変更をやらかしたのでは?とも思っていますけども、、、)

    今の印象では、これは自分でもe2 studio 2021-10をインストールしてみないといけないかな、というところですので、暫く待って頂けますか。(その前にe2 studio 2021-10のリリースノートを確認しなくては、、、)

  • ヨッシーさん、こんにちは。NoMaYです。

    自分でもe2 studio 2021-10をインストールしてやってみましたが、問題無く出来ました。一応、以下の3つをzipファイルに固めて添付しておきます。そちらの環境に上書きして試してもらえますか。

    issue_20211012_e2_import.zip

    (1) .project ← ルネサスさんのサイトからダウンロードしたもののままで変化無しです
    (2) .cprojct
    (3) FS2012_RX_FreeRTOS.scfg ← ルネサスさんのサイトからダウンロードしたもののままで変化無しです

  • ヨッシーさん、こんにちは。NoMaYです。

    >  いろいろ試して、最初が解らなくなってしまいましたが

    思ったのですが、これは即ち、シェルティさんからアドバイスがあったやりかたを試した時にインポート手順からやり直したわけでは無かった、ということなんですね?試しに、ルネサスさんのサイトからダウンロードしたものを使って、最初から、つまりインポート手順から、やり直してみるとどうなりますでしょうか?

  • ヨッシーさん、こんにちは。NoMaYです。

    今後に関して、一言添えておくと、BSPモジュールの設定とかコンパイル/リンクの最適化の設定とか見直してあげないと、プログラムはとても大きいです、、、(RX版クイックコネクトIoTセンサミドルウェア自体も結構大きいですよ、、、)