Skip to content
Discussion options

You must be logged in to vote

@benoitLecuppe

This is a bit subtle... esp8266_common.ld will place anything by default into iram1_0_seg. However there are a list of specific object files above that are explicitly placed in irom0_0_seg. (This includes hspi.o but does not include esppwm.o).

So ICACHE_FLASH_ATTR is used explicitly in esppwm.c to place certain functions into .irom0.text (i.e. irom0_0_seg) because by default everything in that file is going into iram1_0_seg. When you undefine that macro, everything in that file now goes to iram1_0_seg, overflowing it.

Replies: 2 comments 1 reply

Comment options

You must be logged in to vote
0 replies
Answer selected by benoitLecuppe
Comment options

You must be logged in to vote
1 reply
@jimmo
Comment options

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
2 participants