はじめに
低価格で高機能なEspressif社のESP32シリーズのチップ、いくつかの開発環境があるが、やはり骨までしゃぶりたかったらesp-idfを使うのが良さそうだ。この記事は、私が備忘録として残しておくためを第1目的として書いておく。似たような環境の人は参考になるかもしれない。
前提環境
- macOS 13.6
- Homebrew
- ESP32を搭載した各種ボードたち
esp-idfの導入
とりあえず~/espディレクトリに導入してるけど、これは他でもよい。他にEspressifのリポジトリをクローンするつもりならば、Espressifのリポジトリをまとめておいておくためのディレクトリがあっても良いかもしれないな。
$ mkdir ~/esp
$ cd ~/esp
$ git clone --recursive https://github.com/espressif/esp-idf
$ cd esp-idf
$ ./install.sh
$ . ./export.sh
'master'ブランチをクローンしてるけど、製品版のビルドならば、5.0ブランチでなければならないかもしれない。4.4ブランチでは以下のコマンドたちは使えないかもしれない。
プロジェクトの開始
今どきは下記のようにするのが良さそう。
- create-projectコマンドを使ってプロジェクトを作成
- set-targetコマンドを使ってチップに応じた環境を作成
- ごそごそ開発
- ビルドと書き込み
ということで、esp32-s3チップの場合、こんな感じかな?
$ cd ~/src # プロジェクトたちを置いてあるディレクトリね
$ idf.py create-project testproj
$ cd testproj
$ idf.py set-target esp32s3
$ emacs main/testproj.c
$ idf.py flash monitor
気がついたことは下記。
- zshを使っているのだが、コマンドはタブキーで保管できる。
- 'create-project'コマンドは、プロジェクト名のサブディレクトリを作ってくれる。
- ターゲットのチップ名も保管してくれるので大変便利。
- 'compile_commands.json'も作ってくれるので、lspとかを設定しているEmacsならばCのソースコードを書いているときにちゃんと保管してくれると思う。
- シリアル通信の速度はおそらく115200bps
他にもコンポーネントをどう作るかとか、自動的にダウンロードするのにはどうするかとか、いろいろ知っといたほうが良いことはあるっぽいが、そのうち書き足そう。
Happy hacking!