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


<続く>

2025年7月20日日曜日

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

前回からの続きです。

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


「nRF Connect for VS Code」のインストール

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

最後の「Visual Studio Code」もインストールし、日本語化のための拡張機能の導入まで終わりました。

しかし「Zephyr」の開発を行うには、更に「Visual Studio Code」に拡張機能をインストールする必要があります。

…というか、ここからが開発環境構築の本丸だったりします。

インストールした「Visual Studio Code」を立ち上げましょう。

そして、日本語化の拡張機能をインストールした時と同じように、画面左端のアイコンが並んでいるところ、その中の「拡張機能」アイコンをクリックします。

「Visual Studio Code」 - 1


左端に拡張機能のリストが表示されます。

一番上のテキストボックスに「nRF」と入力してください。

フィルターされた候補が色々出てきますが、その中で「nRF Connect for VS Code Extension Pack」という拡張機能を探してクリックします。

画面右に詳細な情報が出てきましたね?

ここから「インストール」ボタンをクリックしましょう。

「Visual Studio Code」 - 2


インストール自体は待たされることもなく意外とアッサリ終わります。

「インストール」ボタンから「無効にする」とか「アンインストール」という文言のボタンに変化したらインストール完了の目安です。

「Visual Studio Code」 - 3


ここでもう一度、画面左端の「拡張機能」アイコンをクリックします。

現在インストールされている拡張機能のリストが表示されます。

すると、前回インストールした日本語化拡張機能「Japanese Language Pack for Visual Studio Code」、それと今インストールした「nRF Connect for VS Code Extension Pack」以外にも何やら沢山の拡張機能がインストールされていることが分かります。

「Visual Studio Code」 - 4


これら意図しない拡張機能は、依存関係で自動的にインストールされたものです。

nRF Connect for VS Code Extension Pack」をインストールしましたが、これ単体では意味を成しません。

これを動かすために必要な拡張機能が他にもあり、それらと一緒に使用しないと機能しない…これを「依存」などと呼びます。

他の拡張機能に依存する拡張機能は、そのインストール時に「Visual Studio Code」が自動的にインストールしてくれます。

今回の場合は「nRF Connect for VS Code Extension Pack」が依存している拡張機能が芋づる式に自動インストールされたため、身に覚えがない拡張機能がリストされているという訳です。

ご安心を。


さて、気が付くと画面左端のアイコン表示欄に見覚えのないアイコンが2つも追加されています。

これらも拡張機能のインストールの結果です。

今回は、上の四角い方のヤツをクリックします。

(サクマドロップスにこんな模様なかったっけ…?)

「Visual Studio Code」 - 5


画面左に「WELCOM」というタブが表示され、その中に「Install Toolchain」というボタンがあります。

これをクリックしてツールチェーンをインストールしましょう。

「Visual Studio Code」 - 6


すると、画面上方のリストビューにインストールできるツールチェーンのバージョン一覧が表示されます。

特に事情がない限りは最新のものを選んで良いでしょう。

お目当てのバージョンをクリック…なのですが、覚悟が必要です。

ツールチェーンのインストールには、かなりの時間がかかります。

お時間があるときにクリックしましょう。

…というわけで、クリック!

「Visual Studio Code」 - 7


インストールが開始され、経過表示が画面右下に表示されるのですが…。

進むのが遅いです。

じっと待ちましょう!

(シャワー浴びられちゃうくらいの時間。)

「Visual Studio Code」 - 8


インストールが完了すると画面右下に「Successfully installed toolchain vx.x.x.」などと表示されます。

これを確認したら、次は「SDK」のインストールです。

ツールチェーンの中にSDKは含まれてないんかいっ!!

…含まれてないらしいです。

というわけで、今度は「WELCOM」というタブの中から「Manage SDKs」という表示をクリックしましょう。

「Visual Studio Code」 - 9


画面上方のリストビュー に「Install SDK」という項目が出てきますので、これをクリック!

「Visual Studio Code」 - 10


すると、ツールチェーンの時と同様、画面上方のリストビューにインストールできるSDKのバージョン一覧が表示されます。

ここはツールチェーンのバージョンと同じものを選んだ方がトラブルは少ないでしょう。

お目当てのバージョンをクリックしてください。

「Visual Studio Code」 - 11


画面上方のリストビューSDKをインストールするパスが表示されます。

特に事情がなければ表示されているパスで問題ないと思いますので、ここでは「Enter」キーをヒット!

「Visual Studio Code」 - 12


インストールが開始され、再び経過表示が画面右下に表示されます。

これまた進むのが遅いです。

ここもじっと待機です!

(アニメ1話くらいは観れちゃう程度の時間。)

「Visual Studio Code」 - 13


インストールが完了すると画面右下に「Successfully installed nRF Connect SDK vx.x.x.」などと表示されます。

これでSDKのインストールも完了です!

「Visual Studio Code」 - 14


これで少なくともZephyrのプロジェクトを作成してビルドする環境は整いました。

次回は、この「Visual Studio Code」で空のZephyrプロジェクトを作成し、それをコンパイルしてターゲットに書き込んで動作させてみましょう。

開発環境の動作確認です。


<続く>

2025年7月13日日曜日

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

前回からの続きです。

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


「Visual Studio Code」のインストール

超有名なエディタ「Visual Studio Code」。

Nordic社の無線マイコンを「Zephyr」を使って開発する上で、半ば標準の開発環境となっています。

このあたり、他のマイコンメーカーが「Eclipse」ベースの開発環境に留まっていることを考えると、先進的ですよね。

(あ、私は「Eclipse」大好きです。)

まずは、インストーラーのダウンロードです。

以下のページにアクセスします。

最近ではクラウド版もあるみたいですが、今回はパソコンにアプリとしてインストールしましょう。

VS Codeをダウンロードする」というバナーをクリックします。


https://azure.microsoft.com/ja-jp/products/visual-studio-code

「Visual Studio Code」ダウンロードページ - 1


以下のようなページに切り替わります。

ここで「Winodws」のバナーをクリックします。

「Visual Studio Code」ダウンロードページ - 2


VSCodeUserSetup-x64-x.xxx.x.exe」というファイルがダウンロードされます。

これをダブルクリックしてインストーラーを起動しましょう。

インストーラーが起動すると、まずはライセンスの確認と承諾です。

ラジオボタンを「同意する」に選択してから「次へ」ボタンをクリックしてください。

「Visual Studio Code」インストーラー - 1


ここから先は、特に事情がない限りは赤い○で示した所をクリックしていくだけで作業は進みます。

「Visual Studio Code」インストーラー - 2


「Visual Studio Code」インストーラー - 3


「Visual Studio Code」インストーラー - 4


「Visual Studio Code」インストーラー - 5


「Visual Studio Code」のインストールが始まります。

「Visual Studio Code」インストーラー - 6


以下の表示が現れるとインストールも完了です。

完了」ボタンをクリックしてインストーラーを終了させましょう。

「Visual Studio Code」インストーラー - 7


インストーラーを閉じる自動的に「Visual Studio Code」が起動します。

ただし、UIが全部英語ですね!

ここでは、これを日本語化する作業もやっちゃいましょう!

他の言語も概ね同じ操作で出来るはずです。

画面左端のアイコンが並んでいるところ、その中の「拡張機能」アイコンをクリックします。

(なんか、積み荷の一個が崩れそうなマークのやつ。)

「Visual Studio Code」 - 1


Japanese Language Pack for Visual Studio Code」という拡張機能をインストールします。

拡張機能は星の数ほどあります。

その中からお目当ての拡張機能を探すには、左上のテキストボックスに拡張機能の名前の文字を入力しフィルター検索します。

今回の場合は「Japan...」などと入力しましょう。

すると「Japanese Language Pack for Visual Studio Code」が候補としてリストされるはずです。

この項目の「Install」ボタンをクリックします。

「Visual Studio Code」 - 2


画面の右下に以下のようなポップアップが出れば「Japanese Language Pack for Visual Studio Code」のインストールは終了です。

このポップアップは「言語拡張機能を有効にするためにVisual Studio Codeを再起動しますか?」と聞いています。

全然オッケーなので「Change Language and Restart」ボタンをクリックしましょう。

「Visual Studio Code」が再起動します。

「Visual Studio Code」 - 3


再起動後にUIを見ると、ちゃんと日本語になっているのが確認できます。

以上で「Visual Studio Code」のインストールは完了です!

「Visual Studio Code」 - 4


これで「Zephyr」を使って開発を始めるために必要な3つのアプリケーションのインストールが終わりました。

これで「Zephyr」をイジれる!…とは行かず…。

この後、インストールしたばかりの「Visual Studio Code」に更なる拡張機能を追加する必要があるのです!


<続く>

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

前回からの続き です。 このテーマを最初からご覧になる場合は こちら からどうぞ。 「nRF Util」のコピー 前回までに Nordic社 の無線マイコンで「 Zephyr 」の開発を行うのに必要な「 Visual Studio Code 」を含む3つのアプリケーションをインス...