RTOS_SDK V1.3 do not fit my code any more
-
- Posts: 14
- Joined: Sat Nov 29, 2014 5:03 am
RTOS_SDK V1.3 do not fit my code any more
Postby ivanroberto » Thu Nov 05, 2015 5:10 am
I have a code working very well on SDK RTOS V1.2.
When a try to update my enviroment to V1.3 I got that my code do not fit anymore.
I just add on my makefile -crypto (for new WPA library)
On SDK RTOS V1.2 was...
------------------------------------------------------------------------------
Section| Description| Start (hex)| End (hex)|Used space
------------------------------------------------------------------------------
data| Initialized Data (RAM)| 3FFE8000| 3FFE8C34| 3124
rodata| ReadOnly Data (RAM)| 3FFE8C40| 3FFE93F0| 1968
bss| Uninitialized Data (RAM)| 3FFE93F0| 3FFF0458| 28776
text| Uncached Code (IRAM)| 40100000| 401062B0| 25264
irom0_text| Cached Code (SPI)| 40240000| 4027A8D8| 239832
------------------------------------------------------------------------------
Entry Point : 40100004 call_user_start()
Total Used RAM : 33868
Free RAM : 48052
Free IRam : 7504 or 23888 if 48k IRam
------------------------------------------------------------------------------
Generate 0x00000.bin and 0x40000.bin successully in folder firmware.
0x00000.bin-------->0x00000
0x40000.bin-------->0x40000
Done
Now with SDK RTOS V1.3 is...
AR build/app_app.a
LD build/app.out
c:/espressif/xtensa-lx106-elf/bin/../lib/gcc/xtensa-lx106-elf/5.1.0/../../../../xtensa-lx106-elf/bin/ld.exe: build/app.out section `.irom0.text' will not fit in region `irom0_0_seg'
collect2.exe: error: ld returned 1 exit status
X:/ESP8266/workspace/Terminal_Wifi_TFT_RTOS/Makefile:228: recipe for target 'build/app.out' failed
mingw32-make.exe: *** [build/app.out] Error 1
I already tried modify the #define ICACHE_FLASH_ATTR on c_types.h to
#define ICACHE_FLASH_ATTR __attribute__((section(".irom0.text")))
But... still no luck.
If some one can help me...
Thanks
Re: RTOS_SDK V1.3 do not fit my code any more
Postby baoshi » Sat Nov 07, 2015 11:55 pm
I have some code compile successfully under V1.2 RTOS SDK. Here is the layout result:
Code: Select all
Section| Description| Start (hex)| End (hex)|Used space
------------------------------------------------------------------------------
data| Initialized Data (RAM)| 3FFE8000| 3FFE8484| 1156
rodata| ReadOnly Data (RAM)| 3FFE8490| 3FFE88F8| 1128
bss| Uninitialized Data (RAM)| 3FFE88F8| 3FFEF7D8| 28384
text| Cached Code (IRAM)| 40100000| 40105EB4| 24244
irom0_text| Uncached Code (SPI)| 40240000| 40272C4E| 207950
Total Used RAM : 30668
Free RAM : 51252
Free IRam : 8542
Now after upgrade to 1.3, I receive "section `.irom0.text' will not fit in region `irom0_0_seg'" error, either in Windows gcc, or Espressif linux VM image.
Please help.
Re: RTOS_SDK V1.3 do not fit my code any more
Postby kolban » Mon Nov 09, 2015 9:57 am
If you are willing to forgo OTA on a 512K board, then you can use all of the 512K of flash for your program. It may be that this is what you are running into. If you switch your configuration to use the whole set of 512K to store a single flash program, you may no longer have the linker error.
Re: RTOS_SDK V1.3 do not fit my code any more
Postby baoshi » Mon Nov 09, 2015 11:46 am
Re: RTOS_SDK V1.3 do not fit my code any more
Postby kolban » Mon Nov 09, 2015 11:52 am
How much flash does your ESP8266 actually have? What are your current values of irom0_0seg origin and length?
-
- Posts: 14
- Joined: Sat Nov 29, 2014 5:03 am
Re: RTOS_SDK V1.3 do not fit my code any more
Postby ivanroberto » Tue Nov 10, 2015 12:12 am
I tried to modify eagle.app.v6.ld, it link now, but my code doesn't works.
MEMORY
{
dport0_0_seg : org = 0x3FF00000, len = 0x10
dram0_0_seg : org = 0x3FFE8000, len = 0x18000
iram1_0_seg : org = 0x40100000, len = 0x8000
irom0_0_seg : org = 0x40240000, len = 0x4C000
}
Could you provide yours?
Thanks
Re: RTOS_SDK V1.3 do not fit my code any more
Postby kolban » Tue Nov 10, 2015 12:32 am
Code: Select all
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 = 0x7C000
}
Of course, this means that I have to load my code into 0x10000 in flash as opposed to 0x40000.
Who is online
Users browsing this forum: No registered users and 136 guests
Login
Newbies Start Here
Are you new to ESP8266?
Unsure what to do?
Dunno where to start?
Start right here!
Latest SDK
Documentation
Complete listing of the official ESP8266 related documentation release by ESPRESSIF!
Must read here!
- All times are UTC+08:00
- Top
- Delete all board cookies
About Us
Espressif Systems is a fabless semiconductor company providing cutting-edge low power WiFi SoCs and wireless solutions for wireless communications and Internet of Things applications. We are the manufacturer of ESP8266EX.