Thanks, I already have libm.a I compiled toolchain myself, I even tried the one you shared. But the problem is iram0 section getting overflowed > 0x8000 Which is the limit of ESP8266. I think simply compiling libm with application does not solve the problem. So I change the question... Is it possible to link libm.a symbols to irom0 section whereas rest of the section as it is.
I tried changing linker but nothing worked. I moved irom0.text to before .text section and added following:
Code: Select all
.irom0.text : ALIGN(4)
{
_irom0_text_start = ABSOLUTE(.);
*(.irom0.literal .irom.literal .irom.text.literal .irom0.text .irom.text)
*(libm.a)
*(libc.a)
*(libgcc.a)
_irom0_text_end = ABSOLUTE(.);
} >irom0_0_seg :irom0_0_phdr
This does work and move all the symbols from .text to irom0 but application does not work at all.
I then tried:
Code: Select all
.irom0.text : ALIGN(4)
{
_irom0_text_start = ABSOLUTE(.);
*(.irom0.literal .irom.literal .irom.text.literal .irom0.text .irom.text)
libm.a: *(.literal .text)
_irom0_text_end = ABSOLUTE(.);
} >irom0_0_seg :irom0_0_phdr
this did not work either.. so any suggestion to move libm to rom section??? anyone from Espressif team?
Regards,
Ajay