platform
¶Type: Package Specification
| Multiple: No
Specify a development platform that provides integration of vendor-specific boards (development kits, MCUs), high-level frameworks, and SDKs. See Package Specifications for details.
PlatformIO Registry allows you to explore supported development platforms, boards, frameworks, and toolchains.
For the advanced platform configuration, please check the Development Platforms documentation.
Example of using a Espressif 32 development platform:
[env:recommended_specification]
; allow backwards-compatible new functionality and bug-fixes
platform = espressif32@^3.5.0
[env:allow_only_bug_fixes]
platform = espressif32@~3.5.0
[env:exact_version]
platform = espressif32@3.5.0
[env:latest_version]
platform = espressif32
[env:development_verion_by_git]
platform = https://github.com/platformio/platform-espressif32.git
[env:custom_git_branch]
platform = https://github.com/platformio/platform-espressif32.git#master
[env:specific_git_commit]
platform = https://github.com/platformio/platform-espressif32.git#f8340a2081a31c2ac8ed2b16907f2a21dc8897d4
platform_packages
¶Type: Package Specification
| Multiple: Yes
Configure custom packages per a build environment. You can also override default packages by Development Platforms using the same name. See Package Specifications for details.
Check the PlatformIO Registry for the available toolchains, frameworks, SDKs, etc.
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