0% found this document useful (0 votes)
67 views

Arduino Platform Docs

This document contains configuration settings for compiling and uploading code to the ESP8266 platform using the Arduino IDE. It specifies the compiler tools and flags, recipes for compiling C/C++ files and creating binary files, and instructions for uploading binaries to ESP8266 devices via serial or OTA network upload.

Uploaded by

anuragsharmatech
Copyright
© © All Rights Reserved
Available Formats
Download as TXT, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
67 views

Arduino Platform Docs

This document contains configuration settings for compiling and uploading code to the ESP8266 platform using the Arduino IDE. It specifies the compiler tools and flags, recipes for compiling C/C++ files and creating binary files, and instructions for uploading binaries to ESP8266 devices via serial or OTA network upload.

Uploaded by

anuragsharmatech
Copyright
© © All Rights Reserved
Available Formats
Download as TXT, PDF, TXT or read online on Scribd
You are on page 1/ 4

# ESP8266 platform

# ------------------------------

# For more info:


# https://github.com/arduino/Arduino/wiki/Arduino-IDE-1.5-3rd-party-Hardware-
specification

name=ESP8266 Boards (2.7.0)


version=2.7.0

# These will be removed by the packager script when doing a JSON release

runtime.tools.signing={runtime.platform.path}/tools/signing.py
runtime.tools.elf2bin={runtime.platform.path}/tools/elf2bin.py
runtime.tools.sizes={runtime.platform.path}/tools/sizes.py
runtime.tools.makecorever={runtime.platform.path}/tools/makecorever.py
runtime.tools.eboot={runtime.platform.path}/bootloaders/eboot/eboot.elf

compiler.warning_flags=-w
compiler.warning_flags.none=-w
compiler.warning_flags.default=
compiler.warning_flags.more=-Wall
compiler.warning_flags.all=-Wall -Wextra

build.lwip_lib=-llwip_gcc
build.lwip_include=lwip/include
build.lwip_flags=-DLWIP_OPEN_SRC

build.vtable_flags=-DVTABLES_IN_FLASH

build.sslflags=

build.exception_flags=-fno-exceptions
build.stdcpp_lib=-lstdc++
build.stdcpp_level=-std=gnu++11

build.float=-u _printf_float -u _scanf_float


build.led=

# default SDK for all boards


# (generic board overrides this variable)
build.sdk=NONOSDK22x_190703
#build.sdk=NONOSDK22x_191024
#build.sdk=NONOSDK22x_191105

compiler.path={runtime.tools.xtensa-lx106-elf-gcc.path}/bin/
compiler.sdk.path={runtime.platform.path}/tools/sdk

compiler.libc.path={runtime.platform.path}/tools/sdk/libc/xtensa-lx106-elf
compiler.cpreprocessor.flags=-D__ets__ -DICACHE_FLASH -U__STRICT_ANSI__ "-
I{compiler.sdk.path}/include" "-I{compiler.sdk.path}/{build.lwip_include}" "-
I{compiler.libc.path}/include" "-I{build.path}/core"

compiler.c.cmd=xtensa-lx106-elf-gcc
compiler.c.flags=-c {compiler.warning_flags} -Os -g -Wpointer-arith -Wno-implicit-
function-declaration -Wl,-EL -fno-inline-functions -nostdlib -mlongcalls -mtext-
section-literals -falign-functions=4 -MMD -std=gnu99 -ffunction-sections -fdata-
sections {build.exception_flags} {build.sslflags}

compiler.S.cmd=xtensa-lx106-elf-gcc
compiler.S.flags=-c -g -x assembler-with-cpp -MMD -mlongcalls

compiler.c.elf.flags=-g {compiler.warning_flags} -Os -nostdlib -Wl,--no-check-


sections -u app_entry {build.float} -Wl,-static "-L{compiler.sdk.path}/lib" "-
L{compiler.sdk.path}/lib/{build.sdk}" "-L{compiler.sdk.path}/ld" "-
L{compiler.libc.path}/lib" "-T{build.flash_ld}" -Wl,--gc-sections -Wl,-
wrap,system_restart_local -Wl,-wrap,spi_flash_read

compiler.c.elf.cmd=xtensa-lx106-elf-gcc
compiler.c.elf.libs=-lhal -lphy -lpp -lnet80211 {build.lwip_lib} -lwpa -lcrypto
-lmain -lwps -lbearssl -laxtls -lespnow -lsmartconfig -lairkiss -lwpa2
{build.stdcpp_lib} -lm -lc -lgcc

compiler.cpp.cmd=xtensa-lx106-elf-g++
compiler.cpp.flags=-c {compiler.warning_flags} -Os -g -mlongcalls -mtext-section-
literals -fno-rtti -falign-functions=4 {build.stdcpp_level} -MMD -ffunction-
sections -fdata-sections {build.exception_flags} {build.sslflags}

compiler.as.cmd=xtensa-lx106-elf-as

compiler.ar.cmd=xtensa-lx106-elf-ar
compiler.ar.flags=cru

compiler.elf2hex.cmd=esptool
compiler.elf2hex.flags=

compiler.size.cmd=xtensa-lx106-elf-size

# This can be overriden in boards.txt


build.extra_flags=-DESP8266

# These can be overridden in platform.local.txt


compiler.c.extra_flags=
compiler.c.elf.extra_flags=
compiler.S.extra_flags=
compiler.cpp.extra_flags=
compiler.ar.extra_flags=
compiler.objcopy.eep.extra_flags=
compiler.elf2hex.extra_flags=

## generate file with git version number


## needs git
recipe.hooks.sketch.prebuild.pattern="{runtime.tools.python3.path}/python3"
"{runtime.tools.signing}" --mode header --publickey
"{build.source.path}/public.key" --out "{build.path}/core/Updater_Signing.h"
# This is quite a working hack. This form of prebuild hook, while intuitive, is not
explicitly documented.

## Build the app.ld linker file


recipe.hooks.linking.prelink.1.pattern="{compiler.path}{compiler.c.cmd}" -CC -E -P
{build.vtable_flags}
"{runtime.platform.path}/tools/sdk/ld/eagle.app.v6.common.ld.h" -o
"{build.path}/local.eagle.app.v6.common.ld"
## Compile c files
recipe.c.o.pattern="{compiler.path}{compiler.c.cmd}" {compiler.cpreprocessor.flags}
{compiler.c.flags} -D{build.sdk}=1 -DF_CPU={build.f_cpu} {build.lwip_flags}
{build.debug_port} {build.debug_level} -DARDUINO={runtime.ide.version}
-DARDUINO_{build.board} -DARDUINO_ARCH_{build.arch} -DARDUINO_BOARD="{build.board}"
{build.led} {build.flash_flags} {compiler.c.extra_flags} {build.extra_flags}
{includes} "{source_file}" -o "{object_file}"

## Compile c++ files


recipe.cpp.o.pattern="{compiler.path}{compiler.cpp.cmd}"
{compiler.cpreprocessor.flags} {compiler.cpp.flags} -D{build.sdk}=1
-DF_CPU={build.f_cpu} {build.lwip_flags} {build.debug_port} {build.debug_level}
-DARDUINO={runtime.ide.version} -DARDUINO_{build.board} -DARDUINO_ARCH_{build.arch}
-DARDUINO_BOARD="{build.board}" {build.led} {build.flash_flags}
{compiler.cpp.extra_flags} {build.extra_flags} {includes} "{source_file}" -o
"{object_file}"

## Compile S files
recipe.S.o.pattern="{compiler.path}{compiler.c.cmd}" {compiler.cpreprocessor.flags}
{compiler.S.flags} -D{build.sdk}=1 -DF_CPU={build.f_cpu} {build.lwip_flags}
{build.debug_port} {build.debug_level} -DARDUINO={runtime.ide.version}
-DARDUINO_{build.board} -DARDUINO_ARCH_{build.arch} -DARDUINO_BOARD="{build.board}"
{build.led} {build.flash_flags} {compiler.c.extra_flags} {build.extra_flags}
{includes} "{source_file}" -o "{object_file}"

## Create archives
recipe.ar.pattern="{compiler.path}{compiler.ar.cmd}" {compiler.ar.flags}
{compiler.ar.extra_flags} "{archive_file_path}" "{object_file}"

## Combine gc-sections, archives, and objects


recipe.c.combine.pattern="{compiler.path}{compiler.c.elf.cmd}"
{build.exception_flags} -Wl,-Map "-Wl,{build.path}/{build.project_name}.map"
{compiler.c.elf.flags} {compiler.c.elf.extra_flags} -o
"{build.path}/{build.project_name}.elf" -Wl,--start-group {object_files}
"{archive_file_path}" {compiler.c.elf.libs} -Wl,--end-group "-L{build.path}"

## Create eeprom
recipe.objcopy.eep.pattern=

## Create hex
recipe.objcopy.hex.1.pattern="{runtime.tools.python3.path}/python3"
"{runtime.tools.elf2bin}" --eboot "{runtime.tools.eboot}" --app
"{build.path}/{build.project_name}.elf" --flash_mode {build.flash_mode}
--flash_freq {build.flash_freq} --flash_size {build.flash_size} --path
"{runtime.tools.xtensa-lx106-elf-gcc.path}/bin" --out
"{build.path}/{build.project_name}.bin"
recipe.objcopy.hex.2.pattern="{runtime.tools.python3.path}/python3"
"{runtime.tools.signing}" --mode sign --privatekey
"{build.source.path}/private.key" --bin "{build.path}/{build.project_name}.bin"
--out "{build.path}/{build.project_name}.bin.signed" --legacy
"{build.path}/{build.project_name}.bin.legacy_sig"
recipe.objcopy.hex.3.pattern="{runtime.tools.python3.path}/python3"
"{runtime.tools.sizes}" --elf "{build.path}/{build.project_name}.elf" --path
"{runtime.tools.xtensa-lx106-elf-gcc.path}/bin"

## Save hex
recipe.output.tmp_file={build.project_name}.bin
recipe.output.save_file={build.project_name}.{build.variant}.bin
## Compute size
recipe.size.pattern="{compiler.path}{compiler.size.cmd}" -A
"{build.path}/{build.project_name}.elf"
recipe.size.regex=^(?:\.irom0\.text|\.text|\.text1|\.data|\.rodata|)\s+([0-9]+).*
recipe.size.regex.data=^(?:\.data|\.rodata|\.bss)\s+([0-9]+).*
#recipe.size.regex.eeprom=^(?:\.eeprom)\s+([0-9]+).*

# ------------------------------

tools.esptool.path=
# Because the variable expansion doesn't allow one tool to find another, the
following lines
# will point to "{runtime.platform.path}/tools/python3/python3" in GIT and
# "{runtime.tools.python3.path}/python3" for JSON board manager releases.
tools.esptool.cmd={runtime.tools.python3.path}/python3
tools.esptool.network_cmd={runtime.tools.python3.path}/python3

tools.esptool.upload.protocol=esp
# esptool.py --trace option is a debug option, not a verbose option
tools.esptool.upload.params.verbose=
tools.esptool.upload.params.quiet=

# First, potentially perform an erase or nothing


# Next, do the binary upload
# Combined in one rule because Arduino doesn't suport
upload.1.pattern/upload.3.pattern
tools.esptool.upload.pattern="{cmd}" "{runtime.platform.path}/tools/upload.py"
--chip esp8266 --port "{serial.port}" --baud "{upload.speed}" "{upload.verbose}"
{upload.erase_cmd} {upload.resetmethod} write_flash 0x0
"{build.path}/{build.project_name}.bin"

tools.esptool.upload.network_pattern="{network_cmd}"
"{runtime.platform.path}/tools/espota.py" -i "{serial.port}" -p "{network.port}"
"--auth={network.password}" -f "{build.path}/{build.project_name}.bin"

tools.mkspiffs.cmd=mkspiffs
tools.mkspiffs.cmd.windows=mkspiffs.exe
tools.mkspiffs.path={runtime.tools.mkspiffs.path}

tools.mklittlefs.cmd=mklittlefs
tools.mklittlefs.cmd.windows=mklittlefs.exe
tools.mklittlefs.path={runtime.platform.path}/tools/mklittlefs

You might also like