Nuttx master repositoryにesp32のwifi関係がやっと入ったので、まずは、ESP32をビルドする環境をLinux(Debian 11)上で整え、nshをビルドして見ました。それでは早速設定していきます。
#nuttx用のツール類のインストール sudo apt-get install kconfig-frontends #esp32 idf用のツール類のインストール sudo apt-get install git wget flex bison gperf python3 python3-pip python3-setuptools \ python3-serial python3-click python3-cryptography python3-future python3-pyparsing \ python3-pyelftools python3-libusb1 cmake ninja-build ccache #python3をデフォルトにしておく。 sudo update-alternatives --install /usr/bin/python python /usr/bin/python3 10nuttxのソースをクローンし、esp32の開発環境を読み込むようにしておきます。
cd /usr/src sudo mkdir /usr/src/nuttx-master sudo chown -R YourUseName nuttx-master cd nuttx-master git clone https://github.com/apache/incubator-nuttx nuttx git clone https://github.com/apache/incubator-nuttx-apps apps cd nuttx make -C tools/esp32 ${HOME}/esp/esp-idf #ツール類のダウンロードが行われ、数分かかります。 #続いて ~/.bashrc を編集し、ログイン時にesp32のidf環境を読み込むようにしておきます。 . ${HOME}/esp/esp-idf/export.shここで一旦ログアウトして、再度ログインしてください。
Setting IDF_PATH to '/home/yourUserName/esp/esp-idf' Adding ESP-IDF tools to PATH... Not using an unsupported version of tool openocd-esp32 found in PATH: 0.11.0-rc1-snapshot. Checking if Python packages are up to date... Python requirements from /home/yourUserName/esp/esp-idf/requirements.txt are satisfied. Added the following directories to PATH: /home/yourUserName/esp/esp-idf/components/esptool_py/esptool /home/yourUserName/esp/esp-idf/components/espcoredump /home/yourUserName/esp/esp-idf/components/partition_table/ /home/yourUserName/.espressif/tools/xtensa-esp32-elf/esp-2020r2-8.2.0/xtensa-esp32-elf/bin /home/yourUserName/.espressif/tools/xtensa-esp32s2-elf/esp-2020r2-8.2.0/xtensa-esp32s2-elf/bin /home/yourUserName/.espressif/tools/esp32ulp-elf/2.28.51-esp-20191205/esp32ulp-elf-binutils/bin /home/yourUserName/.espressif/tools/esp32s2ulp-elf/2.28.51-esp-20191205/esp32s2ulp-elf-binutils/bin /home/yourUserName/.espressif/tools/openocd-esp32/v0.10.0-esp32-20191114/openocd-esp32/bin /home/yourUserName/.espressif/python_env/idf4.1_py3.9_env/bin /home/yourUserName/esp/esp-idf/tools Done! You can now compile ESP-IDF projects. Go to the project directory and run: idf.py build続いて、ビルドしたnuttxをシリアル経由でボードに書き込めるように先にブートローダーバイナリーを取得しておきます。
cd ~ wget -O ~/bootloader.bin https://github.com/saramonteiro/esp32_binaries_nuttx/blob/main/bootloader.bin?raw=true wget -O ~/partitions.bin https://github.com/saramonteiro/esp32_binaries_nuttx/blob/main/partitions.bin?raw=true最後にビルドとESP32ボードへの書き込みを行います。
cd /usr/src/nuttx-master/nuttx tools/configure.sh esp32-devkitc/nsh # Xは環境にあわせてください。 make -jX rm nuttx.bin esptool.py --chip esp32 elf2image --flash_mode dio --flash_size 4MB -o ./nuttx.bin nuttx # ここで、espボードを接続。 # ttyUSB0は環境に合わせて下さい。 sudo chmod 666 /dev/ttyUSB0 esptool.py --chip esp32 --port /dev/ttyUSB0 --baud 921600 write_flash 0x1000 \ ~/bootloader.bin 0x8000 ~/partitions.bin 0x10000 nuttx.bin ========== esptool.py v3.0 Serial port /dev/ttyUSB0 Connecting.... Chip is ESP32-D0WDQ6 (revision 1) Features: WiFi, BT, Dual Core, Coding Scheme None Crystal is 40MHz MAC: 30:ae:ww:xx:yy:zz Uploading stub... Running stub... Stub running... Changing baud rate to 921600 Changed. Configuring flash size... Compressed 23904 bytes to 14870... Wrote 23904 bytes (14870 compressed) at 0x00001000 in 0.2 seconds (effective 969.4 kbit/s)... Hash of data verified. Compressed 3072 bytes to 103... Wrote 3072 bytes (103 compressed) at 0x00008000 in 0.0 seconds (effective 5092.6 kbit/s)... Hash of data verified. Compressed 189504 bytes to 48817... Wrote 189504 bytes (48817 compressed) at 0x00010000 in 1.5 seconds (effective 994.6 kbit/s)... Hash of data verified. Leaving... Hard resetting via RTS pin... ================ $ minicom -D /dev/ttyUSBX Welcome to minicom 2.7.90 OPTIONS: I18n Compiled on Jul 26 2020, 10:44:57. Port /dev/ttyUSB0, 23:25:20 Press CTRL-A Z for help on special keys nsh> uname -a NuttX 10.0.1 ca0932f842 Jan 13 2021 23:23:20 xtensa esp32-devkitc nsh>今回は以上です。それでは。 参考にしたサイト:
https://medium.com/the-esp-journal/getting-started-with-esp32-and-nuttx-fd3e1a3d182c
コメント
コメントを投稿