mirror of https://github.com/arendst/Tasmota.git
167 lines
9.1 KiB
Plaintext
167 lines
9.1 KiB
Plaintext
|
|
# ESP8266 platform
|
|
# ------------------------------
|
|
|
|
# For more info:
|
|
# https://github.com/arduino/Arduino/wiki/Arduino-IDE-1.5-3rd-party-Hardware-specification
|
|
|
|
name=ESP8266 Boards (2.5.2-196-g45d71ae4)
|
|
version=2.5.2-196-g45d71ae4
|
|
|
|
# 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.float=
|
|
build.led=
|
|
build.sdk=NONOSDK22y
|
|
|
|
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.
|
|
recipe.hooks.prebuild.10.pattern="{runtime.tools.python3.path}/python3" "{runtime.tools.makecorever}" --build_path "{build.path}" --platform_path "{runtime.platform.path}" --version "unix-{version}"
|
|
|
|
## 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} --end --chip esp8266 --port "{serial.port}" --baud "{upload.speed}" "{upload.verbose}" write_flash 0x0 "{build.path}/{build.project_name}.bin" --end
|
|
|
|
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
|
|
|
|
tools.espupload.cmd=python
|
|
tools.espupload.cmd.windows=python.exe
|
|
tools.espupload.path={runtime.platform.path}/tools
|
|
tools.espupload.upload.protocol=espupload
|
|
tools.espupload.upload.params.verbose=
|
|
tools.espupload.upload.params.quiet=
|
|
tools.espupload.upload.pattern="{cmd}" "{path}/espupload.py" -f "{build.path}/{build.project_name}.bin"
|