VSCode + PicWriterUSB:Macで使う方法

VSCode_PicWriterUSB

MacBookでPICマイコンを書込むために

PicWriterUSBによってホストOS非依存のPICマイコン書込み環境が実現出来ましたので、当初の目的であったMacBook Pro(M1)にてPICマイコンのソフト開発が可能になりました。IDEとしてMicrochipのMPLAB X IDEがありますので、XC8コンパイラとの組合せでMac上でも開発は行なえます。

ですが、私の環境だけなのかもしれませんがよく落ちます→MPLAB X IDE

M1へのネイティブ対応が無いためかもしれませんがなかなかにストレスです。また、PicWriterUSBは単にHEXファイルのコピーを行うだけですので、折角のMPLAB X IDEもデバッグ機能は使えずエディター+ビルドボタンでしかありません。むしろ使い慣れたエディターでソースを書いてターミナル上でコンパイル作業を行った方が快適なくらいです。

そこでVSCode(Visual Studio Code)+PicWriterUSBにてPICマイコンのソフト開発環境を構築することにしました。実はPicWriterUSB=RP2040の開発もVSCodeを使用しています。こちらの環境設定も別途記事に纏めたいと思います。

VSCode + XC8コンパイラ

まずはVSCodeとXC8コンパイラのインストールが必要ですが、既に色々と情報が溢れていますからここでは説明を省略します。VSCodeがアプリとして実行可能かつターミナル上でxc8コマンドが使える状態にしておいてください。
(ちなみにですが、VSCodeはM1プロセッサにネイティブ対応なので何となく気持ち良いです)

VSCodeは非常にカスタマイズ性が高くプラグイン(Extension)も豊富で、自分の好み通りに仕上げていくのも楽しみの一つかと思います。ここではVSCodeのカスタマイズに関してあまり突っ込んだ説明はしませんが、C/C++ Extension PackとJapanse Language Packはインストールしておく方が良いかと思います。

早速、サンプルコードをビルドする環境を整えていきます。フォルダ構成と配置されるファイルは下記のようになります。

.vscodeフォルダの3ファイルにて環境設定&動作設定を行います。

pic_program.shには実行属性を与えておいて下さい。これは単にPicWriterドライブにHEXファイルをコピーしているだけです。.vscodeフォルダ以外に置いても構いませんが、他のフォルダに置く場合はtasks.jsonも修正して下さい。c_cpp_properties.jsonにてIntelliSenseの設定をしています。使ってみるとやはり便利ですね。→IntelliSense
またoutフォルダは自動生成されませんので「mkdir out」などして作っておいてください。

ソースコードは下記になります。

 

準備が整いましたら、VSCodeを起動してメニューからファイル→フォルダーを開く… にて作成したblinkフォルダを選択します。

VSCode_open

メニューからターミナル→タスクの実行… を選択するとウィンドウがポップアップしますので「build」を選択します。

VSCode_task

パネル内のターミナルに下記のように表示されていればビルドは成功です。

VSCode_build

次にPicWriterUSBをMacへ接続し「PicWriter」ドライブが接続されたことを確認して、ターゲットのPICマイコンをPicWriterUSBへ接続します。

VSCodeのメニューからターミナル→ターミナルの分割、を選択するとパネル内にもう一つターミナルのウィンドウが開きますので、下記のように「screen /dev/tty.usbmodemDAE2022CDC001 115200」コマンドを実行します。実行直後に「USB connected.」と表示されていれば正常に接続出来ています。

VSCode_screen

VSCodeのメニューからターミナル→タスクの実行… →Program を実行します。ターミナル上に下記のように表示されてPICマイコンへの書込みが完了します。

VSCode_program

書込みが成功するとRP2040ボード上のグリーンLEDが点灯し「フリーランモード」となり、書込んだPICマイコンのプログラムが実行されます。PIC16F1823 RA5ピンにLEDを接続するとLチカ動作を確認出来ます。

 VSCode_PicWriterUSB

無事にタスクコマンド一発でビルド→書込み→動作確認、が出来るようになりました。

 

コメント

タイトルとURLをコピーしました