ルネサスさんのRenesas Extensions for Visual Studio Codeを使ってみるスレッド

こんにちは。NoMaYです。

ルネサスさんからRenesas Extensions for Visual Studio Code(テクニカルプレビューバージョン)が出ていましたので触ってみることにしました。

Renesas Extensions for Visual Studio Code(テクニカルプレビューバージョン) 製品ページ
www.renesas.com/jp/ja/software-tool/renesas_extension_of_vscode

Renesas VS Code Extension Help
tool-support.renesas.com/e2studio/vscode/docs/debug/index.html

[関連スレッド]

最近Atom IDEとかVisual Studio Codeとか新しい開発環境が出て来てますね(Renesas CSplusと連携させる方法を探したいですね)
community-ja.renesas.com/cafe_rene/forums-groups/tools/f/forum21/4553/atom-ide-visual-studio-code-renesas-csplus

Visual Studio 2022 Community EditionでRX MCUやRL78 MCUのSoftware Developmentが出来るか試してみようと思います
community-ja.renesas.com/cafe_rene/forums-groups/tools/f/forum21/7703/visual-studio-2022-community-edition-rx-mcu-rl78-mcu-software-development

e2 studioでCMakeでビルドする、というアプリケーションノートがあるのですがスマートコンフィグレータは使えるのでしょうか?
community-ja.renesas.com/cafe_rene/forums-groups/tools/f/forum21/7713/e2-studio-cmake
 

  • まずは、エクステンションのインストールから。

    以下、VSCodeの画面コピーです。





    [追記]

    以下、ダウンロードリンクのウェブページとエクステンションインストール手順のウェブページの画面コピーです。




    [追記]

    以下、リリースノートのUseful workarounds and informationのページの画面コピーです。


     

  • 次に、以下の画面コピーのRenesas VS Code Extension Helpのインストール手順に準じて、ビルドとデバッグに必要になる以下のツール群をインストール。(しかし、たぶん、MSYSはe2 studioインストール時に一緒にインストールされている筈のmakeで事足りるだろうと思います。同様に、たぶん、Python 2.7もe2 studioインストール時に一緒にインストールされている筈のPython 2.7で事足りるだろうと思います。)

    CMake
    MSYS
    Python 2.7 (32bit版必須(64bit版不可))

     
    私は以下のウェブページから以下のバージョンをダウンロードしてインストールしました。(CMakeは冒頭の関連スレッドのひとつでの事情で既にインストール済みのものを使いました。) ちょっと戸惑うのはMSYSのインストールと環境変数の設定かと思います。画面コピーを以下に付けました。(インストールパスは実際にインストールしたパスに読み替えて下さい。)

    cmake.org/download/                              cmake-3.26.0-rc5-windows-x86_64.msi    3.26.0-rc5 Windows x64 Installer
    osdn.net/projects/mingw/                         mingw-get-setup.exe                    Date: 2017-09-06, Size: 91.00 KB
    www.python.org/downloads/release/python-2716/    python-2.7.16.msi                      2.7.16 Windows x86 MSI installer

     
    以下、Renesas VS Code Extension Helpのウェブページとインストール時にちょっと戸惑うところの画面コピーです。





    MSYSのインストール時


    環境変数の設定例(インストールパスは実際にインストールしたパスに読み替えて下さい)


     

  • いよいよ、以下の画面コピーのRenesas VS Code Extension Helpのプロジェクト作成手順に従って、プロジェクトの作成に取り掛かろうとしたら、手順に記載の無いワーニングが表示されて、困惑することに、、、

    ・Microsoft C++エクステンションとclangdエクステンションが競合している、とか。

     ⇒ ワーニング内に表示されているマイクロソフトIntelliSense無効化ボタンを押せば良い?

    ・clangd language serverがPATHに見付からない、とか。

     ⇒ ワーニング内に表示されているInstallボタンを押せば良い?

    以下、Renesas VS Code Extension HelpのウェブページとVSCodeの画面コピーです。





     

  • おかしくなったらやり直せばよいので、とにかくワーニング内に表示されているボタンを押してみた。ワーニングは消えたけれども、うまくいったかどうかは後になってみないと分からない、、、

    以下、VSCodeの画面コピーです。






     

  • あらためてプロジェクトを作成してみました。CMake関連のファイルが幾つか自動生成されました。

    以下、VSCodeの画面コピーです。



     

  • 冒頭の関連スレッドのひとつで現在もCMakeに取り組んでいるのですが、昔の記憶を掘り起こしてみると、ルネサスさんのCMake対応では、以下のような普通にCMakeで使われる記述が全く使えなかったわけで、それは今回のRenesas Extensions for Visual Studio Codeにおいても何ら変わっていない筈です。(なぜなら、そこはVSCodeの領域ではなくてCMakeの領域であって、VSCodeのエクステンションとは関係無いのだから。)

    とっさに良い例え話が思い浮かばないのですけれども、例えば、「Makefileを自動生成します」というツールを取り寄せて生成されたMakefileを見たら、依存関係記述など全く無く、実質的に単なるバッチファイルと変わらないMakefileだった、とか、「Makefileを読み込めます」というのでドキュメントを読んでみたら、依存関係記述のあるMakefileはサポートしていませんと書かれていた、とか、そういったところかと思うのです。

    もうひとつの例え話として、CC-RXでC++が使えるというので使い始めたら、今まで使ってきた他の幾つものコンパイラでは普通に書けていた記述が、CC-RXでは軒並みエラーになってしまって書くことが出来ないので調べてみたら、大昔の某社の(現在のC++コンパイラからすれば方言かつ極端なサブセットの)書き方しか出来ないものだと知って呆然とした、みたいなことでもあるかもと思うのです。(ひとによっては、それでも充分に事足りる、ものである場合があるでしょうけれども。)

    target_include_directories(${PROJECT_NAME}
        PRIVATE
        ${DBG_RSPF_MAIN_INC_C}

        ${GSG_BASE_DIR}/src/smc_gen/general
        ${GSG_BASE_DIR}/src/smc_gen/r_bsp
        ${GSG_BASE_DIR}/src/smc_gen/r_config
        ${GSG_BASE_DIR}/src/smc_gen/r_pincfg
        ${GSG_BASE_DIR}/src
    )

     

    target_compile_definitions(${PROJECT_NAME}
        PRIVATE
        TB_RX65N=1
        DEF_WITHOUT_VAL
        DEF_NOT_NUMBER=ABCXYZ
        CPPAPP=${CPPAPP_DEF}
    )

     

  • 冒頭の関連スレッドのひとつで使っていたサンプルを流用しようとするのは中断して、エクステンションが生成したCMake関連のファイルがRXv1向けのものでしたので、RX130の以下のプロジェクトを試すことへ、一旦、方向転換します。

    ・ RXスマートコンフィグレータを使用しない設定でe2 studioでプロジェクト生成したもの
    ・ RXスマートコンフィグレータを使用したTB-RX130のオフィシャルLED点滅サンプルプログラム

    以下、まずは、取り敢えずe2 studio 2023-01+CC-RX V3.05でビルドしたプロジェクトファイル一式を添付しておきます。

    issue_RenesasVSCodeExtension_20230306.zip ← VSCodeとはまだ関係無いものです

    以下、e2 studioでビルドした時のe2 studioの画面コピーです。(VSCodeとはまだ関係無いです。)



     

  • 以下、次に、先日と同様に、Renesas VS Code Extension Helpのプロジェクト作成手順に従って、以下のそれぞれに対してプロジェクトを作成した後の、CMake関連のファイルが幾つか自動生成された直後のプロジェクトファイル一式を添付しておきます。

    ・ RXスマートコンフィグレータを使用しない設定でe2 studioでプロジェクト生成したもの
    ・ RXスマートコンフィグレータを使用したTB-RX130のオフィシャルLED点滅サンプルプログラム

    issue_RenesasVSCodeExtension_20230307.zip ← まだビルド出来ないものです
     

  • その状態だと以下のようなエラーになる。

    気付いたこと:

    ・ VSCode(というかVSCodeエクステンションのCMake Toolsだろうか)は Ninja → make の順でビルドツールを自動検索するっポイ

    以下、VSCodeのエラーの画面コピーです。


     

  • ヘッダファイルがたくさんあると -include オプションを書くのが面倒になりそうですが、
    target_include_directories() か include_directories( ) に
    ヘッダファイルのフォルダを並べて書いておき、
    -output=obj=<OBJECT> <SOURCE> の辺りに <INCLUDES> も入れておけば
    CMakeがオプションを展開してくれるのだとつい最近気付きました。

    GCCではないコンパイラではそのままだとオプションが -I になってしまうのですが、
    set(CMAKE_INCLUDE_FLAG_C "-include=")
    などで置き換えてやればパッチが当たっていないCMakeでもビルドを通すことができました。