Определите переменную среды на основе цели (сборка или загрузка)

В коде Visual Studio с PlatformIO при нажатии кнопки [v] (PlatformIO: сборка) в среде IDE выполняется следующая задача:

> Executing task: C:\Users\Mary\.platformio\penv\Scripts\platformio.exe run <

Processing d1_mini (platform: espressif8266; board: d1_mini; framework: arduino)
...
...

когда я нажимаю кнопку [=>] (PlatformIO: загрузка), в среде IDE запускается следующая задача:

> Executing task: ~\.platformio\penv\Scripts\platformio.exe run --target upload <

Processing d1_mini (platform: espressif8266; board: d1_mini; framework: arduino)
...
...

Объяснение:

https://docs.platformio.org/en/latest/userguide/cmd_run.html

Мне нужно различать, когда цель запускается (компилируется) или цель загружается (--target upload) для установки другой переменной среды. Что-то вроде

[env:specific_defines]
build_flags =
  -D MY_VAR=true

потому что когда я компилирую проект, я не хочу отладочную информацию (например, Serial.println()), которую я хочу, когда я загружаю программу через usb с подключенной платой.

Я смотрю опции Build и Advanced Scripting, но не нахожу ничего подходящего для меня.

Заранее спасибо.

0 ответов

Поздний ответ: флаги сборки не применяются к UPLOAD, потому что на данный момент исходники уже созданы.

Если у вас есть две среды, скажем, производственная и отладочная, вам также необходимо загрузить варианты.

pio run -e prod -> compiles prod environment
pio run -e prod -t upload -> uploads prod environment

pio run -e debug -> compiles debug environment
pio run -e debug -t upload -> uploads debug environment
Другие вопросы по тегам