You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
I'm building firmware for the Sonoff Basic device and it supports OTA updates. As a result it's important that the firmware isn't larger than half the total flash size.
Using board_build.ldscript = eagle.flash.1m64.ld I can influence the available space, as shown by post-build the size check:
Flash: [====== ] 58.7% (used 563013 bytes from 958448 bytes)
But:
This value is not the same as in sonoff_basic.json: "upload": { ... "maximum_size": 1048576, and
This value does not respect attempts to override it in platformio.ini: board_upload.maximum_size = 500000
What is happening is that in .platformio/platforms/espressif8266/builder/main.py, this action:
env.VerboseAction(
lambda source, target, env: _update_max_upload_size(env),
"Retrieving maximum program size $SOURCE"))
parses the .ld file and extracts the true flash size from this line:
irom0_0_seg : org = 0x40201010, len = 0xe9ff0
but that all happens well after the user scripting stage. Without editing the .ld file, I can't see how to avoid this behaviour, and I don't want to do that anyway because:
It's not maintainable
It might have side effects I'm not aware of
One resolution would be for _update_max_upload_size to use the minimum of the current/scripted value (if non-zero) and the parsed value.
The text was updated successfully, but these errors were encountered:
I'm building firmware for the Sonoff Basic device and it supports OTA updates. As a result it's important that the firmware isn't larger than half the total flash size.
Using
board_build.ldscript = eagle.flash.1m64.ld
I can influence the available space, as shown by post-build the size check:But:
sonoff_basic.json
:"upload": { ... "maximum_size": 1048576,
andplatformio.ini
:board_upload.maximum_size = 500000
What is happening is that in
.platformio/platforms/espressif8266/builder/main.py
, this action:parses the
.ld
file and extracts the true flash size from this line:but that all happens well after the user scripting stage. Without editing the
.ld
file, I can't see how to avoid this behaviour, and I don't want to do that anyway because:One resolution would be for
_update_max_upload_size
to use the minimum of the current/scripted value (if non-zero) and the parsed value.The text was updated successfully, but these errors were encountered: