RX SmartConfigurator FIT e2studioプロジェクトをMinGWでbuildしてみる(もちろん実行出来ませんけれど)

こんにちは。NoMaYです。

別スレッド「RXシュミレータでの最小プログラムの作成について」でRXシミュレータの代わりにMinGWを使うと言う話が出ていましたので、とりあえず、ビルド出来るようにするにはどうすれば良いのだろうか試してみることにしました。

まずはMingGWのインストールから。今回、以下を参考にさせて頂きました。私は64bit版をインストールしてみました。[追記] 正確には、MinGW-W64にて、64bitターゲットアーキテクチャを選択したのですが、この選択は不適切でしたので、後日、32bitターゲットアーキテクチャを選択し直しました。

gccのインストール(Windows) - 電気通信大学
joho.g-edu.uec.ac.jp/joho/gcc_win/





続く。

Parents
  • こんにちは。NoMaYです。

    前の投稿では流用元プロジェクトをGNURX版にしていましたが、それをCC-RX版に戻しました。また、前回よりも少し念を入れてリンク出来るところまでやってみました。BSPモジュール(+r_cg_macrodriver.h)の変更箇所は以下の画面コピーの通り(全部では無くて少し省略しています)ですが、変更ファイルは以下のzipファイルに固めました。(なお、MinGW用のプロジェクトファイルとFreeRTOSポートレイヤ側は入れませんでした。また、条件コンパイルの切り方は試行錯誤中です。)

    rx_fit_e2studio_mingw_20210626.zip

    ここまで来ると以下のようなことも試してみたいです。

    (1) FreeRTOSのWindows版(MinGW版)をe2 studioにインポートして試す
    (2) emWinのWindows版(MinGW版)をe2 studioにインポートして試す
    (3) 今回のものと上記の2つを組み合わせてみる
    (4) 上記に対向ベンチも付けて動かしてみる
    (5) ワーニングレベルを上げてみる
    (6) Visual C/C++では?(FreeRTOSとemWinのVisual C/C++版はある)
    (6') clangでは?(FreeRTOSとemWinのclang版は無いような?)

    [追記]

    (A) FreeRTOS with AWS IoT libraries (Amazon FreeRTOS)もWindows版があったような

    [ここまで]

    以下、画面コピーです。

    MingGWでのマクロ定義


    MingGWでのビルド


    変更ファイル


    変更箇所(全部では無くて少し省略しています)













    途中省略


     

  • こんにちは。NoMaYです。

    > (A) FreeRTOS with AWS IoT libraries (Amazon FreeRTOS)もWindows版があったような

    ああ、だから、RXでも、FITのTCP/IPモジュールベースではインターネット通信のシミュレーションは出来ないけれども、FreeRTOSのTCP/IPモジュールベースであればインターネット通信のシミュレーションが出来る、わけだよね、、、そして、FITの他のモジュールとFreeRTOSのTPC/IPモジュールは混在可能である、と。(なぜなら、RX実機版Amazon FreeRTOSで混在出来ているのだから。)

Reply
  • こんにちは。NoMaYです。

    > (A) FreeRTOS with AWS IoT libraries (Amazon FreeRTOS)もWindows版があったような

    ああ、だから、RXでも、FITのTCP/IPモジュールベースではインターネット通信のシミュレーションは出来ないけれども、FreeRTOSのTCP/IPモジュールベースであればインターネット通信のシミュレーションが出来る、わけだよね、、、そして、FITの他のモジュールとFreeRTOSのTPC/IPモジュールは混在可能である、と。(なぜなら、RX実機版Amazon FreeRTOSで混在出来ているのだから。)

Children
  • こんにちは。NoMaYです。

    > FreeRTOSのTCP/IPモジュールベースであればインターネット通信のシミュレーションが出来る、わけだよね、、、

    試す時は、そうだ、私には、いきなりクラウドに繋ぐのは荷が重いので、まず、かふぇルネのRSSを読むところから初めてみよう、、、

  • こんにちは。NoMaYです。

    > かふぇルネのRSSを読むところから初めてみよう、、、

    そして、読み出した内容をPC上のemWinシミュレータ上に表示して、ページアップ/ページダウンのタッチボタンを模した部分をマウスでクリックして表示をページアップ/ページダウンさせてみるとか、、、

    ミソは、どういう風に「実機でもシミュレータでも同じソースが動いていますよ感」を醸し出すか、でしょうかね、、、あと、いかにも「簡単にビルドを切り替えられますよ」っぽく見せるにはどうするか、でしょうかね、、、

  • NoMaYさん

    シェルティです、こんにちは。

    本件引き続きBSPに反映できないか検討を進めてます。

    実機ベースのシミュレーションができるまでになれば最高なのですがなかなかそこまでの道のりは長く、それでも一般的な静的解析ツール(FacebookのInfer等)に掛けるようなユースケースや、コード自体の単体テストを実機を使わず実行するといったユースケースにはすぐリーチできると考えており、BSPへの適用行数もそれほど多くないので適用したいとシェルティとしては考えてます。

    またFreeRTOSの内部動作解析ですが、(有料ツールですが)Tracealyzerというツールが大変良いです。割り込みが入ってから何ns後に○○のキューでデータを送信して△△タスクが起床する・・・等が手に取るようにわかります。

    https://percepio.com/tz/freertostrace/

    以上です

  • シェルティさん、こんにちは。NoMaYです。

    > BSPへの適用行数もそれほど多くないので

    リプライありがとうございます。今、ちょっと思っているのは、まだ何が出来るのだろうか暗中模索なところですので、もちろん2重持ち感はありますが、思い切ってr_rx_compiler.hとr_rx_winnt_compiler.hというようにバッサリ分けるというのもアリなのかなぁ、と思ったりしています。同様にr_rx_intrinsic_functions.hとr_rx_winnt_intrinsic_functions.hというようにも。

    それと、CC-RXのmachine.hはr_rx_compiler.hの中でインクルードした方が良かったのかもなぁ、とも思ったりしました。