@@ -11,6 +11,11 @@ version=2.6.0-dev
11
11
runtime.tools.xtensa-lx106-elf-gcc.path={runtime.platform.path}/tools/xtensa-lx106-elf
12
12
runtime.tools.esptool.path={runtime.platform.path}/tools/esptool
13
13
runtime.tools.signing={runtime.platform.path}/tools/signing.py
14
+ runtime.tools.elf2bin={runtime.platform.path}/tools/elf2bin.py
15
+ runtime.tools.makecorever={runtime.platform.path}/tools/makecorever.py
16
+ runtime.tools.eboot={runtime.platform.path}/bootloaders/eboot/eboot.elf
17
+ runtime.tools.python=python
18
+ runtime.tools.python.windows={runtime.platform.path}/tools/python/python.exe
14
19
15
20
compiler.warning_flags=-w
16
21
compiler.warning_flags.none=-w
@@ -76,14 +81,8 @@ compiler.elf2hex.extra_flags=
76
81
77
82
## generate file with git version number
78
83
## needs bash, git, and echo
79
- recipe.hooks.core.prebuild.1.pattern=python "{runtime.tools.signing}" --mode header --publickey "{build.source.path}/public.key" --out "{build.path}/core/Updater_Signing.h"
80
- recipe.hooks.core.prebuild.2.pattern=bash -c "mkdir -p {build.path}/core && echo \#define ARDUINO_ESP8266_GIT_VER 0x`git --git-dir {runtime.platform.path}/.git rev-parse --short=8 HEAD 2>/dev/null || echo ffffffff` >{build.path}/core/core_version.h"
81
- recipe.hooks.core.prebuild.3.pattern=bash -c "mkdir -p {build.path}/core && echo \#define ARDUINO_ESP8266_GIT_DESC `cd "{runtime.platform.path}"; git describe --tags 2>/dev/null || echo unix-{version}` >>{build.path}/core/core_version.h"
82
-
83
- ## windows-compatible version without git
84
- recipe.hooks.core.prebuild.1.pattern.windows=cmd.exe /c rem cannot sign on windows
85
- recipe.hooks.core.prebuild.2.pattern.windows=cmd.exe /c mkdir {build.path}\core & (echo #define ARDUINO_ESP8266_GIT_VER 0x00000000 & echo #define ARDUINO_ESP8266_GIT_DESC win-{version} ) > {build.path}\core\core_version.h
86
- recipe.hooks.core.prebuild.3.pattern.windows=cmd.exe /c if exist {build.source.path}\public.key echo #error Cannot automatically build signed binaries on Windows > {build.path}\core\Updater_Signing.h
84
+ recipe.hooks.core.prebuild.1.pattern="{runtime.tools.python}" "{runtime.tools.signing}" --mode header --publickey "{build.source.path}/public.key" --out "{build.path}/core/Updater_Signing.h"
85
+ recipe.hooks.core.prebuild.2.pattern="{runtime.tools.python}" "{runtime.tools.makecorever}" --build_path "{build.path}' --platform_path "{runtime.platform.path}" --version "unix-{version}"
87
86
88
87
## Build the app.ld linker file
89
88
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"
@@ -107,14 +106,8 @@ recipe.c.combine.pattern="{compiler.path}{compiler.c.elf.cmd}" {build.exception_
107
106
recipe.objcopy.eep.pattern=
108
107
109
108
## Create hex
110
- #recipe.objcopy.hex.pattern="{compiler.path}{compiler.elf2hex.cmd}" {compiler.elf2hex.flags} {compiler.elf2hex.extra_flags} "{build.path}/{build.project_name}.elf" "{build.path}/{build.project_name}.hex"
111
-
112
- recipe.objcopy.hex.1.pattern="{runtime.tools.esptool.path}/{compiler.esptool.cmd}" -eo "{runtime.platform.path}/bootloaders/eboot/eboot.elf" -bo "{build.path}/{build.project_name}.bin" -bm {build.flash_mode} -bf {build.flash_freq} -bz {build.flash_size} -bs .text -bp 4096 -ec -eo "{build.path}/{build.project_name}.elf" -bs .irom0.text -bs .text -bs .data -bs .rodata -bc -ec
113
- recipe.objcopy.hex.2.pattern=python "{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"
114
-
115
- # No signing on Windows
116
- recipe.objcopy.hex.1.pattern.windows="{runtime.tools.esptool.path}/{compiler.esptool.cmd}" -eo "{runtime.platform.path}/bootloaders/eboot/eboot.elf" -bo "{build.path}/{build.project_name}.bin" -bm {build.flash_mode} -bf {build.flash_freq} -bz {build.flash_size} -bs .text -bp 4096 -ec -eo "{build.path}/{build.project_name}.elf" -bs .irom0.text -bs .text -bs .data -bs .rodata -bc -ec
117
- recipe.objcopy.hex.2.pattern.windows=
109
+ recipe.objcopy.hex.1.pattern="{runtime.tools.python}" "{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"
110
+ recipe.objcopy.hex.2.pattern="{runtime.tools.python}" "{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"
118
111
119
112
## Save hex
120
113
recipe.output.tmp_file={build.project_name}.bin
@@ -128,16 +121,23 @@ recipe.size.regex.data=^(?:\.data|\.rodata|\.bss)\s+([0-9]+).*
128
121
129
122
# ------------------------------
130
123
131
- tools.esptool.cmd=esptool
132
- tools.esptool.cmd.windows=esptool.exe
133
- tools.esptool.path={runtime.platform.path}/tools/esptool
124
+ # Need to duplicate the python path because Arduino does not replace properly in this stage
125
+ tools.esptool.cmd=python
126
+ tools.esptool.cmd.windows={runtime.platform.path}/tools/python/python.exe
127
+ tools.esptool.path=
134
128
tools.esptool.network_cmd=python
135
- tools.esptool.network_cmd.windows=python.exe
129
+ tools.esptool.network_cmd.windows={runtime.platform.path}/tools/python/ python.exe
136
130
137
131
tools.esptool.upload.protocol=esp
138
- tools.esptool.upload.params.verbose=-vv
132
+ tools.esptool.upload.params.verbose=--trace
139
133
tools.esptool.upload.params.quiet=
140
- tools.esptool.upload.pattern="{path}/{cmd}" {upload.verbose} -cd {upload.resetmethod} -cb {upload.speed} -cp "{serial.port}" {upload.erase_cmd} -ca 0x00000 -cf "{build.path}/{build.project_name}.bin"
134
+
135
+ # First, potentially perform an erase or nothing
136
+ # Next, do the binary upload
137
+ # Combined in one rule because Arduino doesn't suport upload.1.pattern/upload.3.pattern
138
+ tools.esptool.upload.pattern="{cmd}" "{runtime.platform.path}/tools/upload.py" "{runtime.platform.path}/tools/pyserial" "{runtime.platform.path}/tools/esptool/esptool.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
139
+
140
+
141
141
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"
142
142
143
143
tools.mkspiffs.cmd=mkspiffs
0 commit comments