PlatformIOで最新のArduino core for the ESP32ライブラリがエラーになる問題(解決)
さて前記事で、PlatformIOで導入しているプラットホーム「Espressif 32」が使用するarduinoフレームワーク「framework-arduinoespressif32」がちょっと古いみたいな事が判明しまして。
デフォルトで導入されるバージョン 3.10004.200129 は、package.jsonのタイムスタンプを見る限りでは2020/01/29とありますので、バージョンの200129と一致。
今年の1月29日バージョンという事ですね。
さてGitHubにある現行の「Arduino core for the ESP32」は、、
package.jsonが更新されておらず、よく判らない訳ですが、、、
Gitの更新履歴からmasterブランチは9日前にマージされているみたいです。
確実に新しそうですし、一応masterブランチなので使って大丈夫やろという事で、、
後々ESP32ではBLE関連も使って遊ぶ目論見がありますので、導入方法を調べてみました。
どうやらPlatformIO上でマウスポチポチするだけでは出来ない様でして・・・
PlatformIOのドキュメントにこんな記述がありました。
どうやらプロジェクトに作られる「platformio.ini」に、Gitリポジトリを指定して書いてコンパイルして見てチョ、という事らしい。
早速やってみます。
[env:nodemcu-32s]
platform = espressif32
board = nodemcu-32s
framework = arduino
monitor_speed = 115200
platform_packages = framework-arduinoespressif32 @ https://github.com/espressif/arduino-esp32.git
末行に「platform_packages = framework-arduinoespressif32 @ https://github.com/espressif/arduino-esp32.git」を追加しました。
念のためcleanしてから、、、
ポチッ
ぎゃああああぁああぁあぁぁあぁ
大量の警告と、コンパイルできまへんでしたとのメッセージ。
これは、、、なんか足りない時のリンクエラーな感じ?
大量過ぎて読む気が全く起きません
アカンのんか、、しかしmasterブランチやぞ、、
それでもアカンのんか、、、?
と、往生際悪く解決方法を探し回る事数時間
PlatformIOのGitリポジトリにissuesがポストされておりました。
GitHub – PlatformIO – Issues – Linking fails with latest arduino-esp32 #334
うん、ワタクシの症状とほぼ同じ。
ldscript(リンカー)の指定が変わったみたいですよとのコメントもありました。
このコミットを見ると、確かにボード毎のビルドスクリプトの記述位置が変更されていますね。
ワタクシが使っているNodeMCU-32Sも、boards/nodemcu-32s.json の箇所を見ると変更対象になっている様子。
さて、、
現在のところ、リンカースクリプトを手動で指定するで回避できるとの事。
こういうのは「platformio.ini」に書けって事らしいですので、以下の様に追加してみます。
[env:nodemcu-32s]
platform = espressif32
board = nodemcu-32s
framework = arduino
monitor_speed = 115200
platform_packages = framework-arduinoespressif32 @ https://github.com/espressif/arduino-esp32.git
board_build.ldscript = esp32_out.ld
「board_build.ldscript = esp32_out.ld」を末行に追加
そしてコンパイルをっと。
なんか一部warningが出てますが、、、
C:\Users\{USER}\.platformio\packages\framework-arduinoespressif32@src-537c58760dafe7fcc8a1d9bbcf00b6f6\cores\esp32\esp32-hal-rmt.c: In function 'rmtLoop':
C:\Users\{USER}\.platformio\packages\framework-arduinoespressif32@src-537c58760dafe7fcc8a1d9bbcf00b6f6\cores\esp32\esp32-hal-rmt.c:243:9: warning: unused variable 'channel' [-Wunused-variable]
int channel = rmt->channel;
^
unusedのワーニング(これ、使っとらんガナ!)なので、スルーしていいかな
というわけで一応コンパイルが通り、晴れて新しいライブラリが使用可能になりました。
うん、昨日これで一日潰してしまいますた。
疲れたンゴねぇ・・・
ディスカッション
コメント一覧
まだ、コメントがありません