こんにちは。NoMaYです。ルネサスさんからRenesas Extensions for Visual Studio Code(テクニカルプレビューバージョン)が出ていましたので触ってみることにしました。Renesas Extensions for Visual Studio Code(テクニカルプレビューバージョン) 製品ページwww.renesas.com/jp/ja/software-tool/renesas_extension_of_vscodeRenesas VS Code Extension Helptool-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-csplusVisual 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-developmente2 studioでCMakeでビルドする、というアプリケーションノートがあるのですがスマートコンフィグレータは使えるのでしょうか?community-ja.renesas.com/cafe_rene/forums-groups/tools/f/forum21/7713/e2-studio-cmake
こんにちは。NoMaYです。私が良く見るニュースサイトで、AIコーディング副操縦士たるGitHub Copilot + VSCode + Pythonの記事が目に留まりました。なんか凄そうです。(C++言語はサポートされているようですが、C言語はサポートされていないようです。 そんなことでは無くて、CopilotからのC++言語での提案に比べるとCopilotからのC言語での提案はちょっと劣りますよ…
まずは、エクステンションのインストールから。以下、VSCodeの画面コピーです。[追記]以下、ダウンロードリンクのウェブページとエクステンションインストール手順のウェブページの画面コピーです。[追記]以下、リリースノートのUseful workarounds and informationのページの画面コピーです。
次に、以下の画面コピーのRenesas VS Code Extension Helpのインストール手順に準じて、ビルドとデバッグに必要になる以下のツール群をインストール。(しかし、たぶん、MSYSはe2 studioインストール時に一緒にインストールされている筈のmakeで事足りるだろうと思います。同様に、たぶん、Python 2.7もe2 studioインストール時に一緒にインストールされている筈のPython 2.7で事足りるだろうと思います。)
CMakeMSYSPython 2.7 (32bit版必須(64bit版不可))
私は以下のウェブページから以下のバージョンをダウンロードしてインストールしました。(CMakeは冒頭の関連スレッドのひとつでの事情で既にインストール済みのものを使いました。) ちょっと戸惑うのはMSYSのインストールと環境変数の設定かと思います。画面コピーを以下に付けました。(インストールパスは実際にインストールしたパスに読み替えて下さい。)
cmake.org/download/ cmake-3.26.0-rc5-windows-x86_64.msi 3.26.0-rc5 Windows x64 Installerosdn.net/projects/mingw/ mingw-get-setup.exe Date: 2017-09-06, Size: 91.00 KBwww.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でもビルドを通すことができました。