Ideal Reality

興味の赴くままに

ESP32でNuttXを試す

Espressif ESP32 — NuttX latest documentation

なんか対応してそうだったので試してみた

Contents
スポンサーリンク

ESP-IDFのインストール

ESP32のToolchainが必要でここからダウンロードもできるのですが、IDFに同梱されているのでこいつを使った方が楽。

なので、IDFの環境構築がまだの場合は以下からインストールしてください。

Standard Toolchain Setup for Linux and macOS - ESP32 - — ESP-IDF Programming Guide latest documentation

もしくはVSCodeのEspressif IDF 拡張機能を使えばGUIで済むので楽です。

IDFのセットアップが終わったらsource export.shでIDFのパスを通して使えるようにしておいてください。

NuttX開発環境構築

Installing — NuttX latest documentation

ここに書いてある方法は一般的な方法であって、ESP32で動かすのに不要なものまでインストールすることになります。クロスコンパイラとかはIDFで揃ってるので、あとはKConfigだけ用意しましょう。

# apt install kconfig-frontends
$ git clone https://bitbucket.org/nuttx/tools.git
$ cd tools/kconfig-frontends
$ patch < ../kconfig-macos.diff -p 1
$ ./configure --enable-mconf --disable-shared --enable-static --disable-gconf --disable-qconf --disable-nconf
$ make
$ sudo make install

公式の手順そのままです。

スポンサーリンク

サンプルを動かす

とりあえずNuttX Shellを動かしてみましょう。

$ git clone https://github.com/apache/incubator-nuttx.git nuttx
$ git clone https://github.com/apache/incubator-nuttx-apps.git apps
$ cd nuttx
$ ./tools/configure.sh esp32-devkitc:nsh
$ make

これでビルドできるはず。

ブートローダーの書き込み

NuttXのバイナリをESP32で動かすには専用のBootloaderが必要です。初回起動時や他のバイナリを焼いた後などはBootloaderを事前に書き込んでおく必要があります。

Bootloaderは以下からダウンロードできます。bootloader-esp32.binpartition-table-esp32.binをダウンロードして同じディレクトリにまとめておいてください。

GitHub - espressif/esp-nuttx-bootloader: This repository provides 2nd stage bootloader and partition table binaries for NuttX users of ESP chips.

これを書き込むのは先ほどビルドしたnuttxプロジェクトのmakeを使います。例えば書き込み先のESP32のシリアルポートが/dev/cu.usbserial-0001bootloader-esp32.binpartition-table-esp32.bin~/Downloads/nuttx-esp32-bootloaderというディレクトリに両方放り込んだなら、先ほどmakeでビルドしてた端末で

$ make flash ESPTOOL_PORT=/dev/cu.usbserial-0001 ESPTOOL_BINDIR=~/Downloads/nuttx_esp32_bootloader

こんなコマンドを打てば書き込みできます。

サンプルの書き込み

ビルド済みのバイナリ(nuttx.bin)を書き込むのは以下のコマンドでOKです。

$ make flash ESPTOOL_PORT=/dev/cu.usbserial-0001

シリアルポート経由でNuttX Shellを開く

picocomが必要なのでインストールしておきましょう。

# apt install picocom
$ brew install picocom

あとはpicocomでシリアルポートを開けばnshにアクセスできます。

$ picocom -b 115200 /dev/cu.usbserial-0001

Unixライクなshellが出てきます。nsh>が出てない時はとりあえずEnterを打ってください。閉じるときは[Ctrl-A][Ctrl-X]です。

とりあえず環境構築としてはこんなものかな。勉強に必要な土台は整った。

スポンサーリンク

参考

Installing — NuttX latest documentation

Espressif ESP32 — NuttX latest documentation

Running — NuttX latest documentation

Getting Started with ESP32 and NuttX

スポンサーリンク

コメント

投稿されたコメントはありません

名前

メールアドレス(任意)

コメント

関連する投稿