platform
¶Type: String
| Multiple: No
Development Platforms name.
PlatformIO allows one to use specific version of platform using Semantic Versioning (X.Y.Z=MAJOR.MINOR.PATCH) or VCS (Git, Mercurial and Subversion).
Version specifications can take any of the following forms:
1.2.3
: an exact version number. Use only this exact version
^1.2.3
: any compatible version (exact version for 1.x.x
versions)
~1.2.3
: any version with the same major and minor versions, and an
equal or greater patch version
>1.2.3
: any version greater than 1.2.3
. >=
, <
, and <=
are also possible
>0.1.0,!=0.2.0,<0.3.0
: any version greater than 0.1.0
, not equal to
0.2.0
and less than 0.3.0
Other forms are the same as for the pio platform install command.
Examples:
[env:the_latest_version]
platform = atmelavr
[env:exact_version]
platform = atmelavr@1.2.3
[env:specific_major_version]
platform = atmelavr@^1.2.3
[env:specific_major_and_minor_version]
platform = atmelavr@~1.2.3
[env:development_verion_by_git]
platform = https://github.com/platformio/platform-ststm32.git
[env:custom_git_branch]
platform = https://github.com/platformio/platform-espressif8266.git#feature/stage
[env:specific_git_commit]
platform = https://github.com/platformio/platform-espressif8266.git#921855a9c530082efddb5d48b44c3f4be0e2dfa2
platform_packages
¶Type: String
| Multiple: Yes
Configure custom packages per a build environment. You can also override default packages by Development Platforms using the same name. Packages will be installed in packages_dir.
Examples:
[env:override_default_toolchain]
platform = atmelavr
platform_packages =
; use GCC AVR 5.0+
toolchain-gccarmnoneeabi@>1.50000.0
[env:override_framework]
platform = espressif8266
platform_packages =
; use upstream Git version
framework-arduinoespressif8266 @ https://github.com/esp8266/Arduino.git
[env:external_package]
platform = ststm32
platform_packages =
; latest openOCD from PlatformIO Package Registry
tool-openocd
; source code of ST-Link
tool-stlink-source @ https://github.com/texane/stlink.git
framework
¶Type: String
| Multiple: Yes
Frameworks name.
board
¶Type: String (ID)
| Multiple: No
PlatformIO has pre-configured settings for the most popular boards:
build configuration
upload configuration
debugging configuration
connectivity information, etc.
You can find a valid board
ID in Boards catalog,
Boards Explorer or
pio boards command.
board_build.mcu
¶Type: String
| Multiple: No
board_build.mcu
is a microcontroller(MCU) type that is used by compiler to
recognize MCU architecture. The correct type of board_build.mcu
depends on
platform library. For example, the list of board_build.mcu
for “megaAVR Devices”
is described here.
The full list of board_build.mcu
for the popular embedded platforms you can find
in Boards section of Development Platforms. See “Microcontroller” column.
board_build.f_cpu
¶Type: Number
| Multiple: No
The option board_build.f_cpu
is used to define MCU frequency (Hertz, Clock). A
format of this option is C-like long integer
value with L
suffix. The
1 Hertz is equal to 1L
, then 16 MHz (Mega Hertz) is equal to 16000000L
.
The full list of board_build.f_cpu
for the popular embedded platforms you can
find in Boards section of Development Platforms. See “Frequency” column.
Note
This option doesn’t make any changes to real clock settings on hardware. You should
specify a board_build.f_cpu
value if you have changed a target’s clock frequency
so that the underlying software will be configured accordingly to match the change.
board_build.ldscript
¶Type: String
| Multiple: No
Path to the linker script to be used instead of the one defined by a framework. This is useful for specifying a modified linker script, for example, when an application requires a special memory section for a bootloader.
You can override any board option declared in manifest file using the next
format board_{OBJECT.PATH}
, where {OBJECT.PATH}
is an object path in
JSON manifest. Please navigate to “boards” folder of PlatfomIO development platforms
and open JSON file to list all available options.
For example, Manifest: Espressif ESP32 Dev Module:
[env:custom_board_options]
; Custom CPU Frequency
board_build.f_cpu = 160000000L
; Custom FLASH Frequency
board_build.f_flash = 80000000L
; Custom FLASH Mode
board_build.flash_mode = qio
; Custom linker script
board_build.ldscript = /path/to/ldscript.ld
; Custom maximum program size
board_upload.maximum_size = 1310720