CHERTS / esp8266-devkit

Unofficial Development Kit for Espressif ESP8266
http://www.programs74.ru
GNU General Public License v3.0
261 stars 100 forks source link

Unable to link (`.text' will not fit in region `iram1_0_seg') #39

Closed bsculley closed 7 years ago

bsculley commented 7 years ago

In the current version of the SDK (2.1.1) I am unable to link a project [https://bitbucket.org/scargill/hackitt] that previously worked.

The error is: section .text' will not fit in regioniram1_0_seg'.

Any help in understanding what this means and how to troubleshoot it is appreciated. Especially understanding what items are included in the .text section and the relative space used by each item.

I'm running Windows 10 with Eclipse Neon as the IDE and the default eagle.app.v6.ld file located in C:\Espressif\ESP8266_SDK\ld.

CHERTS commented 7 years ago

You need to use ESP module with a large amount of flash memory.

bsculley commented 7 years ago

This is not about memory size on a particular hardware module.

I have not even gotten to the point of flashing the module, I’m just trying to link the executable.

I am using the default eagle.app.v6.ld file:

/ This linker script generated from xt-genldscripts.tpp for LSP . /

/ Linker Script for ld -N /

MEMORY

{

dport0_0_seg : org = 0x3FF00000, len = 0x10

dram0_0_seg : org = 0x3FFE8000, len = 0x14000

iram1_0_seg : org = 0x40100000, len = 0x8000

irom0_0_seg : org = 0x40210000, len = 0x5C000

}

PHDRS

{

dport0_0_phdr PT_LOAD;

dram0_0_phdr PT_LOAD;

dram0_0_bss_phdr PT_LOAD;

iram1_0_phdr PT_LOAD;

irom0_0_phdr PT_LOAD;

}

There is some issue here that needs to be resolved. I’m willing to work on it but have no idea what to do.

Thank you.

Bob

From: Mikhail Grigorev [mailto:notifications@github.com] Sent: Wednesday, February 22, 2017 12:01 AM To: CHERTS/esp8266-devkit esp8266-devkit@noreply.github.com Cc: bsculley bsculley@IntegratedSoftwareSvcs.com; Author author@noreply.github.com Subject: Re: [CHERTS/esp8266-devkit] Unable to link (.text' will not fit in regioniram1_0_seg') (#39)

You need to use ESP module with a large amount of flash memory.

— You are receiving this because you authored the thread. Reply to this email directly, view it on GitHub https://github.com/CHERTS/esp8266-devkit/issues/39#issuecomment-281596389 , or mute the thread https://github.com/notifications/unsubscribe-auth/AFN-MyCdugTjfot5j1m8VdJQ0tUhMyCyks5re-slgaJpZM4MHyQz . https://github.com/notifications/beacon/AFN-MxyDPI0ixqAB3LNvcN_pgAZ3-bb_ks5re-slgaJpZM4MHyQz.gif

valkuc commented 7 years ago

The error is telling you that you don't have enough space in IRAM segment. If you previously was compiling against SDK 1.5.x, in current UDK, SDK version 2.0.0 used as default, and this version use more IRAM for it's needs. Check your code and annotate all non-ISR methods with ICACHE_FLASH_ATTR - if not help, google it. This issue is well known and it's not related to UDK.

bsculley commented 7 years ago

Thanks for the response.

Just for clarity, and because I didn’t write the code I’m trying to compile, how can I distinguish an ISR method from any other?

Bob

From: Valeriy Kucherenko [mailto:notifications@github.com] Sent: Wednesday, February 22, 2017 5:02 AM To: CHERTS/esp8266-devkit esp8266-devkit@noreply.github.com Cc: bsculley bsculley@IntegratedSoftwareSvcs.com; Author author@noreply.github.com Subject: Re: [CHERTS/esp8266-devkit] Unable to link (.text' will not fit in regioniram1_0_seg') (#39)

The error is telling you that you don't have enough space in IRAM segment. If you previously was compiling against SDK 1.5.x, in new UDK SDK version 2.0.0 used as default and this version use more IRAM for it's needs. Check your code and annotate all non-ISR methods with ICACHE_FLASH_ATTR - if not help, google it. This issue is well known and it's not related to UDK.

— You are receiving this because you authored the thread. Reply to this email directly, view it on GitHub https://github.com/CHERTS/esp8266-devkit/issues/39#issuecomment-281662810 , or mute the thread https://github.com/notifications/unsubscribe-auth/AFN-MzslEDZD8XLivqkSGuBxOo_qh1uBks5rfDG2gaJpZM4MHyQz . https://github.com/notifications/beacon/AFN-MwRoFQxkKf1OofZfj6ewm0ViC67Vks5rfDG2gaJpZM4MHyQz.gif

valkuc commented 7 years ago

Well... ISR handlers are ISR handlers... This require knowledge of firmware you trying to build. I can give you only one clue - check for gpio_intr_handler_register - this is GPIO interrupt register handler.

bsculley commented 7 years ago

Ok, thanks. I think I can do that.

I appreciate your help.

Bob

From: Valeriy Kucherenko [mailto:notifications@github.com] Sent: Wednesday, February 22, 2017 5:13 AM To: CHERTS/esp8266-devkit esp8266-devkit@noreply.github.com Cc: bsculley bsculley@IntegratedSoftwareSvcs.com; Author author@noreply.github.com Subject: Re: [CHERTS/esp8266-devkit] Unable to link (.text' will not fit in regioniram1_0_seg') (#39)

Well... ISR handlers are ISR handlers... This require knowledge of firmware you trying to build. I can give you only one clue - check for gpio_intr_handler_register - this is GPIO interrupt register handler.

— You are receiving this because you authored the thread. Reply to this email directly, view it on GitHub https://github.com/CHERTS/esp8266-devkit/issues/39#issuecomment-281665267 , or mute the thread https://github.com/notifications/unsubscribe-auth/AFN-MzFpYitO1WRvAq3-2ebL4E3kQg_uks5rfDRigaJpZM4MHyQz . https://github.com/notifications/beacon/AFN-M2-NISG5HBlzCKKYQPYVhcMHMv8cks5rfDRigaJpZM4MHyQz.gif

valkuc commented 7 years ago

Fast look at firmware you trying to build I have noticed that the methods already have ICACHE_FLASH_ATTR attribute specified. You can also try to build against old SDK - just change SDK_BASE in makefile to point to ESP8266_SDK_1541 (of course you need to have this version)

bsculley commented 7 years ago

Great, can you point me to where I can download the 1541 version of the SDK?

Bob

From: Valeriy Kucherenko [mailto:notifications@github.com] Sent: Wednesday, February 22, 2017 5:17 AM To: CHERTS/esp8266-devkit esp8266-devkit@noreply.github.com Cc: bsculley bsculley@IntegratedSoftwareSvcs.com; Author author@noreply.github.com Subject: Re: [CHERTS/esp8266-devkit] Unable to link (.text' will not fit in regioniram1_0_seg') (#39)

Fast look at firmware you trying to build I have noticed that the methods already have ICACHE_FLASH_ATTR attribute specified. You can also try to build against old SDK - just change SDK_BASE in makefile to point to ESP8266_SDK_1541

— You are receiving this because you authored the thread. Reply to this email directly, view it on GitHub https://github.com/CHERTS/esp8266-devkit/issues/39#issuecomment-281666028 , or mute the thread https://github.com/notifications/unsubscribe-auth/AFN-M-QAuShYZbXCrq8xk_A-VqTR2apPks5rfDUugaJpZM4MHyQz . https://github.com/notifications/beacon/AFN-M_Yl-2vV7ORsAY1201iqMRNLCdsQks5rfDUugaJpZM4MHyQz.gif

valkuc commented 7 years ago

http://bbs.espressif.com/viewtopic.php?f=46&t=2198 http://bbs.espressif.com/viewtopic.php?f=46&t=2376

bsculley commented 7 years ago

Success!! The project builds without errors using this version of the SDK.

Thanks again,

Bob

From: Valeriy Kucherenko [mailto:notifications@github.com] Sent: Wednesday, February 22, 2017 5:57 AM To: CHERTS/esp8266-devkit esp8266-devkit@noreply.github.com Cc: bsculley bsculley@IntegratedSoftwareSvcs.com; Author author@noreply.github.com Subject: Re: [CHERTS/esp8266-devkit] Unable to link (.text' will not fit in regioniram1_0_seg') (#39)

http://bbs.espressif.com/viewtopic.php?f=46 http://bbs.espressif.com/viewtopic.php?f=46&t=2198 &t=2198 http://bbs.espressif.com/viewtopic.php?f=46 http://bbs.espressif.com/viewtopic.php?f=46&t=2376 &t=2376

— You are receiving this because you authored the thread. Reply to this email directly, view it on GitHub https://github.com/CHERTS/esp8266-devkit/issues/39#issuecomment-281675770 , or mute the thread https://github.com/notifications/unsubscribe-auth/AFN-M33X8dkSJ8NJlriQlaDGpW87k1_Tks5rfD6hgaJpZM4MHyQz . https://github.com/notifications/beacon/AFN-M5bIRLdBtH-prIQZD2fHT5lIk4ujks5rfD6hgaJpZM4MHyQz.gif

bsculley commented 7 years ago

Is it possible to know which code is included in the iram segment and the size of each module?

I would like to use the current SDK, but have no way to know by how much the limit is exceeded or which modules might be optimized or eliminated to fit.

Bob

From: Valeriy Kucherenko [mailto:notifications@github.com] Sent: Wednesday, February 22, 2017 5:57 AM To: CHERTS/esp8266-devkit esp8266-devkit@noreply.github.com Cc: bsculley bsculley@IntegratedSoftwareSvcs.com; Author author@noreply.github.com Subject: Re: [CHERTS/esp8266-devkit] Unable to link (.text' will not fit in regioniram1_0_seg') (#39)

http://bbs.espressif.com/viewtopic.php?f=46 http://bbs.espressif.com/viewtopic.php?f=46&t=2198 &t=2198 http://bbs.espressif.com/viewtopic.php?f=46 http://bbs.espressif.com/viewtopic.php?f=46&t=2376 &t=2376

— You are receiving this because you authored the thread. Reply to this email directly, view it on GitHub https://github.com/CHERTS/esp8266-devkit/issues/39#issuecomment-281675770 , or mute the thread https://github.com/notifications/unsubscribe-auth/AFN-M33X8dkSJ8NJlriQlaDGpW87k1_Tks5rfD6hgaJpZM4MHyQz . https://github.com/notifications/beacon/AFN-M5bIRLdBtH-prIQZD2fHT5lIk4ujks5rfD6hgaJpZM4MHyQz.gif

bsculley commented 7 years ago

Ok, optimisation – I’m sure of it…

The older versions of the SDK use up less room – actually 1.5 onwards is pretty much ok, but there’s still room left depending on the optimisation and the setting I think of that Eagle file.

From: Bob Sculley [mailto:bsculley@IntegratedSoftwareSvcs.com] Sent: 22 February 2017 14:11 To: 'CHERTS/esp8266-devkit' reply@reply.github.com Cc: pete@scargill.org Subject: RE: [CHERTS/esp8266-devkit] Unable to link (.text' will not fit in regioniram1_0_seg') (#39)

Success!! The project builds without errors using this version of the SDK.

Thanks again,

Bob

From: Valeriy Kucherenko [mailto:notifications@github.com] Sent: Wednesday, February 22, 2017 5:57 AM To: CHERTS/esp8266-devkit <esp8266-devkit@noreply.github.com mailto:esp8266-devkit@noreply.github.com > Cc: bsculley <bsculley@IntegratedSoftwareSvcs.com mailto:bsculley@IntegratedSoftwareSvcs.com >; Author <author@noreply.github.com mailto:author@noreply.github.com > Subject: Re: [CHERTS/esp8266-devkit] Unable to link (.text' will not fit in regioniram1_0_seg') (#39)

http://bbs.espressif.com/viewtopic.php?f=46 http://bbs.espressif.com/viewtopic.php?f=46&t=2198 &t=2198 http://bbs.espressif.com/viewtopic.php?f=46 http://bbs.espressif.com/viewtopic.php?f=46&t=2376 &t=2376

— You are receiving this because you authored the thread. Reply to this email directly, view it on GitHub https://github.com/CHERTS/esp8266-devkit/issues/39#issuecomment-281675770 , or mute the thread https://github.com/notifications/unsubscribe-auth/AFN-M33X8dkSJ8NJlriQlaDGpW87k1_Tks5rfD6hgaJpZM4MHyQz . https://github.com/notifications/beacon/AFN-M5bIRLdBtH-prIQZD2fHT5lIk4ujks5rfD6hgaJpZM4MHyQz.gif