XIAOの書き込み方に関する説明を少し修正しました前の記事で、IoTに向いたオープンソース組み込みOSを6種類も紹介しました。OSを使ってみましょう✊いろんなマイコンや開発ボードに対応しているし、いろんなメーカーのセンサードライバや、IoT向け無線ネットワーク、超軽量ファイルシステムなど、便利な機能が盛りだくさんで便利です😊ただ、開発環境がやや独特なところがあり、最初のハードルが高いかもしれません。このブログを読めばできるようになるかも!?まずは、開発環境のインストールからやってみましょう!準備するもの開発用のマシンを用意します。LTSマシンで説明します。あとは何かマイコン開発ボードがあるといいでしょう。XIAOあたりが安くて便利です。1個600円くらいで買えます。102010328SeeedstudioAmazonインストールインストールは以下の公式の手順に従えば簡単にできます。docs.zephyrproject.org公式ページにはUbuntu以外のインストール方法も載っています。スポンサーリンク必要なパッケージのインストールまずは必要なパッケージをインストールしましょう。libsdl2-devこれで準備はOKです。22.04ならこれで良いのですが、古いバージョンのUbuntuの場合、CMakeが古くてビルドできない場合があります。--versionで、バージョン情報を確認して、3.20.0以上ならOKです。古いものが入っていた場合、CMakeの開発を主導しているKitware社のPPAから最新版を入れてください。cmakeこれで最新版のCMakeがインストールできます。OSのソースツリーをインストールします。OS開発では本体のソースツリーの他に、他のいろんなソースツリーを外部モジュールとして利用します。OS独自のコマンドラインツールwestを使うと、他のソースツリーも全自動で一気にダウンロードしてくれます。OSの名前の由来となったギリシャ神話の神様ゼフィロス(Zephyros)が西(west)の風を司る神様であることに由来するそうです。westをインストールしましょう。westはPythonでできたツールで、pipでインストールできます。~/.bashrcユーザーディレクトリにインストールされるので、パスを通して使えるようにしています。OSと外部モジュールのソースツリーをインストールします。公式マニュアルに従い、必要なソースツリー一式を~/zephyrprojectにインストールしてみましょう。次のコマンドでインストールできます。v3.1.0のリポジトリをダウンロードします。updateで残りの外部モジュールをダウンロードします。OSのリポジトリトップのwest.ymlファイルに記載されています。v3.1.0を省略すると、最新の開発版がダウンロードできます。OSのビルドではCMakeがNinjaファイルを作成してビルドを行います。OSとは別の場所にアプリケーションのソースコードを置いてビルドできます。アプリケーションだけを独立したGitリポジトリで管理できるなど、便利な機能です。OSのCMakeボイラープレートを~/.cmake/package/Zephyrにインストールします。これも、次のようにするとwestが全自動でやってくれます。OSのソースツリー中のプロジェクトディレクトリと同じように開発ができます。OSのビルドシステムでは、Pythonスクリプトを多用しています。ビルドシステムはなかなか複雑なことをしていて私も全貌はよくわかっていませんが...😅このビルドシステムで使うPythonのライブラリをpipでインストールします。OSソースツリーの準備は完了です。OSのビルドに必要なツールチェーン一式をインストールします。SDKとしてまとめられていて、インストーラで簡単にインストールできます。詳しい内容はこちらの公式マニュアルにあります。インストーラをダウンロードします。記事執筆時点(2022/6)では0.14.2が最新のようです。https://github.com/zephyrproject-rtos/sdk-ng/releases/download/v0.14.2/zephyr-sdk-0.14.2_linux-x86_64.tar.gzサイズが1.4GBもありました。大きなファイルですし、正しくダウンロードできたかチェックサムを確認しておきましょう。--ignore-missingエラーが出なければ、展開してインストールしましょう。y質問が2つ出てきますが、両方ともyにしておきましょう。すると、自分のホームディレクトリ以下の~/zephyr-sdk-0.14.2にクロスコンパイラ等がインストールされます。PATHも通してくれますので、これで設定も終わりです。続いて、Ubuntuマシンからマイコンのファームウェアを書き込みやすくできるよう、udevの設定をしておきましょう。--reloadこれにより、多くのターゲット基板にsudoなしで書き込めるようになります。~/zephyr-sdk-0.12.4にコンパイラツールチェーンがインストールできました。OSにはいろんなサンプルプロジェクトが付属しています。単純なサンプルプロジェクト、LEDがチカチカ点滅するだけのプロジェクトをビルドしてみましょう。~/zephyrproject/zephyr/samples/basic/blinkyにプロジェクトがあります。移動して中身を見てみましょう。main.ctreeコマンドは今いるフォルダの中身をツリー形式で表示してくれるコマンドです。treeでインストールできます。OSのプロジェクトの一番単純な構成です。中身の解説はこちらの記事でどうぞ!www.mikan-tech.net今回はひとまずファームウェアをビルドしてみましょう。プロジェクトフォルダの中にいる状態で、次のコマンドを実行します。seeeduino_xiaoこれでカレントフォルダのプロジェクトをビルドします。seeeduino_xiaoでターゲットボードを指定します。インストールが正しくできていれば、エラーなくビルドが完了するはずです。ビルドしてできたファームウェアや中間ファイルは、全てbuildというフォルダが作られてその中に格納されます。ファームウェアは、build/zephyr/zephyr.binというファイル名で保存してくれます。XIAO内蔵のブートローダーでUSB経由で書き込める形式です。flashとするだけです。XIAOが繋げないので、この方法が使えないのです。flashは使えません。できたファームウェアを手動で書き込みます。XIAOを書き込みモードにするとUSBメモリとして認識されるので、そこにzephyr.uf2をドラッグ&ドロップで書き込みます。すると、ファームウェアが書き換わって自動で再起動します。XIAOのファームウェアがビルドできました。OSはマルチスレッド対応ですし、UART、I2C、SPIなど各種ドライバもあります。XIAOの場合はUSB-UART機能を単体で実現できます。シェルやファイルシステムなどの便利な機能も豊富です。いろんな機能をブログで紹介していきたいと思います。高機能な組み込みOSを使って、趣味の電子工作の幅を広げてみてください。»スポンサーリンクスポンサーリンクプロフィール無線モジュールのファームウェア開発を中心に、IoTサービス全般の開発に携わるエンジニアです。reserved.引用をストックしましたストック一覧を見る閉じる引用するにはまずログインしてくださいログイン閉じる引用をストックできませんでした。再度お試しください閉じる限定公開記事のため引用できません。