"`.text’ will not fit in region `iram1_0_seg’"
The I2C (Wire/twi) code itself increases the size of the .text1 segment from 0x7dec bytes to 0x8088 bytes in size, with much of the size seemingly taken up by one of my classes, "GaugeBase.cpp". Here is, I believe, the relevent section of the map file:
.text1 0x40100174 0x8088
*(.literal .text .iram.literal .iram.text .iram.text.* .literal.* .text.* .stub .gnu.warning .gnu.linkonce.literal.* .gnu.linkonce.t.*.literal .gnu.linkonce.t.*)
.iram.text.FastLED/platforms/esp/8266/clockless_esp8266.h.73.0
0x40100174 0x14c1 E:\Users\RayL\Documents\Arduino\Build\sketch\src\Gauge\GaugeBase.cpp.o
0x15fd (size before relaxing)
0x40100180 _ZN19ClocklessControllerILi8ELi20ELi50ELi30EL6EOrder66ELi0ELb0ELi50EE15showRGBInternalE15PixelControllerILS0_66ELi1ELj4294967295EE
0x401003c8 _ZN19ClocklessControllerILi7ELi20ELi50ELi30EL6EOrder66ELi0ELb0ELi50EE15showRGBInternalE15PixelControllerILS0_66ELi1ELj4294967295EE
0x40100610 _ZN19ClocklessControllerILi6ELi20ELi50ELi30EL6EOrder66ELi0ELb0ELi50EE15showRGBInternalE15PixelControllerILS0_66ELi1ELj4294967295EE
0x40100858 _ZN19ClocklessControllerILi5ELi20ELi50ELi30EL6EOrder66ELi0ELb0ELi50EE15showRGBInternalE15PixelControllerILS0_66ELi1ELj4294967295EE
0x40100a98 _ZN19ClocklessControllerILi4ELi20ELi50ELi30EL6EOrder66ELi0ELb0ELi50EE15showRGBInternalE15PixelControllerILS0_66ELi1ELj4294967295EE
0x40100cd4 _ZN19ClocklessControllerILi3ELi20ELi50ELi30EL6EOrder66ELi0ELb0ELi50EE15showRGBInternalE15PixelControllerILS0_66ELi1ELj4294967295EE
0x40100f10 _ZN19ClocklessControllerILi2ELi20ELi50ELi30EL6EOrder66ELi0ELb0ELi50EE15showRGBInternalE15PixelControllerILS0_66ELi1ELj4294967295EE
0x4010114c _ZN19ClocklessControllerILi1ELi20ELi50ELi30EL6EOrder66ELi0ELb0ELi50EE15showRGBInternalE15PixelControllerILS0_66ELi1ELj4294967295EE
0x40101394 _ZN19ClocklessControllerILi0ELi20ELi50ELi30EL6EOrder66ELi0ELb0ELi50EE15showRGBInternalE15PixelControllerILS0_66ELi1ELj4294967295EE
*fill* 0x40101635 0x3
I have no clue what to look for in that class to explain it's large iram usage. That class does not use any interrupts, and does nothing unusual - mostly serial I/O and parsing.
What should I be looking for? How do I reduce the iram usage?
Regards,
Ray L.