2025年8月17日日曜日

TOPPERS/ASP - PIC24F版 その2

前回からの続きです。


開発環境の構築(MPLAB X IDE/XC16編)

MPLAB X IDE」とは、Microchip社の純正のIDEです。

以前「TOPPERS/ASP - PIC32MX版 その2」でも紹介していますが、大分時間が経ってしまって、バージョンアップもして手順が変わっているかもしれませんので書き直します。

PIC24F版のTOPPERS/ASPを使って開発を行っていく上では、以下の方針を採ります。


1.コーディングとビルドは主に「Visual Studio Code」を使う。

2.デバッグ作業は主に「MPLAB X IDE」を使う。


今回はコーディングとビルドに、いつもの「Eclipse」ではなく「Visual Studio Code」を使ってみましょう。

「私はEclipseが好き!」って方は「TOPPERS/ASP - PIC32MX版 その4」の記事を参考にしてください。

大体、同じ手順でイケルはずです。


では、まずは以下のページで「MPLAB X IDE」のダウンロードをしましょう。


https://www.microchip.com/en-us/tools-resources/develop/mplab-x-ide

「MPLAB X IDE」ダウンロード・ページ - 1


上記のページのちょっと下の方に行ってもらって…。

すると「MPLAB X IDE vX.XX Released」という見出しがあります。

その下のテーブルから「Download」の表示をクリックします。

「MPLAB X IDE」ダウンロード・ページ - 2


ダウンロードが完了すると「MPLABX-vX.XX-windows-installer.exe」というファイルが落とせます。

これをダブルクリックしてみましょう。

以下のようにインストーラーが起動します。

Next >」ボタンをクリックして先に進みましょう。

「MPLAB X IDE」インストーラー - 1


毎度おなじみのライセンスの承認です。

当然「I agree the agreement」のラジオボタンをクリックし、「Next >」ボタンをクリックです。

「MPLAB X IDE」インストーラー - 2


この画面、特に事情がない限りは、このまま「Next >」ボタンをクリックしてください。

「MPLAB X IDE」インストーラー - 3


以下の画面では、開発するターゲットのの種類を選ぶチェックボックスがあります。

ディスクスペースに余裕のある方は、全部選択しておいても良いです。

ここで全てのターゲットをインストールしておくと、この先、今回のPIC24F以外のマイコンを使う必要が生じたとき、コンパイラだけ別個インストールすれば良いので、後が楽というのはあります。

とはいえ、かなりの容量を食いますので躊躇してしまいますね。

まあ、最低でも「dsPIC DSCs and 16-bit PIC24 MCUs」だけは選んでおきましょう。

その後に「Next >」ボタンをクリック!

「MPLAB X IDE」インストーラー - 4


以下の画面で「Next >」ボタンをクリックすると、インストール作業が始まります。

「MPLAB X IDE」インストーラー - 5


インストール作業が始まります。

かなりの時間がかかりますので要注意です。

私のポンコツPCで30分位です!

前々回のターゲット選択画面で全部チェック入れちゃったからなぁ…。

「MPLAB X IDE」インストーラー - 6


インストールが終了すると、以下の表示になります。

ここでは、一緒にインストールを行うコンパイラと、それらのセットアップが完了した際に「MPLAB X IDE」を起動するかどうか?をチェックボックスで選択します。

先ほどのターゲットの選択と同じように、ディスクスペースに余裕のある方は、全部選択しておいても良いですが、8-bitや32-bitのPICを使わない人には意味はありません。

最低でも「Install latest MPLAB XC16 compiler vX.XX(16-bit PIC24 devices)」と「Launch MPLAB X IDE vX.XX」だけはチェックを入れておきましょう。

その後に「Finish」ボタンをクリックすると、ひとまず「MPLAB X IDE」のインストールはし完了です!

「MPLAB X IDE」インストーラー - 7


続けざまに、PIC24F用のコンパイラである「XC16」のインストーラーが起動します。

早速「Next >」ボタンをクリック!

「MPLAB XC16」インストーラー - 1


またまたライセンスの承認です。

ここでも「I agree the agreement」のラジオボタンをクリックし、「Next >」ボタンをクリックです。

「MPLAB XC16」インストーラー - 2


ライセンスの種類は初期値の「Free」のままで大丈夫です。

この「XC16」コンパイラには無料版と有料版があります。

無料版である「Free」ライセンスでは最適化が「-O1」まで設定可能で、「-O2」は許可されません。

ホビーユースでは「Free」ライセンスで十分ですが、商用で使用する場合は、有料ライセンスが必要となるでしょう。

えらい高いけど!

Next >」ボタンをクリック!

「MPLAB XC16」インストーラー - 3


以下は特別な事情がない限りは、そのまま「Next >」ボタンをクリックしてください。

「MPLAB XC16」インストーラー - 4


以下の画面では、デフォルトではチェックされていない「Add xc16 to the PATH environmant variable」にチェックを入れてください。

ここでは「XC16」コンパイラのパスをシステムの「PATH」環境変数に追加するかどうかを選択します。

ここにチェックを入れると、手動で「PATH」環境変数を追加しなくて済むのでお得です。

つまり、この作業が要らなくなります。

チェックを入れたら「Next >」ボタンをクリックです。

「MPLAB XC16」インストーラー - 5


ラスト!

Next >」ボタンをクリックでインストール作業開始!

「MPLAB XC16」インストーラー - 6


インストール作業が開始されます。

今回は常識的な待ち時間です。

「MPLAB XC16」インストーラー - 7


作業が終わると、以下の表示となります。

気になるのは「Your Host ID is:」という表示の右にある文字列です。

念のため、スクリーンショットでも保存しておきましょうか。

(後で必要になったことはありません…。)

Next >」ボタンをクリックでしましょう。

「MPLAB XC16」インストーラー - 8


最後の最後、以下の画面で「Finish」ボタンをクリックすれば「XC16」コンパイラのインストールも完了です!

「MPLAB XC16」インストーラー - 9


その後しばらくすると、以下のようなイケてるスプラッシュが表示され…

「MPLAB X IDE」スプラッシュ


…以下のように「MPLAB X IDE」が起動します。

以上でコンパイラを含めた「MPLAB X IDE」のインストール作業は終わりです。

お疲れ様でした~。

「MPLAB X IDE」


次回も「Visual Studio Code」など、残りの開発環境の構築手順などをご紹介します。

この「MPLAB X IDE」は、NetBeansというオープンソースのIDE(統合開発環境)がベースになっていますね。

他のマイコンベンダーは「Eclipse」ベースのIDEがメジャーですので珍しいです。

そのうち、全部今流行りの「Visual Studio Code」に統合されるのでしょうか?

使う側は、操作方法が統一されるので良いことですけどね。


<続く>

2025年8月10日日曜日

μiTRONプログラマーがZephyrに挑戦! その5

前回からの続きです。

このテーマを最初からご覧になる場合はこちらからどうぞ。


「nRF Util」のコピー

前回までにNordic社の無線マイコンで「Zephyr」の開発を行うのに必要な「Visual Studio Code」を含む3つのアプリケーションをインストールしました。

更に「Visual Studio Code」に対しツールチェーンSDKなどの拡張機能のインストールも完了しました。

さて、これで「Zephyr」を動かせる!…と思いきや、必要な手順がもう一つあります。

それはNordic社が提供する「nRF Util」なるもののダウンロードとコピーです。

以下のページにアクセスしてください。


https://www.nordicsemi.jp/tools/nrf-util/

「nRF Util」ダウンロードページ - 1


このページを下の方までスクロールすると…あった!

ダウンロードのリンクがありますので、これをクリックします。

「nRF Util」ダウンロードページ - 2


この「nRF Util」は、インストーラーではなく「nrfutil.exe」という実行形式でダウンロードされます。

ダウンロードページの説明によると、この「nrfutil.exe」をパスの通ったディレクトリにコピーしろ!…ということのようです。

これに従って、私は以下のディレクトリにコピーしました。

ここは、以前「μiTRONプログラマーがZephyrに挑戦! その2」の記事でインストールした「nRF Command Line Tools」のディレクトリです。


C:\Program Files\Nordic Semiconductor\nrf-command-line-tools\bin

「nRF Command Line Tools」のディレクトリ


ここなら「コマンドラインツール」って名乗っているのでパスは通っているはずだし、新しいディレクトリを作って「PATH」環境変数に追加するのイヤだったので。

では「nrfutil.exe」って何するものなの?ってことですが、ダウンロードページの説明を読む限りでは、すでにインストールした「nRF Command Line Tools」や「nRF Connect for Desktop」、さらには「Visual Studio Code」の拡張機能であるツールチェーンやSDKの範疇から漏れた細々とした機能をまとめたもの…のようですが。

なんというか、後付け感スゴい。

それこそ「nRF Command Line Tools」辺りに含めてくれれば手間が省けると思うのですが。

ともあれ、これが無いとこの先に進めないので仕方がありません。

そのうちNordic社も改善してくれるでしょう。


「nRF7002 Development Kit」の接続

いよいよ今回のターゲットである「nRF7002 Development Kit」とパソコンをUSBケーブルで接続します。

このボード、USB micro-Bポートが2つ実装されていますが、開発で使用するのは左側の中央に配置されている方のポートです。

「nRF7002 Development Kit」 - 1


パソコンと接続した時、ボードに実装されているLEDを確認してください。

何か所か光るはずなのですが、一個も光っていない場合はボード左下のスライドスイッチをON(外側にスライド)にしてください。

これで光ったでしょう?

「nRF7002 Development Kit」 - 2


パソコンが「nRF7002 Development Kit」を正しく認識すると、画面上に以下のエクスプローラが表示されます。

パソコンはボードを「JLINK」という名前のストレージデバイスとして認識しました。

「J-Link」ストレージデバイス


この時デバイスマネージャーを見てみると「ポート(COMとLPT)」として「JLink CDC UART Port」が2つ(2つも!?)が認識されていることが確認できます。

どうやら接続は上手くいっているみたいですね。

デバイスマネージャー


初めてのZephyrプロジェクト

Zephyrの簡単なプロジェクトを作成して、動かしてみましょう。

まずは「Visual Studio Code」を立ち上げましょう。

次に画面左端のアイコンが並んでいるところ、その中の四角いアイコン(「nRF Connect」)をクリックします。

「Visual Studio Code」 - 1


画面左端の各項目が以下のように変化したはずです。

その中で、一番下にある「CONNECTED DEVICES」という表示をクリックして展開します。

「Visual Studio Code」 - 2


すると何やら数列が出てきました。

これは、接続した「nRF7002 Development Kit」のシリアルナンバーのようなものと考えてください。

そしてコイツを更にクリックします。

「Visual Studio Code」 - 3


以下のように展開されましたか?

この中で「VCOMx」というのは、シリアルポートの事で、デバイスマネージャーで確認したポート番号と一致していることを確認してください。

ここでも2つありますよね?

「Visual Studio Code」 - 4


プロジェクトを作成しましょう。

画面左端の項目の中で「WELCOME」という表示があります。

その下に展開されている項目の中から「Create a new application」をクリックします。

すると画面上方のリストビューに「Create a blank application」という表示が現れますので、これをクリックです。

「Visual Studio Code」 - 5


次に、画面上方のリストビューにこれから作成するプロジェクトの保存場所を入力できるようになります。

デフォルトでは「C:\Users\<ユーザー名>\untitled」と入力されていますので、今回はこのままで良いでしょう。

Enterキーを押下します。

「Visual Studio Code」 - 6


確認のポップアップが表示されます。

Open」ボタンをクリックしましょう。

「Visual Studio Code」 - 7


以下の警告も「はい、作成者を信頼します」ボタンをクリックでOKです。

「Visual Studio Code」 - 8


これでプロジェクトはちゃんと作成されたのか?

画面上方のリストビューには「untitled」という表示はされていますね?

画面左端の「フォルダー」アイコンをクリックして「untitled」ディレクトリの中を確認してみましょう。

「Visual Studio Code」 - 9


すると「untitled」ディレクトリの中にいくつかのファイルの他、更に「src」というディレクトリがあるようです。

この中もクリックして展開してみましょう。

「Visual Studio Code」 - 10


その中には自動生成された「main.c」がありました。

これをクリックすると「Visual Studio Code」のメインビューにソースコードが表示されます。

「Visual Studio Code」 - 11


この「main.c」の「main()」関数が、Zephyrアプリケーションのエントリーになります。

自動生成されたままだと、すぐに「return 0;」となっていますね。

これでは面白くないので「main.c」を以下のように書き換えてみましょう。

まあ、大体何をやっているのかはお分かりになるかと…。

書き換えた後は、ファイルの保存も忘れずに!

  1. #include <zephyr/kernel.h>
  2. int main(void)
  3. {
  4.         while (1) {
  5.                 /* VCOM1 にメッセージを出力 */
  6.                 printk("main_thread is running...\r\n");
  7.                 /* 一秒 (1000ms) 待つ */
  8.                 k_sleep(K_MSEC(1000));
  9.         }
  10.         return 0;
  11. }


続いて、このプロジェクトをコンパイルしてターゲットに書き込んで動かしてみましょう。

画面左端の「nRF Connect」アイコンをクリックしましょう。

「Visual Studio Code」 - 12


画面左端の各項目が以下のように変化しますので、「APPLICATION」、「untitled」直下の「Add build configuration」という項目の左端の「」部分をクリックしてください。。

「Visual Studio Code」 - 13


すると「Visual Studio Code」のメインビューに「Add Build Configuration(untitled)」という画面が表示されます。

ここで、作成したプロジェクトをどのようにビルドするかの設定を行う訳ですね。

今回変更しなければならないのは「Board Target」です。

今回のターゲットは「nRF7002 Development Kit」ですので、それらしいのをコンボボックスから見つけます。

結果「nrf7002dk/nfr5340/cpuapp/ns」というのが良さそうです。

これをクリックして選択しましょう。

「Visual Studio Code」 - 14


設定を反映するには「Add Build Configuration(untitled)」を一番下までスクロールして現れた「Genarate and Build」ボタンをクリックします。

「Visual Studio Code」 - 15


これでビルドのコンフィギュレーションとアプリケーションのビルドが行われるのですが…これがエラい待たされます。

毎回これだとイヤになっちゃいますが、コンフィギュレーションにやたらと時間が掛かるのは最初だけですのでご安心を。

(とはいえ、通常のビルドも決して速くはないです…。)

とにかく、画面右下の経過表示が消えるまでは我慢です。

「Visual Studio Code」 - 16


作業が終わるまでに「TeraTerm」などのターミナルソフトウェアを立ち上げておきましょう。

(「TeraTerm」のインストールの方法や使い方はこちらを参考にしてください。)

ポートは「CONNECTED DEVICES」項目の直下にあった「VCOM1」の番号を選択します。

(私の環境では「COM26」でしたね。)

ボーレートは「115200」に設定しておきます。

「TeraTerm」 - 1


そうこうしている内にコンフィギュレーションとアプリケーションのビルドが無事完了したでしょうか?

これらが終わると「Visual Studio Code」のメインビューに表示されていた「Add Build Configuration(untitled)」と画面右下の経過表示も消えているはずです。

また、コンフィギュレーションの結果として、画面左端の項目の中に「ACTION」という表示が追加されています。

この直下の「Debug」という項目をクリックすると、ビルドしたアプリケーションがターゲットに転送され、それが実行されます。

「Visual Studio Code」 - 17


しばらくしてデバッガが起動した後、以下の「cpu_idle.c」というファイルの「SLEEP_IF_ALLOWED()」マクロの行でブレークが掛かると思います。

ここはデバッグのツールバーから「▶」(続行)をクリックして、プログラムを先に進めましょう。

「Visual Studio Code」 - 18


一方、立ち上げておいた「TeraTerm」を見てみましょう。

以下のように「main_thread is running...」という表示が一秒毎に表示されているでしょうか?

もし正しく表示されているなら目論見通り、大成功ですね!

「TeraTerm」 - 2


Zephyrのプロジェクトの作成方法と、そのビルド/転送の一連の流れを紹介させていただきました。

次回は、本題の「zephyr_sample」を動かしてみましょう!

なんか…ZephyrってμiTRONと比べて、何をするんでもいちいち時間が掛かるという印象です。


<続く>

2025年7月27日日曜日

TOPPERS/ASP - PIC24F版 その1

 TOPPERS/ASP - PIC24F版 概要

久々の新アーキテクチャ、今度は「PIC24F」です。

Explorer 16/32 Deveopment Kit - 1


すでに「PIC」については、以前「TOPPERS/ASP - PIC32MX版 その1」の記事で取り上げさせていただきました。

この時の「PIC32MX」はハイエンドな32bitマイコン。

今回の「PIC24F」は16bitのマイコンです。

24bitじゃないです。

Microchip社の「PIC」シリーズは、その使い易さや入手性の良さで電子工作を趣味としている方々の間で大変人気があります。

しかしながら、ネットなどで見かける電子工作の作例では「PIC16」や「PIC18」などの8bitのシリーズがメジャーです。

今回取り上げる「PIC24F」は16bitのマイコンであり「PIC」シリーズの中でも最も中途半端で地味な存在でしょう。

しかし「PIC」シリーズの中には同じ16bitマイコンである「dsPIC」というシリーズもあります。

こいつはかなり本格的なDSPを搭載しており、デジタル信号処理を多用するアプリケーションにおいてはミドルレンジの32bitマイコンをも遥かに凌駕するほどの性能を持っています。

(DSPに関しては以前この記事で極めて雑な説明をしてますが、どれだけ雑なのか興味がある方は是非。)

それでいて安価であるという魅力的な製品です。

こいつは是非とも使いたい!

実はこの「dsPIC」というのはベースが「PIC24F」であり、その上にDSPを組み合わせた製品なのです。

つまり「PIC24F」を勉強すれば、お目当ての「dsPIC」も使えるようになるかも!?

…というわけで「dsPIC」の前哨戦として、まずは「PIC24F」に「μITRON4.0」準拠のRTOS(リアルタイムOS)であるTOPPERS/ASPを移植してみました。

じゃあ、肝心の「dsPIC」用RTOSは?というと…未だ実装できていません。

この「TOPPERS/ASP PIC24F版」も、かなり昔に実装したもので記憶があやふやなのですが、多分これが動くようになった時点で使用目的のプロジェクトが中止になっちゃって、そのまま放棄しちゃったんでしょう…。

(多分自分史上、一番ポーティングが厄介だったマイコンという記憶はあります。)

お役に立てるか分かりませんが、開発環境の構築、ビルド、デバッグまでの手順をご紹介します。


必要なもの

まずは、今回のターゲットとなる「Explorer 16/32 Deveopment Kit」です。

こちらでは¥25,000くらい…ってこんなに高かったかなぁ~!?

私が買ったときは、2万円行かなかったような…?

この評価ボードにはMicrochip 社の「PICkit3」相当のデバッガが搭載されていますので、これ以上の投資は必要ありませんが、それにしても高い。

円安怖いです。

Explorer 16/32 Deveopment Kit - 2


更に、この評価ボードはマイコン基板が取り外せるようになっていて、最初に付いてくるPIC24Fマイコンの他にも、PIC32MXなどの他のマイコン基板だけ買ってきて乗せ換えて使うことができます。

もちろん、例のdsPICもね!

デバッガが搭載されていることと、この使い勝手だけが救いです…。

Explorer 16/32 Deveopment Kit - 3


ダウンロード/GitHub

ソースコードの入手は、こちらからどうぞ。

なるべく定期的にメンテナンスするようにしています。

記事を書きながら再検証もしていますので、ちょこちょこ修正が入るかもしれません。

動きがおかしいな?という場合は最新版に更新をお願いします。

特にデバッガの使い方は改善が必要かも…。


次回から、開発環境の構築方法から書いていきますので、よろしくお願いします!

基板のこういう部分を見ると、フーって息を吹きかけたくなるのは氷河期世代の本能でしょうか…?

Explorer 16/32 Deveopment Kit - 4


<続く>

TOPPERS/ASP - PIC24F版 その2

前回からの続き です。 開発環境の構築(MPLAB X IDE/XC16編) 「 MPLAB X IDE 」とは、Microchip社の純正のIDEです。 以前「 TOPPERS/ASP - PIC32MX版 その2 」でも紹介していますが、大分時間が経ってしまって、バージョンア...