Skip to content

Make unique sections for ICACHE_* variables #5116

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Closed
wants to merge 2 commits into from

Conversation

earlephilhower
Copy link
Collaborator

Similar to PROGMEM changes, make the name of each ICACHE_* variable/fuction
unique to avoid issues with section conflicts.

Fixes #5115

@earlephilhower
Copy link
Collaborator Author

earlephilhower commented Sep 10, 2018

This will also change flash and IRAM usage, same as the PROGMEM change did.

A blank sketch reports 246008-243644 bytes of flash (2364 bytes) saved.

I can't quite figure out how to find the end of iram, so that still needs to be checked. If there were repeated constant strings then it may actually have grown since gcc couldn't coalesce them (assuming it did before).

Similar to PROGMEM changes, make the name of each ICACHE_* variable/fuction
unique to avoid issues with section conflicts.

Fixes esp8266#5115
@earlephilhower
Copy link
Collaborator Author

Closing this since #5117 fixes the bug found in the linker files.

earlephilhower added a commit to earlephilhower/Arduino that referenced this pull request Sep 19, 2018
Similar to PROGMEM changes, make the name of each ICACHE_* variable/fuction
unique to avoid issues with section conflicts.

Also rename the generated LD linker script to avoid issue with older copies
of the eagle.app.v6.common.ld which were generated by the build process
in a global directory before being moved to the {build.path}.  The linker
would use the older, generated *.ld file instead of the generated one, which
would lead to runtime failures on some systems and cause the VTABLE location
to not correspond to the IDE menu selection.

Fixes esp8266#5115, and is an update to esp8266#5117 and esp8266#5116.
devyte pushed a commit that referenced this pull request Sep 21, 2018
* Move ICACHE_* to unique sections, local LD script

Similar to PROGMEM changes, make the name of each ICACHE_* variable/fuction
unique to avoid issues with section conflicts.

Also rename the generated LD linker script to avoid issue with older copies
of the eagle.app.v6.common.ld which were generated by the build process
in a global directory before being moved to the {build.path}.  The linker
would use the older, generated *.ld file instead of the generated one, which
would lead to runtime failures on some systems and cause the VTABLE location
to not correspond to the IDE menu selection.

Fixes #5115, and is an update to #5117 and #5116.

* Update boards.txt.py and platform.io build
@earlephilhower earlephilhower deleted the iram_names branch September 30, 2018 17:43
earlephilhower added a commit to earlephilhower/Arduino that referenced this pull request Jul 24, 2019
Fixes esp8266#5116
Fixes esp8266#2743

The Arduino WiFiClient object allows sending the same packet to all
connected clients of a WiFiServer.  In their implementation it may make
sense, but on the 8266 with things like SSL it doesn't.

Update the docs to note that WiFiServer::write() is a no-op, and that
the app should use the WiFiCliebnt::write() on all connected clients as
appropriate.
d-a-v pushed a commit that referenced this pull request Jul 25, 2019
Fixes #5116
Fixes #2743

The Arduino WiFiClient object allows sending the same packet to all
connected clients of a WiFiServer.  In their implementation it may make
sense, but on the 8266 with things like SSL it doesn't.

Update the docs to note that WiFiServer::write() is a no-op, and that
the app should use the WiFiCliebnt::write() on all connected clients as
appropriate.
mikee47 added a commit to mikee47/Sming that referenced this pull request Aug 29, 2019
mikee47 added a commit to mikee47/Sming that referenced this pull request Sep 5, 2019
… section conflicts

Thanks to esp8266/Arduino#5116

Commonly occurs when attempting to inline header methods, generally more of a problem with GCC 4.8.
mikee47 added a commit to mikee47/Sming that referenced this pull request Sep 5, 2019
… section conflicts

Thanks to esp8266/Arduino#5116

Commonly occurs when attempting to inline header methods, generally more of a problem with GCC 4.8.
slaff pushed a commit to SmingHub/Sming that referenced this pull request Sep 5, 2019
… section conflicts (#1829)

Thanks to esp8266/Arduino#5116

Commonly occurs when attempting to inline header methods, generally more of a problem with GCC 4.8.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants