最近Atom IDEとかVisual Studio Codeとか新しい開発環境が出て来てますね(Renesas CSplusと連携させる方法を探したいですね)

最近、Atom IDE(まだC/C++サポートは無い模様)とかVisual Studio Code(C/C++サポートのプレビュー版は有る模様)とか、新しい開発環境が出て来ていますね。ルネサスCS+と連携させる方法を探してみたいですね。

Google検索: Atom IDE site:マイナビニュース
www.google.co.jp/search?q=Atom+IDE+site%3Anews.mynavi.jp

Google検索: Visual Studio Code site:マイナビニュース
www.google.co.jp/search?q=Visual+Studio+Code+site%3Anews.mynavi.jp

[リンク]

C/C++ for VS Code (Preview)
code.visualstudio.com/docs/languages/cpp

[案(当面)]

・ ビルドはCS+のコマンドラインモードを使用する
・ ビルドエラーメッセージパーサはVisual Studio Codeのソースを改造する
・ もちろんCS+のコマンドラインモードでビルドした.absファイルはCS+のGUIモードでデバッグ可能
・ e² studio同梱のrenesas_cc_converter.exeでCC-RXやCC-RLの.absファイルをGDBで読める.xファイルに変換可能
・ e² studio同梱のe2-server-gdb.exeでGDBとE1/E2Lite等を接続可能
・ Visual Studio CodeはGDBと接続可能(任意のGDBと接続可能かは分からないが少なくともARM GDBとは接続可能な模様)

[案(将来)]

・ Visual Studio CodeをルネサスCS+と接続出来れば、、、(出来ればGDBを介さずに、、、)
・ Visual Studio CodeをルネサスCS+のmtpjファイル内のソース情報が読めるように改造出来れば、、、

  • こんにちは。NoMaYです。

    今回、以下に記載されていたe2 studio headless buildをVSCodeの中から起動&実行してみました。ビルドが始まる前やビルドが終わった後にe2 studio由来のエラーメッセージやワーニングメッセージが表示されるものの、概ね思惑通りに動いてくれたのですが、ちょっと気になるのは、e2 studioが既に起動しているとheadless buildがエラーになってしまうことです。実は、e2 studio側でプロジェクト設定を調整しつつVSCode側でビルドするとか、e2 studio側でリンクマップビュワーを表示しつつVSCode側でビルドするとか、そういう連携も考えていましたので、ちょっと対策を考えないといけなさそうです。

    [使用方法] e² studioのプロジェクトをコマンドラインでビルドする方法
    ja-support.renesas.com/knowledgeBase/17797621

    以下、ビルド時のVSCodeの画面コピーとVSCodeの設定ファイルの内容です。







    ./.vscode/tasks.json

    tasks.json.e2studio.20211115.txt
    {
        // See https://go.microsoft.com/fwlink/?LinkId=733558
        // for the documentation about the tasks.json format
        // NoMaYメモ VSCode C/C++ エラーパーサ: https://code.visualstudio.com/docs/editor/tasks#_defining-a-problem-matcher
        "version": "2.0.0",
        "tasks": [
            {
                "label": "Build",
                "type": "shell",
                "command": "./.vscode/build_wrapper.ps1",
                "args": [
                    "-nosplash",
                    "--launcher.suppressErrors",
                    "-application",
                    "org.eclipse.cdt.managedbuilder.core.headlessbuild",
                    "-data",
                    "\"C:/Renesas/GitHubDesktop/workspaces/workspace_e2v202110\"",
                    "-build",
                    "TestProgRun"
                ],
                "group": {
                    "kind": "build",
                    "isDefault": true
                },
                "problemMatcher": {
                    "base": "$msCompile",
                    "fileLocation": ["relative", "${workspaceFolder}/HardwareDebug"]
                }
            }
        ]
    }
    

     
    ./.vscode/build_wrapper.ps1

    build_wrapper.ps1.e2studio.20211115.txt
    # Related links
    # https://docs.microsoft.com/powershell/scripting/overview
    # https://docs.microsoft.com/powershell/module/microsoft.powershell.core/about/about_regular_expressions
    # https://docs.microsoft.com/powershell/module/microsoft.powershell.core/about/about_comparison_operators
    
    filter msgconv_Renesas_MS
    {
    ####    # Remove some progress and status messages from CubeSuite+.exe
    ####    $_ = $_ -replace '^P:\[Notice\]$', ''
    ####    $_ = $_ -replace '^  \(\d+%\).* \.\.\.$', ''
    ####    $_ = $_ -replace '^\[(Error|Warning|Information)\].*', ''
    
        # file(line):Ccode:message --> file(line): error Ccode: message
        # file(line):Ecode:message --> file(line): error Ecode: message
        # file(line):Fcode:message --> file(line): error Fcode: message
        $_ = $_ -replace '^(.*)\((\d+)\):([CEF]\d+):(.*)$', '$1($2): error $3: $4'
    
        # file(line):Wcode:message --> file(line): warning Wcode: message
        $_ = $_ -replace '^(.*)\((\d+)\):(W\d+):(.*)$', '$1($2): warning $3: $4'
    
        # file(line):Mcode:message --> file(line): info Mcode: message
        $_ = $_ -replace '^(.*)\((\d+)\):(M\d+):(.*)$', '$1($2): info $3: $4'
    
        # Show converted message
        if ( $_ -ne '' )
        {
            return $_
        }
    }
    
    echo "========== Start e2 studio headless build($(Get-Date)) =========="
    C:\Renesas\e2studio64_v202110\eclipse\eclipsec.exe $Args | msgconv_Renesas_MS
    echo "========== End e2 studio headless build($(Get-Date)) =========="
    

     

  • こんにちは。NoMaYです。

    VSCodeのlaunch.json設定ファイルにはBATファイルも記述出来ることに気付きましたので、今回、rx-elf-gdb.exeとe2-server-gdb.exeを直接起動する代わりにgdb_wrapper.batとgdbserver_wrapper.batを経由させて起動するようにしてみました。メリットは、BATファイル内で環境変数を設定出来ますので、以前に投稿した時に必要だったVSCode外での環境変数の事前設定作業を今後は不要に出来ることです。また、e2 studioが生成した*.launchファイル内にrx-elf-gdb.exeとe2-server-gdb.exeへ与える起動オプション文字列が含まれているのですけれど、それを機械的に抽出してBATファイル内で利用する、といったことが出来るかも知れません。次は、それを試してみるつもりです。

    ./.vscode/gdb_wrapper.bat

    set Path=C:\Renesas\e2studio64_v202110\eclipse\runtimes\python\2.7.12_x86;%Path%
    set PYTHONPATH=C:\Renesas\e2studio64_v202110\eclipse\runtimes\python\2.7.12_x86\lib
    cd /d C:\Renesas\e2studio64\SupportFiles\.eclipse\com.renesas.platform_1643561029/DebugComp\RX
    rx-elf-gdb.exe %* -rx-force-isa=v3 -rx-force-double-fpu

     
    ./.vscode/gdbserver_wrapper.bat

    cd /d C:\Renesas\e2studio64\SupportFiles\.eclipse\com.renesas.platform_1643561029\DebugComp\RX
    e2-server-gdb.exe -p 60916 -g SIMULATOR -t R5F572NN -uPeripheralClkRatio= 4 -uCpuClkFreq= 240 -uRegisterSetting= 0 -uModePin= 0 -uCacheDecode= 1 -uIOModule= IodllForCMT.dll -uIOModule= IodllForICU_dpfpu.dll -n 0 -uWorkRamAddress= 0 -uEmStopInt= 0 -uEmStopInterrupt= 0 -uEmStopFPexp= 0 -l -uCore= SINGLE_CORE^|enabled^|1^|main -uSyncMode= async -uFirstGDB= main

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


     

  • こんにちは。NoMaYです。

    今回、以下のようなことをしてみました。(なお、この他にも少しあります。次は、同様にRL78でもやってみます。)

    (1) e2 studioが生成した*.launchファイル内のrx-elf-gdb.exeとe2-server-gdb.exeの起動オプション文字列を読み取ってデバッガを起動する
    (2) 以前に参考にさせて頂いたブログ記事を真似てプロジェクトフォルダ名=プロジェクト名なら2箇所の変更でjsonファイルを使い回せるようにした
    (3) PowerShellスクリプトやbatファイルやgdbコマンドファイルを./.vscode/scriptsフォルダを作って移した
    (4) ツールのパスを記述する箇所を1つのbatファイル内の1ヶ所にまとめた

    今回の.vscodeフォルダ内のファイルは以下のzipファイルに固めました。

    vscode_helper_files_rx_20211118.zip

    含まれているファイルは以下のVSCodeの画面コピーの青色選択箇所のファイルです。



    以下、ツールのパスをまとめたbatファイルとc_cpp_properties.json(赤文字箇所が要変更箇所)とtasks.json(赤文字箇所が要変更箇所)とlaunch.json(青文字箇所で*.launchファイルを選択)です。

    ./.vscode/scripts/tool_path_setup.bat

    @echo off
    set ECLIPSE_HOME=C:\Renesas\e2studio64_v202110\eclipse
    set SUPPORT_AREA=C:\Renesas\e2studio64\SupportFiles\.eclipse\com.renesas.platform_1643561029
    set CSPLUSPATH=C:\Renesas\CS+\CC
    set PYTHONPATH=%ECLIPSE_HOME%\runtimes\python\2.7.12_x86\lib
    set Path=%PYTHONPATH%\..;%Path%

     
    ./.vscode/c_cpp_properties.json

    {
        "configurations": [
            {
                "name": "CC-RX",
                "includePath": [
                    "C:/Renesas/CS+/CC/CC-RX/V3.03.00/include",
                    "${workspaceFolder}/**"
                ],
                "defines": [
                ],
                "compilerPath": "",
                "cStandard": "c99",
                "cppStandard": "c++17",
                "intelliSenseMode": "windows-msvc-x86",
                "forcedInclude": [
                    "./.vscode/c_cpp_intellisense_helper.h"
                ]
            }
        ],
        "version": 4
    }

     
    ./.vscode/tasks.json

    {

        "version": "2.0.0",
        "tasks": [
            {
                "label": "Build",
                "type": "shell",
                "command": "./.vscode/scripts/build.ps1",
                "args": [
                    "-data",
                    "C:/Renesas/GitHubDesktop/workspaces/workspace_e2v202110",
                    "-build",
                    "${workspaceFolderBasename}"
                ],
                "group": {
                    "kind": "build",
                    "isDefault": true
                },
                "problemMatcher": {
                    "base": "$msCompile",
                    "fileLocation": ["relative", "${workspaceFolder}/HardwareDebug"]
                }
            }
        ]
    }

     
    ./.vscode/launch.json

    {

        "version": "0.2.0",
        "configurations": [
            {
                "name": "(rx-elf-gdb) 起動",
                "type": "cppdbg",
                "request": "launch",
                "program": "${workspaceFolder}/HardwareDebug/${workspaceFolderBasename}.x",
                "args": [],
                "cwd": "${fileDirname}",
                "environment": [],
                "externalConsole": false,
                "targetArchitecture": "x86",
                "debugServerPath": "${workspaceFolder}/.vscode/scripts/gdbserver.bat",
                "debugServerArgs": "\"${workspaceFolder}/${workspaceFolderBasename} HardwareDebug.launch\" ; -p 60916",
                "serverStarted": "GDB: ",
                "MIMode": "gdb",
                "miDebuggerPath": "${workspaceFolder}/.vscode/scripts/gdb.bat",
                "miDebuggerArgs": "\"${workspaceFolder}/${workspaceFolderBasename} HardwareDebug.launch\" ; --cd=${workspaceFolder} -se=HardwareDebug/${workspaceFolderBasename}.x",
                "stopAtEntry": true,
                "stopAtConnect": true,
                "setupCommands": [
                    {
                        "text": "-interpreter-exec console \"source ./.vscode/scripts/gdb_setup.gdb\"",
                    }
                ],
                "customLaunchSetupCommands": [
                    {
                        "text": "-target-select extended-remote-rx localhost:60916",
                    },
                    {
                        "text": "-interpreter-exec console \"source ./.vscode/scripts/gdb_custom_launch_setup.gdb\""
                    }
                ],
                "logging": {
                    "exceptions": true,
                    "moduleLoad": false,
                    "programOutput": true,
                    "engineLogging": false,
                    "trace": false,
                    "traceResponse": false,
                }
            }
        ]
    }

     
    以下、on-board E2 LiteエミュレータでVSCodeのデバッガを起動した時の画面コピーです。





     

  • こんにちは。NoMaYです。

    今回、前回のRXと同様にRL78でもやってみました。前回書いたことと重複しますが、以下のようにしてみました。

    (1) e2 studioが生成した*.launchファイル内のrl78-elf-gdb.exeとe2-server-gdb.exeの起動オプション文字列を読み取ってデバッガを起動する
    (2) 以前に参考にさせて頂いたブログ記事を真似てプロジェクトフォルダ名=プロジェクト名なら2箇所の変更でjsonファイルを使い回せるようにした
    (3) PowerShellスクリプトやbatファイルやgdbコマンドファイルを./.vscode/scriptsフォルダを作って移した
    (4) ツールのパスを記述する箇所を1つのbatファイル内の1ヶ所にまとめた

    今回の.vscodeフォルダ内のファイルは以下のzipファイルに固めました。(互いの合わせ込みでRXも修正しました。)

    vscode_helper_files_rl78_20211120.zip
    vscode_helper_files_rx_20211120.zip

    含まれているファイルは以下のVSCodeの画面コピーの青色選択箇所のファイルです。



    以下、ツールのパスをまとめたbatファイルとc_cpp_properties.json(赤文字箇所が要変更箇所)とtasks.json(赤文字箇所が要変更箇所)とlaunch.json(青文字箇所で*.launchファイルを選択)です。

    ./.vscode/scripts/tool_path_setup.bat

    @echo off
    set ECLIPSE_HOME=C:\Renesas\e2studio64_v202110\eclipse
    set SUPPORT_AREA=C:\Renesas\e2studio64\SupportFiles\.eclipse\com.renesas.platform_1643561029
    set CSPLUSPATH=C:\Renesas\CS+\CC
    set PYTHONPATH=%ECLIPSE_HOME%\runtimes\python\2.7.12_x86\lib
    set Path=%PYTHONPATH%\..;%Path%

     
    ./.vscode/c_cpp_properties.json

    {
        "configurations": [
            {
                "name": "CC-RL",
                "includePath": [
                    "C:/Renesas/CS+/CC/CC-RL/V1.10.00/inc",
                    "${workspaceFolder}/**"
                ],
                "defines": [
                ],
                "compilerPath": "",
                "cStandard": "c99",
                "cppStandard": "c++17",
                "intelliSenseMode": "windows-msvc-x86",
                "forcedInclude": [
                    "./.vscode/c_cpp_intellisense_helper.h"
                ]
            }
        ],
        "version": 4
    }

     
    ./.vscode/tasks.json

    {

        "version": "2.0.0",
        "tasks": [
            {
                "label": "Build",
                "type": "shell",
                "command": "./.vscode/scripts/build.ps1",
                "args": [
                    "-data",
                    "C:/Renesas/GitHubDesktop/workspaces/workspace_e2v202110",
                    "-build",
                    "${workspaceFolderBasename}"
                ],
                "group": {
                    "kind": "build",
                    "isDefault": true
                },
                "problemMatcher": {
                    "base": "$msCompile",
                    "fileLocation": ["relative", "${workspaceFolder}/HardwareDebug"]
                }
            }
        ]
    }

     
    ./.vscode/launch.json

    {

        "version": "0.2.0",
        "configurations": [
            {
                "name": "(rl78-elf-gdb) 起動",
                "type": "cppdbg",
                "request": "launch",
                "program": "${workspaceFolder}/HardwareDebug/${workspaceFolderBasename}.x",
                "args": [],
                "cwd": "${fileDirname}",
                "environment": [],
                "externalConsole": false,
                "targetArchitecture": "x86",
                "debugServerPath": "${workspaceFolder}/.vscode/scripts/gdbserver.bat",
                "debugServerArgs": "\"${workspaceFolder}/${workspaceFolderBasename} HardwareDebug.launch\" ; -p 60916 -uComPort= COM9",
                "serverStarted": "GDB: ",
                "MIMode": "gdb",
                "miDebuggerPath": "${workspaceFolder}/.vscode/scripts/gdb.bat",
                "miDebuggerArgs": "\"${workspaceFolder}/${workspaceFolderBasename} HardwareDebug.launch\" ; --cd=${workspaceFolder} -se=HardwareDebug/${workspaceFolderBasename}.x",
                "stopAtEntry": true,
                "stopAtConnect": true,
                "setupCommands": [
                    {
                        "text": "-interpreter-exec console \"source ./.vscode/scripts/gdb_setup.gdb\"",
                    }
                ],
                "customLaunchSetupCommands": [
                    {
                        "text": "-target-select extended-remote localhost:60916",
                    },
                    {
                        "text": "-interpreter-exec console \"source ./.vscode/scripts/gdb_custom_launch_setup.gdb\""
                    }
                ],
                "logging": {
                    "exceptions": true,
                    "moduleLoad": false,
                    "programOutput": true,
                    "engineLogging": false,
                    "trace": false,
                    "traceResponse": false,
                }
            }
        ]
    }

     
    以下、RL78/G23 Fast Prototyping BoardのCOMPort通信デバッガでVSCodeのデバッガを起動した時の画面コピーです。





     

  • こんにちは。NoMaYです。

    ウェブで調べ物をしていて気付いたのですが、IARさんは自社のEWB統合開発環境とVSCodeを連携させるやり方を提示した以下のアプリケーションノートを出していましたね。これも参考にしたいと思います。(というか、真似をする、と言った方が良いのかも知れませんけれども、、、) それから、連携を容易にする為のVSCodeのプライグインも既に存在していたのですね。(どうも開発されたのはIARさんでは無いような印象ですけれども、、、)

    Visual Studio Code と IAR Embedded Workbench の使用
    www.iar.com/jp/knowledge/support/technical-notes/general/using-visual-studio-code-with-iar-embedded-workbench/
     

  • こんにちは。NoMaYです。

    別スレッドのVisual Studio 2022でRX MCU/RL78 MCUのCC-RX/CC-RLを使ったプログラムのビルド/デバッグが出来るようにした時のやり方を、こちらのスレッドのVisual Studio Codeでも同じ様にやれるようにしたものを、以下のzipに固めました。別スレッドに書いたことと重複しますが、以下のようにしました。なお、まだ作業は続きます。

    (1) e2 studioのheadless buildだけでなく、e2 studioが生成したmakefileを直接使用してビルドする方法にも対応した
    (1') かつ、headless buildよりもmakefileを直接使用してビルドする方法を主たる(より容易に操作出来る)ビルド方法として設定した

    (2) buildだけでなく、rebuildにも対応した
    (2') こちらもheadless buildだけでなくmakefileを直接使用してビルドする方法にも対応した

    (3) e2 studioでワークスペースを開いたままにしてもheadless buildが出来るようにした
    (3') 元のワークスペースフォルダの下に.headlessbuildというフォルダを作成して更にその下にプロジェクト毎にheadless build用ワークスペースフォルダを作成して使用するように変更しました

    (4) e2 studioやCC-RX/CC-RLの各種パス設定やプロジェクトの各種設定をc_cpp_properties.jsonというファイルにまとめた
    (4') 以前に試していたtool_path_setup.batというバッチファイルは削除しました
    (4'') Visual Studio 2022の場合とは異なり、プロジェクト名をプロジェクトフォルダ名で代用させる手も使えます

    今回の以下のzipには次のファイルを固めています。

    vscode_helper_files_rl78_20211203.zip
    vscode_helper_files_rx_20211203.zip

    Visual Studio MCU.elf ← 注: 実装上の事情でVisual Studio 2022の場合と同様な小細工のダミーファイルを追加しました
    .vscode/c_cpp_intellisense_helper.h
    .vscode/c_cpp_properties.json
    .vscode/launch.json
    .vscode/tasks.json
    .vscode/.script/build.bat
    .vscode/.script/build.ps1
    .vscode/.script/gdb.bat
    .vscode/.script/gdbserver.bat
    .vscode/.script/gdb_custom_launch_setup.gdb
    .vscode/.script/gdb_setup.gdb
    .vscode/.script/inherit_environments.bat

     
    以下、今回のやり方での、Visula Studio Codeのメニューやツールバー(?)の画面コピーです。

    ビルドメニューにはe2 studioが生成したmakefileを直接使用するビルド方法でのbuildが表示されます


    タスクメニューには最初に書いた4つ全てのビルド方法が表示されます
    (メニューで with updating makefile が付いている build と rebuild は e2 studio headless build でビルドします)



    デバッガ起動としてツールバー(?)からHardwareDebugとReneseSimDebugの起動が出来ます
    (表示される文字列は、Visual Studio 2022の場合とは異なり、c_cpp_properties.jsonで変更出来るように出来ませんでした)


    以下、e2 studioやCC-RX/CC-RLの各種パス設定やプロジェクトの各種設定をまとめたc_cpp_properties.jsonファイルの内容です。赤文字箇所がプロジェクト依存箇所、青文字箇所がツールインストール依存箇所、その他の部分は変更の必要があれば変更すれば良いです。(思うに、これらの依存箇所に関係する情報はe2 studioが既に持っていますので、何らかの手法を使って入手することが出来れば、このc_cpp_properties.jsonを自動生成させるスクリプトも作れなくは無さそう、なのではありますけれども、、、)

    c_cpp_properties.json (最近のかふぇルネの投稿システムはコードブロック内でもURLを省略表現リンクへ自動変換してしまうのが困りものですかね、、、)

    CC-RX用

    {
        // code.visualstudio.com/.../customize-default-settings-cpp
        // code.visualstudio.com/.../c-cpp-properties-schema-reference
        "configurations": [
            {
                "name": "CC-RX",
                "includePath": [
                    "${env:TCINSTALL}\\include\\**",
                    "${env:PROJECT_ROOT}\\src\\**"
                ],
                "defines": [
                ],
                "compilerPath": "",
                "cStandard": "c99",
                "cppStandard": "c++17",
                "intelliSenseMode": "windows-msvc-x86",
                "forcedInclude": [
                    "./.vscode/c_cpp_intellisense_helper.h"
                ]
            }
        ],
        "env": {
            "PROJECT_NAME": "${workspaceFolderBaseName}",
            "PROGRAM_NAME": "${env.PROJECT_NAME}",
            //
            "E2STUDIO_WORKSPACE_FOLDER": "C:\\Renesas\\GitHubDesktop\\workspaces\\workspace_e2v202110",
            //
            "BUILD_CONFIG_RELEASE_NAME": "Release", // Reserved for future use.
            "BUILD_CONFIG_DEBUG_NAME": "HardwareDebug",
            //
            "DEBUG_CONFIG_HARDWAREDEBUG_NAME": "HardwareDebug",
            "DEBUG_CONFIG_HARDWAREDEBUG_LCFG": "${env.PROJECT_NAME} ${env.DEBUG_CONFIG_HARDWAREDEBUG_NAME}.launch",
            "DEBUG_CONFIG_HARDWAREDEBUG_SOPT": "",
            "DEBUG_CONFIG_SIMULATORDEBUG_NAME": "RenesasSimDebug",
            "DEBUG_CONFIG_SIMULATORDEBUG_LCFG": "${env.PROJECT_NAME} ${env.DEBUG_CONFIG_SIMULATORDEBUG_NAME}.launch",
            "DEBUG_CONFIG_SIMULATORDEBUG_SOPT": "",
            //
            "PROJECT_ROOT": "${workspaceFolder}",
            "MAKE_OPTIONS": "-r -j8 -k",
            //
            "ECLIPSE_HOME": "C:\\Renesas\\e2studio64_v202110\\eclipse",
            "SUPPORT_AREA": "C:\\Renesas\\e2studio64\\SupportFiles\\.eclipse\\com.renesas.platform_1643561029",
            "PYTHONHOME": "${env.ECLIPSE_HOME}\\runtimes\\python\\2.7.12_x86",
            "TCINSTALL": "C:\\Renesas\\CS+\\CC\\CC-RX\\V3.03.00"
        },
        "version": 4
    }

     
    CC-RL用
    (紫文字の "-uComPort= COM9" はRL78/G23 FPBのCOMPort通信デバッグ用ですのでE2 Lite等では "" にして下さい)
    (COMPort通信デバッグの場合でもe2 studioでlauchファイルを作成した時のCOMPortと同じならば "" にして構わないです)

    {
        // code.visualstudio.com/.../customize-default-settings-cpp
        // code.visualstudio.com/.../c-cpp-properties-schema-reference
        "configurations": [
            {
                "name": "CC-RL",
                "includePath": [
                    "${env:TCINSTALL}\\inc\\**",
                    "${env:PROJECT_ROOT}\\src\\**"
                ],
                "defines": [
                ],
                "compilerPath": "",
                "cStandard": "c99",
                "cppStandard": "c++17",
                "intelliSenseMode": "windows-msvc-x86",
                "forcedInclude": [
                    "./.vscode/c_cpp_intellisense_helper.h"
                ]
            }
        ],
        "env": {
            "PROJECT_NAME": "${workspaceFolderBaseName}",
            "PROGRAM_NAME": "${env.PROJECT_NAME}",
            //
            "E2STUDIO_WORKSPACE_FOLDER": "C:\\Renesas\\GitHubDesktop\\workspaces\\workspace_e2v202110",
            //
            "BUILD_CONFIG_RELEASE_NAME": "Release", // Reserved for future use.
            "BUILD_CONFIG_DEBUG_NAME": "HardwareDebug",
            //
            "DEBUG_CONFIG_HARDWAREDEBUG_NAME": "HardwareDebug",
            "DEBUG_CONFIG_HARDWAREDEBUG_LCFG": "${env.PROJECT_NAME} ${env.DEBUG_CONFIG_HARDWAREDEBUG_NAME}.launch",
            "DEBUG_CONFIG_HARDWAREDEBUG_SOPT": "-uComPort= COM9",
            "DEBUG_CONFIG_SIMULATORDEBUG_NAME": "RenesasSimDebug",
            "DEBUG_CONFIG_SIMULATORDEBUG_LCFG": "${env.PROJECT_NAME} ${env.DEBUG_CONFIG_SIMULATORDEBUG_NAME}.launch",
            "DEBUG_CONFIG_SIMULATORDEBUG_SOPT": "",
            //
            "PROJECT_ROOT": "${workspaceFolder}",
            "MAKE_OPTIONS": "-r -j8 -k",
            //
            "ECLIPSE_HOME": "C:\\Renesas\\e2studio64_v202110\\eclipse",
            "SUPPORT_AREA": "C:\\Renesas\\e2studio64\\SupportFiles\\.eclipse\\com.renesas.platform_1643561029",
            "PYTHONHOME": "${env.ECLIPSE_HOME}\\runtimes\\python\\2.7.12_x86",
            "TCINSTALL": "C:\\Renesas\\CS+\\CC\\CC-RL\\V1.10.00"
        },
        "version": 4
    }