こちらが本命かな
●参考(感謝)ESP IDF開発環境を整える〜Mac編〜
●参考での不足事項
macはBSD系だからね。相変わらずあれこれとすんなりとは行かないね。
macに .profileはなかった。作成したが読み込まれなかった。
$>source .profile で有効になるが、再度ターミナルを立ち上げると反映されない。
これはmacが bashだからだ。
そこで.bash_profile にと思ったが、vimで覗いてみると自分で追加した
alias cls =’clear’
が記載されていない。
よく見ると、.bash_prifileの中に、「.bashrc」の起動記述があった。
.bashrcを見ると、alias cls が記述されていた。久々なので忘れていることばかりだ。
ということで .bashrc でパスを通す下記記述を行った。ターミナルを一度終了して起動で反映されれいる。
export PATH=$PATH:$HOME/esp/xtensa-esp32-elf/bin export IDF_PATH=$HOME/esp/esp-idf
$>printenv <– でPATHが表示される。
$>$PATH <— だと見えない・・・。
$>echo $PAT <— 見えた!!
●キットとの接続
キットのシリアルに関するドライバはAuduinoで組み入れられてる。これでターミナルから接続できる。
$>ls /devtty* <–でリストに出てくるか見る。以下表示されれば存在する。
/dev/tty.SLAB_USBtoUART /dev/ttyt0
存在しても screen で接続できないときには、このシリアル通信のリソースが開放されないで残っているようだ。シリアルポートクローズしてないような感じだ。ターミナルを終了して再度接続コマンドを実行してもはじかれる。こういう場合は、一度キットのUSBコネクタ挿し直す。
$>screen /dev/tty.SLAB_USBtoUART 115200
ESP32のリセットボタンで基本機能の表示とコマンドの受付状態となれば成功。
●開発へ
これが昨日はうまく行かなかった。本日はコピーできてカレントディレクトリに「hello_world」のディレクトリが作成されている。
cd ~/esp cp -r $IDF_PATH/examples/get-started/hello_world .
●make
下記のディレクトリに入らないと make menuconfig は有効ではなかった。
cd ~/esp/hello_world make menuconfig
●悩む
さて、方針を決める必要があるなと悩み。 micro Python での開発は楽ちんそうだから・・・・。Auduino のプロトタイプを利用も楽そうだ。
makeとかでネーティブな開発は何だかな。このところラズベリーパイは Python でやってるからね。さてさて・・・。
●esptoolトールを見つけた
esptoolのインストール
esptoolはESP-WROOM-02にコマンドラインからアクセスするツール
$ sudo pip install esptool
※以下実行できないときにはリソースが使用されている可能性がある。ESP32のUSBを抜き挿ししてリソースを初期化する必要がある。
$>esptool.py –port=/dev/tty.SLAB_USBtoUART –baud 115200 chip_id
以下表示されればトールは生きている。
esptool.py v2.5.1
Serial port /dev/tty.SLAB_USBtoUART
Connecting……..__
Detecting chip type… ESP32
Chip is ESP32D0WDQ6 (revision 1)
Features: WiFi, BT, Dual Core, 240MHz, VRef calibration in efuse
MAC: 3c:71:bf:0c:50:54
Uploading stub…
Running stub…
Stub running…
Warning: ESP32 has no Chip ID. Reading MAC instead.
MAC: 3c:71:bf:0c:50:54
Hard resetting via RTS pin…
Mac-mini:~ m_kurosaki$
$>esptool.py –port=/dev/tty.SLAB_USBtoUART –baud 115200 flash_id
esptool.py v2.5.1
Serial port /dev/tty.SLAB_USBtoUART
Connecting…….._
Detecting chip type… ESP32
Chip is ESP32D0WDQ6 (revision 1)
Features: WiFi, BT, Dual Core, 240MHz, VRef calibration in efuse
MAC: 3c:71:bf:0c:50:54
Uploading stub…
Running stub…
Stub running…
Manufacturer: c8
Device: 4016
Detected flash size: 4MB
Hard resetting via RTS pin…
●やりたかったのは初期ファームのバックアップとリカバリー
以下エラーが出て読め出せない。
$>esptool.py --port=/dev/tty.SLAB_USBtoUART --baud 921600 read_flash 0 0x400000 original_contents.bin
esptool.py v2.5.1
Serial port /dev/tty.SLAB_USBtoUART
Connecting……..____
Detecting chip type… ESP32
Chip is ESP32D0WDQ6 (revision 1)
Features: WiFi, BT, Dual Core, 240MHz, VRef calibration in efuse
MAC: 3c:71:bf:0c:50:54
Uploading stub…
Running stub…
Stub running…
Changing baud rate to 921600
Changed.
A fatal error occurred: Invalid head of packet (0xFF)
baud rateを115200bps でやってみる。超遅い!そして・・・おお!うまく行った!!(こういうときの自分の推測なんて当てにならないな。やるだけなのだとしみじみ思う)しかし開発で書き込みが遅いのは・・・。実際に書き込んでみないと分からないか。
$>esptool.py --port=/dev/tty.SLAB_USBtoUART --baud 115200 read_flash 0 0x400000 original_contents.bin
$>esptool.py –port=/dev/tty.SLAB_USBtoUART –baud 115200 read_flash 0 0x400000 original_contents.bin
esptool.py v2.5.1
Serial port /dev/tty.SLAB_USBtoUART
Connecting…….._
Detecting chip type… ESP32
Chip is ESP32D0WDQ6 (revision 1)
Features: WiFi, BT, Dual Core, 240MHz, VRef calibration in efuse
MAC: 3c:71:bf:0c:50:54
Uploading stub…
Running stub…
Stub running…
4194304 (100 %)
4194304 (100 %)
Read 4194304 bytes at 0x0 in 380.1 seconds (88.3 kbit/s)…
Hard resetting via RTS pin…
この後screenでターミナルでつながってプロンプトが表示されてるから問題ない。当たり前だがまだまだ色々不安な旅は続く。