組み込み開発では「何向けにビルドするか」と「どの実機へ書き込むか」を分けて考える必要があります。Embedrでは前者をターゲット、後者をデバイスとして扱います。
ターゲット
ターゲットは、コンパイル対象のボードやMCUを表します。PlatformIOではボードID、プラットフォーム、フレームワークに対応します。
例:
esp32devunopiconucleo_f401re
環境
環境はplatformio.ini内の[env:...]で定義されるビルドプロファイルです。同じプロジェクトで複数のボードや設定を使い分けるときに便利です。
デバイス
デバイスは、実際につながっているUSBやシリアルポートです。コンパイルが成功しても、デバイスが違う、権限がない、ドライバがない、といった理由でアップロードが失敗することがあります。
迷ったときの切り分け
ビルドに失敗するならターゲットや環境、依存関係を疑います。アップロードに失敗するなら、まずケーブル、ポート、ドライバ、電源、ブートモードを確認します。
