HEW で VSCode を使う

わわいです
もうだいぶ長い間アップデートとは縁がなくなったHEWですが、H8とかSHとかではまだまだ使わなければならない場面が多いと思います。
いまとなってはIDEの機能としては他の環境からしてみればだいぶ見劣りするようになってしまいましたが、VSCodeと組み合わせれば、まだまだ最新のヤツには負けないパフォーマンスを出してくれます。
#と言っても、ほとんどVSCodeの機能なんですが

VSCodeとは
天下の Microsoft が公開しているテキストエディタです。
テキストエディタ、なんですが、Microsoftが誇る開発環境 VisualStudio の機能や技術がふんだんに取り入れられ、それぞれの言語のプラグインと組み合わせることにより、VisualStudioとほぼ同じような開発環境を構築することができます。
まーしかし、こいつはいままさに絶賛開発中のホットなプロダクトでして、しょっちゅうアップデートやらがかかってしまい、時には操作性まで変わってしまったり、使っていたプラグインで使えない機能が出てきたりすることもあるので、そこらへんはご愛嬌だと思ってください。
インストール法に関してはここでは説明しません。
「VSCode C言語」あたりでググると解説のページが山ほど出てくるのでそれを参考にしてください。組み込むプラグインですが、うちでは「C/C++」、「C/C++ Clang Command Adapter」、「C++ Intelisense」の3つぐらいを組み込んでいます

HEWの組み込み、ですが、HEWのオプションで、外部エディタとしてVSCodeを指定してやります。
HEWのメニューから、基本設定>オプション>エディタタブ>外部エディタの使用、にチェックを入れ変更ボタン、
コマンドの項目:VSCodeの実行パス こちらの環境では C:\Program Files\Microsoft VS Code\Code.exe
ファイルを開くときの引数:"$(FULLFILE)" -g
行番号を指定してファイルを開くときの引数:"$(FULLFILE)":$(LINE) -g
と設定してOKボタンを押します。

この設定だけだと、単なるキーワードを色分けしてくれるエディタ、ってだけなんですが、これからプロジェクトの設定をしてやることにより、統合環境として使えるようになっていきます。

#画像ではC#のプラグインが入ってますが、HEWで使うだけなら不要ですね





  • わわいです

    VSCode は、単にHEW上からファイルを開くだけでも、キーワードの色分け、ある程度のインテリセンスや簡単なエラーチェック、自動整形などの機能が使え、それだけでも非常に便利に使えるものですが、これよりプロジェクト単位での設定を行うことにより、まさに統合環境として使えるようになっていきます

    VSCodeは、プロジェクト単位としてフォルダ単位で管理するようになっています
    一例として、HEW上で新規作成したプロジェクト(画像の例では「VSCtest」になってます)を使います。こいつのプロジェクトフォルダをVSCodeで開きます。
    #VSCodeを立ち上げ、ファイル>フォルダを開く、でプロジェクトフォルダを指定します

    画像のように左側にソースファイル群が並んで表示される画面が開きます

    次に、ファイル>基本設定>設定で設定画面に移り、VSCodeの画面の右上、「ユーザ設定」のところをクリックし、これを「ワークスペース設定」に変えます。
    とりあえずこれだけで、プロジェクトフォルダに、.vscodeフォルダが作られ、そのフォルダがプロジェクト単位として認識できるようになりました。

    これで一旦VSCodeを終了させ、HEW上のプロジェクトエクスプローラからソースファイルをダブルクリックして開いてみてください。
    プロジェクトとしてそのファイルが開かれると思います

  • わわいです
    VSCode はデフォルトで文字エンコードが UTF-8 となっています。HEWを使う場合は一般的にはShift-JISを使いますんで、そのままVSCodeで開くと日本語部分が文字化けすることになります。
    これをきちんと表示/編集するためにVSCodeのエンコードをShiftJISに設定します
    ファイル>基本設定>設定で設定画面で、以下の行を追加、保存します

    "files.encoding": "shiftjis"

    ワークスペース設定にこれを追加すれば、このプロジェクト(ワークスペース)のみがShiftJISとなり、ユーザ設定でこれを追加すれば、VSCodeのデフォルトエンコードが ShiftJIS となります

    #この設定行以降に設定行が続く場合は末尾に , を入れてください。エラーが出ます

  • わわいです
    VSCodeでソースを開いていると、ところどころ波線が出ています
    下の画像では #include の行で波線が出てますねー
    これにカーソルを当てると、どーもインクルードファイルが見つからない、という警告のようです。
    今回はこれをどーにかしましょう

    これについて普通にググると、コンフィグレーションWin32 のインクルードパス設定を修正せよ、という記事が引っかかります。
    まあ、これでもいいのですが、 どうせやるならルネサスコンパイラ独自のコンフィグレーションを新設してしましましょう。

    画面の右下、Win32 と出ているところをクリックします。
    画面の上部に選択肢が出てくるので、Edit Configurations を選びます。
    これで、c_cpp_properties.json というファイルが作られ、各コンフィグレーション(Mac,Linux,Win32)の設定が表示されます。

    このWin32の下に、コンフィグレーション CC-RX を追加してみましょう

           {
               "name": "CC-RX",
               "includePath": [
                   "C:/Program Files (x86)/Renesas/Hew/Tools/Renesas/RX/1_2_1/include",
                   "${workspaceRoot}"
               ],
               "defines": [
                   "_DEBUG"
               ],
               "intelliSenseMode": "msvc-x64",
               "browse": {
                   "path": [
                   "C:/Program Files (x86)/Renesas/Hew/Tools/Renesas/RX/1_2_1/include",
                   "${workspaceRoot}"
                   ],
                   "limitSymbolsToIncludedHeaders": true,
                   "databaseFilename": ""
               }
           }

    ツールチェインのインクルードパスは私の環境のものですが、それぞれ自分の環境のパスを調べて修正してください。
    このとき、フォルダの区切りは \(バックスラッシュ)ではなく、/(スラッシュ)に置き換える必要があります。
    また、インクルードパスの数、順序もそのプロジェクト独自の設定がありますんで、それに適宜追加修正しましょう。

    defines の項目は、デフォルトで定義するラベルを記述します。
    ラベルだけの場合は、そのラベルに1が定義されます

           "defines": [
               "_DEBUG",
               "_DEBUG1=1",
               "_DEBUG2=2",
               "_DEBUG3="
           ],

    上記はそれぞれ以下に対応します

    #define _DEBUG 1
    #define _DEBUG1 1
    #define _DEBUG2 2
    #define _DEBUG3

    この設定ファイルを保存すれば、この設定が有効となります。
    ソースファイルを表示させたあと、コンフィグレーションにCC-RXが追加されてるのでそれを選択すればOKです