IDF release/v3.3 (#3339)

* IDF release/v3.3 46b12a560

* fix build

* IDF release/v3.3 367c3c09c
This commit is contained in:
Me No Dev
2020-01-20 22:07:04 +02:00
committed by GitHub
parent 307b1368dd
commit 1977370e6f
282 changed files with 13004 additions and 4377 deletions

View File

@ -1,343 +0,0 @@
/* Default entry point: */
ENTRY(call_start_cpu0);
SECTIONS
{
/* RTC fast memory holds RTC wake stub code,
including from any source file named rtc_wake_stub*.c
*/
.rtc.text :
{
. = ALIGN(4);
*(.rtc.literal .rtc.text)
*rtc_wake_stub*.*(.literal .text .literal.* .text.*)
_rtc_text_end = ABSOLUTE(.);
} > rtc_iram_seg
/*
This section is required to skip rtc.text area because rtc_iram_seg and
rtc_data_seg are reflect the same address space on different buses.
*/
.rtc.dummy :
{
_rtc_dummy_start = ABSOLUTE(.);
_rtc_fast_start = ABSOLUTE(.);
. = SIZEOF(.rtc.text);
_rtc_dummy_end = ABSOLUTE(.);
} > rtc_data_seg
/* This section located in RTC FAST Memory area.
It holds data marked with RTC_FAST_ATTR attribute.
See the file "esp_attr.h" for more information.
*/
.rtc.force_fast :
{
. = ALIGN(4);
_rtc_force_fast_start = ABSOLUTE(.);
*(.rtc.force_fast .rtc.force_fast.*)
. = ALIGN(4) ;
_rtc_force_fast_end = ABSOLUTE(.);
} > rtc_data_seg
/* RTC data section holds RTC wake stub
data/rodata, including from any source file
named rtc_wake_stub*.c and the data marked with
RTC_DATA_ATTR, RTC_RODATA_ATTR attributes.
The memory location of the data is dependent on
CONFIG_ESP32_RTCDATA_IN_FAST_MEM option.
*/
.rtc.data :
{
_rtc_data_start = ABSOLUTE(.);
*(.rtc.data)
*(.rtc.rodata)
*rtc_wake_stub*.*(.data .rodata .data.* .rodata.* .bss .bss.*)
_rtc_data_end = ABSOLUTE(.);
} > rtc_data_location
/* RTC bss, from any source file named rtc_wake_stub*.c */
.rtc.bss (NOLOAD) :
{
_rtc_bss_start = ABSOLUTE(.);
*rtc_wake_stub*.*(.bss .bss.*)
*rtc_wake_stub*.*(COMMON)
*(.rtc.bss)
_rtc_bss_end = ABSOLUTE(.);
} > rtc_data_location
/* This section holds data that should not be initialized at power up
and will be retained during deep sleep.
User data marked with RTC_NOINIT_ATTR will be placed
into this section. See the file "esp_attr.h" for more information.
The memory location of the data is dependent on
CONFIG_ESP32_RTCDATA_IN_FAST_MEM option.
*/
.rtc_noinit (NOLOAD):
{
. = ALIGN(4);
_rtc_noinit_start = ABSOLUTE(.);
*(.rtc_noinit .rtc_noinit.*)
. = ALIGN(4) ;
_rtc_noinit_end = ABSOLUTE(.);
} > rtc_data_location
/* This section located in RTC SLOW Memory area.
It holds data marked with RTC_SLOW_ATTR attribute.
See the file "esp_attr.h" for more information.
*/
.rtc.force_slow :
{
. = ALIGN(4);
_rtc_force_slow_start = ABSOLUTE(.);
*(.rtc.force_slow .rtc.force_slow.*)
. = ALIGN(4) ;
_rtc_force_slow_end = ABSOLUTE(.);
} > rtc_slow_seg
/* Get size of rtc slow data based on rtc_data_location alias */
_rtc_slow_length = (ORIGIN(rtc_slow_seg) == ORIGIN(rtc_data_location))
? (_rtc_force_slow_end - _rtc_data_start)
: (_rtc_force_slow_end - _rtc_force_slow_start);
_rtc_fast_length = (ORIGIN(rtc_slow_seg) == ORIGIN(rtc_data_location))
? (_rtc_force_fast_end - _rtc_fast_start)
: (_rtc_noinit_end - _rtc_fast_start);
ASSERT((_rtc_slow_length <= LENGTH(rtc_slow_seg)),
"RTC_SLOW segment data does not fit.")
ASSERT((_rtc_fast_length <= LENGTH(rtc_data_seg)),
"RTC_FAST segment data does not fit.")
/* Send .iram0 code to iram */
.iram0.vectors :
{
_iram_start = ABSOLUTE(.);
/* Vectors go to IRAM */
_init_start = ABSOLUTE(.);
/* Vectors according to builds/RF-2015.2-win32/esp108_v1_2_s5_512int_2/config.html */
. = 0x0;
KEEP(*(.WindowVectors.text));
. = 0x180;
KEEP(*(.Level2InterruptVector.text));
. = 0x1c0;
KEEP(*(.Level3InterruptVector.text));
. = 0x200;
KEEP(*(.Level4InterruptVector.text));
. = 0x240;
KEEP(*(.Level5InterruptVector.text));
. = 0x280;
KEEP(*(.DebugExceptionVector.text));
. = 0x2c0;
KEEP(*(.NMIExceptionVector.text));
. = 0x300;
KEEP(*(.KernelExceptionVector.text));
. = 0x340;
KEEP(*(.UserExceptionVector.text));
. = 0x3C0;
KEEP(*(.DoubleExceptionVector.text));
. = 0x400;
*(.*Vector.literal)
*(.UserEnter.literal);
*(.UserEnter.text);
. = ALIGN (16);
*(.entry.text)
*(.init.literal)
*(.init)
_init_end = ABSOLUTE(.);
} > iram0_0_seg
.iram0.text :
{
/* Code marked as runnning out of IRAM */
_iram_text_start = ABSOLUTE(.);
*(.iram1 .iram1.*)
*libesp_ringbuf.a:(.literal .text .literal.* .text.*)
*libfreertos.a:(.literal .text .literal.* .text.*)
*libheap.a:multi_heap.*(.literal .text .literal.* .text.*)
*libheap.a:multi_heap_poisoning.*(.literal .text .literal.* .text.*)
*libesp32.a:panic.*(.literal .text .literal.* .text.*)
*libesp32.a:core_dump.*(.literal .text .literal.* .text.*)
INCLUDE wifi_iram.ld
*libapp_trace.a:(.literal .text .literal.* .text.*)
*libxtensa-debug-module.a:eri.*(.literal .text .literal.* .text.*)
*librtc.a:(.literal .text .literal.* .text.*)
*libsoc.a:rtc_*.*(.literal .text .literal.* .text.*)
*libsoc.a:cpu_util.*(.literal .text .literal.* .text.*)
*libhal.a:(.literal .text .literal.* .text.*)
*libgcc.a:lib2funcs.*(.literal .text .literal.* .text.*)
*libspi_flash.a:spi_flash_rom_patch.*(.literal .text .literal.* .text.*)
*libgcov.a:(.literal .text .literal.* .text.*)
INCLUDE esp32.spiram.rom-functions-iram.ld
_iram_text_end = ABSOLUTE(.);
_iram_end = ABSOLUTE(.);
} > iram0_0_seg
ASSERT(((_iram_text_end - ORIGIN(iram0_0_seg)) <= LENGTH(iram0_0_seg)),
"IRAM0 segment data does not fit.")
.dram0.data :
{
_data_start = ABSOLUTE(.);
_bt_data_start = ABSOLUTE(.);
*libbt.a:(.data .data.*)
. = ALIGN (4);
_bt_data_end = ABSOLUTE(.);
_btdm_data_start = ABSOLUTE(.);
*libbtdm_app.a:(.data .data.*)
. = ALIGN (4);
_btdm_data_end = ABSOLUTE(.);
*(.data)
*(.data.*)
*(.gnu.linkonce.d.*)
*(.data1)
*(.sdata)
*(.sdata.*)
*(.gnu.linkonce.s.*)
*(.sdata2)
*(.sdata2.*)
*(.gnu.linkonce.s2.*)
*(.jcr)
*(.dram1 .dram1.*)
*libesp32.a:panic.*(.rodata .rodata.*)
*libphy.a:(.rodata .rodata.*)
*libsoc.a:rtc_clk.*(.rodata .rodata.*)
*libapp_trace.a:(.rodata .rodata.*)
*libgcov.a:(.rodata .rodata.*)
*libheap.a:multi_heap.*(.rodata .rodata.*)
*libheap.a:multi_heap_poisoning.*(.rodata .rodata.*)
INCLUDE esp32.spiram.rom-functions-dram.ld
_data_end = ABSOLUTE(.);
. = ALIGN(4);
} > dram0_0_seg
/*This section holds data that should not be initialized at power up.
The section located in Internal SRAM memory region. The macro _NOINIT
can be used as attribute to place data into this section.
See the esp_attr.h file for more information.
*/
.noinit (NOLOAD):
{
. = ALIGN(4);
_noinit_start = ABSOLUTE(.);
*(.noinit .noinit.*)
. = ALIGN(4) ;
_noinit_end = ABSOLUTE(.);
} > dram0_0_seg
/* Shared RAM */
.dram0.bss (NOLOAD) :
{
. = ALIGN (8);
_bss_start = ABSOLUTE(.);
*(.ext_ram.bss*)
_bt_bss_start = ABSOLUTE(.);
*libbt.a:(.bss .bss.* COMMON)
. = ALIGN (4);
_bt_bss_end = ABSOLUTE(.);
_btdm_bss_start = ABSOLUTE(.);
*libbtdm_app.a:(.bss .bss.* COMMON)
. = ALIGN (4);
_btdm_bss_end = ABSOLUTE(.);
*(.dynsbss)
*(.sbss)
*(.sbss.*)
*(.gnu.linkonce.sb.*)
*(.scommon)
*(.sbss2)
*(.sbss2.*)
*(.gnu.linkonce.sb2.*)
*(.dynbss)
*(.bss)
*(.bss.*)
*(.share.mem)
*(.gnu.linkonce.b.*)
*(COMMON)
. = ALIGN (8);
_bss_end = ABSOLUTE(.);
/* The heap starts right after end of this section */
_heap_start = ABSOLUTE(.);
} > dram0_0_seg
ASSERT(((_bss_end - ORIGIN(dram0_0_seg)) <= LENGTH(dram0_0_seg)),
"DRAM segment data does not fit.")
.flash.rodata :
{
_rodata_start = ABSOLUTE(.);
*(.rodata)
*(.rodata.*)
*(.irom1.text) /* catch stray ICACHE_RODATA_ATTR */
*(.gnu.linkonce.r.*)
*(.rodata1)
__XT_EXCEPTION_TABLE_ = ABSOLUTE(.);
*(.xt_except_table)
*(.gcc_except_table .gcc_except_table.*)
*(.gnu.linkonce.e.*)
*(.gnu.version_r)
. = (. + 3) & ~ 3;
__eh_frame = ABSOLUTE(.);
KEEP(*(.eh_frame))
. = (. + 7) & ~ 3;
/* C++ constructor and destructor tables, properly ordered: */
__init_array_start = ABSOLUTE(.);
KEEP (*crtbegin.*(.ctors))
KEEP (*(EXCLUDE_FILE (*crtend.*) .ctors))
KEEP (*(SORT(.ctors.*)))
KEEP (*(.ctors))
__init_array_end = ABSOLUTE(.);
KEEP (*crtbegin.*(.dtors))
KEEP (*(EXCLUDE_FILE (*crtend.*) .dtors))
KEEP (*(SORT(.dtors.*)))
KEEP (*(.dtors))
/* C++ exception handlers table: */
__XT_EXCEPTION_DESCS_ = ABSOLUTE(.);
*(.xt_except_desc)
*(.gnu.linkonce.h.*)
__XT_EXCEPTION_DESCS_END__ = ABSOLUTE(.);
*(.xt_except_desc_end)
*(.dynamic)
*(.gnu.version_d)
/* Addresses of memory regions reserved via
SOC_RESERVE_MEMORY_REGION() */
soc_reserved_memory_region_start = ABSOLUTE(.);
KEEP (*(.reserved_memory_address))
soc_reserved_memory_region_end = ABSOLUTE(.);
_rodata_end = ABSOLUTE(.);
/* Literals are also RO data. */
_lit4_start = ABSOLUTE(.);
*(*.lit4)
*(.lit4.*)
*(.gnu.linkonce.lit4.*)
_lit4_end = ABSOLUTE(.);
. = ALIGN(4);
_thread_local_start = ABSOLUTE(.);
*(.tdata)
*(.tdata.*)
*(.tbss)
*(.tbss.*)
_thread_local_end = ABSOLUTE(.);
. = ALIGN(4);
} >drom0_0_seg
.flash.text :
{
_stext = .;
_text_start = ABSOLUTE(.);
*(.literal .text .literal.* .text.* .stub .gnu.warning .gnu.linkonce.literal.* .gnu.linkonce.t.*.literal .gnu.linkonce.t.*)
*(.irom0.text) /* catch stray ICACHE_RODATA_ATTR */
*(.wifi0iram .wifi0iram.*) /* catch stray WIFI_IRAM_ATTR */
*(.fini.literal)
*(.fini)
*(.gnu.version)
_text_end = ABSOLUTE(.);
_etext = .;
/* Similar to _iram_start, this symbol goes here so it is
resolved by addr2line in preference to the first symbol in
the flash.text segment.
*/
_flash_cache_start = ABSOLUTE(0);
} >iram0_2_seg
}

View File

@ -3,7 +3,7 @@
This file describes the memory layout (memory blocks) as virtual
memory addresses.
esp32.common.ld contains output sections to link compiler output
esp32.project.ld contains output sections to link compiler output
into these memory blocks.
***

File diff suppressed because one or more lines are too long

View File

@ -1,143 +0,0 @@
/*
If the Newlib functions in ROM aren't used (eg because the external SPI RAM workaround is active), these functions will
be linked into the application directly instead. Normally, they would end up in flash, which is undesirable because esp-idf
and/or applications may assume that because these functions normally are in ROM, they are accessible even when flash is
inaccessible. To work around this, this ld fragment places these functions in RAM instead. If the ROM functions are used,
these defines do nothing, so they can still be included in that situation.
This file is responsible for placing the rodata segment in DRAM.
*/
*libc-psram-workaround.a:*lib_a-utoa.o(.rodata .rodata.*)
*libc-psram-workaround.a:*lib_a-longjmp.o(.rodata .rodata.*)
*libc-psram-workaround.a:*lib_a-setjmp.o(.rodata .rodata.*)
*libc-psram-workaround.a:*lib_a-abs.o(.rodata .rodata.*)
*libc-psram-workaround.a:*lib_a-div.o(.rodata .rodata.*)
*libc-psram-workaround.a:*lib_a-labs.o(.rodata .rodata.*)
*libc-psram-workaround.a:*lib_a-ldiv.o(.rodata .rodata.*)
*libc-psram-workaround.a:*lib_a-quorem.o(.rodata .rodata.*)
*libc-psram-workaround.a:*lib_a-qsort.o(.rodata .rodata.*)
*libc-psram-workaround.a:*lib_a-utoa.o(.rodata .rodata.*)
*libc-psram-workaround.a:*lib_a-itoa.o(.rodata .rodata.*)
*libc-psram-workaround.a:*lib_a-atoi.o(.rodata .rodata.*)
*libc-psram-workaround.a:*lib_a-atol.o(.rodata .rodata.*)
*libc-psram-workaround.a:*lib_a-strtol.o(.rodata .rodata.*)
*libc-psram-workaround.a:*lib_a-strtoul.o(.rodata .rodata.*)
*libc-psram-workaround.a:*lib_a-wcrtomb.o(.rodata .rodata.*)
*libc-psram-workaround.a:*lib_a-fvwrite.o(.rodata .rodata.*)
*libc-psram-workaround.a:*lib_a-wbuf.o(.rodata .rodata.*)
*libc-psram-workaround.a:*lib_a-wsetup.o(.rodata .rodata.*)
*libc-psram-workaround.a:*lib_a-fputwc.o(.rodata .rodata.*)
*libc-psram-workaround.a:*lib_a-wctomb_r.o(.rodata .rodata.*)
*libc-psram-workaround.a:*lib_a-ungetc.o(.rodata .rodata.*)
*libc-psram-workaround.a:*lib_a-makebuf.o(.rodata .rodata.*)
*libc-psram-workaround.a:*lib_a-fflush.o(.rodata .rodata.*)
*libc-psram-workaround.a:*lib_a-refill.o(.rodata .rodata.*)
*libc-psram-workaround.a:*lib_a-s_fpclassify.o(.rodata .rodata.*)
*libc-psram-workaround.a:*lib_a-locale.o(.rodata .rodata.*)
*libc-psram-workaround.a:*lib_a-asctime.o(.rodata .rodata.*)
*libc-psram-workaround.a:*lib_a-ctime.o(.rodata .rodata.*)
*libc-psram-workaround.a:*lib_a-ctime_r.o(.rodata .rodata.*)
*libc-psram-workaround.a:*lib_a-lcltime.o(.rodata .rodata.*)
*libc-psram-workaround.a:*lib_a-lcltime_r.o(.rodata .rodata.*)
*libc-psram-workaround.a:*lib_a-gmtime.o(.rodata .rodata.*)
*libc-psram-workaround.a:*lib_a-gmtime_r.o(.rodata .rodata.*)
*libc-psram-workaround.a:*lib_a-strftime.o(.rodata .rodata.*)
*libc-psram-workaround.a:*lib_a-mktime.o(.rodata .rodata.*)
*libc-psram-workaround.a:*lib_a-syswrite.o(.rodata .rodata.*)
*libc-psram-workaround.a:*lib_a-tzset_r.o(.rodata .rodata.*)
*libc-psram-workaround.a:*lib_a-tzset.o(.rodata .rodata.*)
*libc-psram-workaround.a:*lib_a-toupper.o(.rodata .rodata.*)
*libc-psram-workaround.a:*lib_a-tolower.o(.rodata .rodata.*)
*libc-psram-workaround.a:*lib_a-toascii.o(.rodata .rodata.*)
*libc-psram-workaround.a:*lib_a-systimes.o(.rodata .rodata.*)
*libc-psram-workaround.a:*lib_a-time.o(.rodata .rodata.*)
*libc-psram-workaround.a:*lib_a-bsd_qsort_r.o(.rodata .rodata.*)
*libc-psram-workaround.a:*lib_a-qsort_r.o(.rodata .rodata.*)
*libc-psram-workaround.a:*lib_a-gettzinfo.o(.rodata .rodata.*)
*libc-psram-workaround.a:*lib_a-strupr.o(.rodata .rodata.*)
*libc-psram-workaround.a:*lib_a-asctime_r.o(.rodata .rodata.*)
*libc-psram-workaround.a:*lib_a-bzero.o(.rodata .rodata.*)
*libc-psram-workaround.a:*lib_a-close.o(.rodata .rodata.*)
*libc-psram-workaround.a:*lib_a-creat.o(.rodata .rodata.*)
*libc-psram-workaround.a:*lib_a-environ.o(.rodata .rodata.*)
*libc-psram-workaround.a:*lib_a-fclose.o(.rodata .rodata.*)
*libc-psram-workaround.a:*lib_a-isalnum.o(.rodata .rodata.*)
*libc-psram-workaround.a:*lib_a-isalpha.o(.rodata .rodata.*)
*libc-psram-workaround.a:*lib_a-isascii.o(.rodata .rodata.*)
*libc-psram-workaround.a:*lib_a-isblank.o(.rodata .rodata.*)
*libc-psram-workaround.a:*lib_a-iscntrl.o(.rodata .rodata.*)
*libc-psram-workaround.a:*lib_a-isdigit.o(.rodata .rodata.*)
*libc-psram-workaround.a:*lib_a-isgraph.o(.rodata .rodata.*)
*libc-psram-workaround.a:*lib_a-islower.o(.rodata .rodata.*)
*libc-psram-workaround.a:*lib_a-isprint.o(.rodata .rodata.*)
*libc-psram-workaround.a:*lib_a-ispunct.o(.rodata .rodata.*)
*libc-psram-workaround.a:*lib_a-isspace.o(.rodata .rodata.*)
*libc-psram-workaround.a:*lib_a-isupper.o(.rodata .rodata.*)
*libc-psram-workaround.a:*lib_a-memccpy.o(.rodata .rodata.*)
*libc-psram-workaround.a:*lib_a-memchr.o(.rodata .rodata.*)
*libc-psram-workaround.a:*lib_a-memcmp.o(.rodata .rodata.*)
*libc-psram-workaround.a:*lib_a-memcpy.o(.rodata .rodata.*)
*libc-psram-workaround.a:*lib_a-memmove.o(.rodata .rodata.*)
*libc-psram-workaround.a:*lib_a-memrchr.o(.rodata .rodata.*)
*libc-psram-workaround.a:*lib_a-memset.o(.rodata .rodata.*)
*libc-psram-workaround.a:*lib_a-open.o(.rodata .rodata.*)
*libc-psram-workaround.a:*lib_a-rand.o(.rodata .rodata.*)
*libc-psram-workaround.a:*lib_a-rand_r.o(.rodata .rodata.*)
*libc-psram-workaround.a:*lib_a-read.o(.rodata .rodata.*)
*libc-psram-workaround.a:*lib_a-rshift.o(.rodata .rodata.*)
*libc-psram-workaround.a:*lib_a-sbrk.o(.rodata .rodata.*)
*libc-psram-workaround.a:*lib_a-srand.o(.rodata .rodata.*)
*libc-psram-workaround.a:*lib_a-strcasecmp.o(.rodata .rodata.*)
*libc-psram-workaround.a:*lib_a-strcasestr.o(.rodata .rodata.*)
*libc-psram-workaround.a:*lib_a-strcat.o(.rodata .rodata.*)
*libc-psram-workaround.a:*lib_a-strchr.o(.rodata .rodata.*)
*libc-psram-workaround.a:*lib_a-strcmp.o(.rodata .rodata.*)
*libc-psram-workaround.a:*lib_a-strcoll.o(.rodata .rodata.*)
*libc-psram-workaround.a:*lib_a-strcpy.o(.rodata .rodata.*)
*libc-psram-workaround.a:*lib_a-strcspn.o(.rodata .rodata.*)
*libc-psram-workaround.a:*lib_a-strdup.o(.rodata .rodata.*)
*libc-psram-workaround.a:*lib_a-strlcat.o(.rodata .rodata.*)
*libc-psram-workaround.a:*lib_a-strlcpy.o(.rodata .rodata.*)
*libc-psram-workaround.a:*lib_a-strlen.o(.rodata .rodata.*)
*libc-psram-workaround.a:*lib_a-strlwr.o(.rodata .rodata.*)
*libc-psram-workaround.a:*lib_a-strncasecmp.o(.rodata .rodata.*)
*libc-psram-workaround.a:*lib_a-strncat.o(.rodata .rodata.*)
*libc-psram-workaround.a:*lib_a-strncmp.o(.rodata .rodata.*)
*libc-psram-workaround.a:*lib_a-strncpy.o(.rodata .rodata.*)
*libc-psram-workaround.a:*lib_a-strndup.o(.rodata .rodata.*)
*libc-psram-workaround.a:*lib_a-strnlen.o(.rodata .rodata.*)
*libc-psram-workaround.a:*lib_a-strrchr.o(.rodata .rodata.*)
*libc-psram-workaround.a:*lib_a-strsep.o(.rodata .rodata.*)
*libc-psram-workaround.a:*lib_a-strspn.o(.rodata .rodata.*)
*libc-psram-workaround.a:*lib_a-strstr.o(.rodata .rodata.*)
*libc-psram-workaround.a:*lib_a-strtok_r.o(.rodata .rodata.*)
*libc-psram-workaround.a:*lib_a-strupr.o(.rodata .rodata.*)
*libc-psram-workaround.a:*lib_a-stdio.o(.rodata .rodata.*)
*libc-psram-workaround.a:*lib_a-syssbrk.o(.rodata .rodata.*)
*libc-psram-workaround.a:*lib_a-sysclose.o(.rodata .rodata.*)
*libc-psram-workaround.a:*lib_a-sysopen.o(.rodata .rodata.*)
*libc-psram-workaround.a:*creat.o(.rodata .rodata.*)
*libc-psram-workaround.a:*lib_a-sysread.o(.rodata .rodata.*)
*libc-psram-workaround.a:*lib_a-syswrite.o(.rodata .rodata.*)
*libc-psram-workaround.a:*lib_a-impure.o(.rodata .rodata.*)
*libc-psram-workaround.a:*lib_a-tzvars.o(.rodata .rodata.*)
*libc-psram-workaround.a:*lib_a-sf_nan.o(.rodata .rodata.*)
*libc-psram-workaround.a:*lib_a-tzcalc_limits.o(.rodata .rodata.*)
*libc-psram-workaround.a:*lib_a-month_lengths.o(.rodata .rodata.*)
*libc-psram-workaround.a:*lib_a-timelocal.o(.rodata .rodata.*)
*libc-psram-workaround.a:*lib_a-findfp.o(.rodata .rodata.*)
*libc-psram-workaround.a:*lock.o(.rodata .rodata.*)
*libc-psram-workaround.a:*lib_a-getenv_r.o(.rodata .rodata.*)
*libc-psram-workaround.a:*isatty.o(.rodata .rodata.*)
*libc-psram-workaround.a:*lib_a-fwalk.o(.rodata .rodata.*)
*libc-psram-workaround.a:*lib_a-getenv_r.o(.rodata .rodata.*)
*libc-psram-workaround.a:*lib_a-tzlock.o(.rodata .rodata.*)
*libc-psram-workaround.a:*lib_a-ctype_.o(.rodata .rodata.*)
*libc-psram-workaround.a:*lib_a-sccl.o(.rodata .rodata.*)
*libc-psram-workaround.a:*lib_a-strptime.o(.rodata .rodata.*)
*libc-psram-workaround.a:*lib_a-envlock.o(.rodata .rodata.*)
*libc-psram-workaround.a:*lib_a-raise.o(.rodata .rodata.*)
*libc-psram-workaround.a:*lib_a-strdup_r.o(.rodata .rodata.*)
*libc-psram-workaround.a:*lib_a-system.o(.rodata .rodata.*)
*libc-psram-workaround.a:*lib_a-strndup_r.o(.rodata .rodata.*)

View File

@ -1,140 +0,0 @@
/*
If the Newlib functions in ROM aren't used (eg because the external SPI RAM workaround is active), these functions will
be linked into the application directly instead. Normally, they would end up in flash, which is undesirable because esp-idf
and/or applications may assume that because these functions normally are in ROM, they are accessible even when flash is
inaccessible. To work around this, this ld fragment places these functions in RAM instead. If the ROM functions are used,
these defines do nothing, so they can still be included in that situation.
This file is responsible for placing the literal and text segments in IRAM.
*/
*libc-psram-workaround.a:*lib_a-utoa.o(.literal .text .literal.* .text.*)
*libc-psram-workaround.a:*lib_a-longjmp.o(.literal .text .literal.* .text.*)
*libc-psram-workaround.a:*lib_a-setjmp.o(.literal .text .literal.* .text.*)
*libc-psram-workaround.a:*lib_a-abs.o(.literal .text .literal.* .text.*)
*libc-psram-workaround.a:*lib_a-div.o(.literal .text .literal.* .text.*)
*libc-psram-workaround.a:*lib_a-labs.o(.literal .text .literal.* .text.*)
*libc-psram-workaround.a:*lib_a-ldiv.o(.literal .text .literal.* .text.*)
*libc-psram-workaround.a:*lib_a-quorem.o(.literal .text .literal.* .text.*)
*libc-psram-workaround.a:*lib_a-utoa.o(.literal .text .literal.* .text.*)
*libc-psram-workaround.a:*lib_a-itoa.o(.literal .text .literal.* .text.*)
*libc-psram-workaround.a:*lib_a-atoi.o(.literal .text .literal.* .text.*)
*libc-psram-workaround.a:*lib_a-atol.o(.literal .text .literal.* .text.*)
*libc-psram-workaround.a:*lib_a-strtol.o(.literal .text .literal.* .text.*)
*libc-psram-workaround.a:*lib_a-strtoul.o(.literal .text .literal.* .text.*)
*libc-psram-workaround.a:*lib_a-wcrtomb.o(.literal .text .literal.* .text.*)
*libc-psram-workaround.a:*lib_a-fvwrite.o(.literal .text .literal.* .text.*)
*libc-psram-workaround.a:*lib_a-wbuf.o(.literal .text .literal.* .text.*)
*libc-psram-workaround.a:*lib_a-wsetup.o(.literal .text .literal.* .text.*)
*libc-psram-workaround.a:*lib_a-fputwc.o(.literal .text .literal.* .text.*)
*libc-psram-workaround.a:*lib_a-wctomb_r.o(.literal .text .literal.* .text.*)
*libc-psram-workaround.a:*lib_a-ungetc.o(.literal .text .literal.* .text.*)
*libc-psram-workaround.a:*lib_a-makebuf.o(.literal .text .literal.* .text.*)
*libc-psram-workaround.a:*lib_a-fflush.o(.literal .text .literal.* .text.*)
*libc-psram-workaround.a:*lib_a-refill.o(.literal .text .literal.* .text.*)
*libc-psram-workaround.a:*lib_a-s_fpclassify.o(.literal .text .literal.* .text.*)
*libc-psram-workaround.a:*lib_a-asctime.o(.literal .text .literal.* .text.*)
*libc-psram-workaround.a:*lib_a-ctime.o(.literal .text .literal.* .text.*)
*libc-psram-workaround.a:*lib_a-ctime_r.o(.literal .text .literal.* .text.*)
*libc-psram-workaround.a:*lib_a-lcltime.o(.literal .text .literal.* .text.*)
*libc-psram-workaround.a:*lib_a-lcltime_r.o(.literal .text .literal.* .text.*)
*libc-psram-workaround.a:*lib_a-gmtime.o(.literal .text .literal.* .text.*)
*libc-psram-workaround.a:*lib_a-gmtime_r.o(.literal .text .literal.* .text.*)
*libc-psram-workaround.a:*lib_a-strftime.o(.literal .text .literal.* .text.*)
*libc-psram-workaround.a:*lib_a-mktime.o(.literal .text .literal.* .text.*)
*libc-psram-workaround.a:*lib_a-syswrite.o(.literal .text .literal.* .text.*)
*libc-psram-workaround.a:*lib_a-tzset_r.o(.literal .text .literal.* .text.*)
*libc-psram-workaround.a:*lib_a-tzset.o(.literal .text .literal.* .text.*)
*libc-psram-workaround.a:*lib_a-toupper.o(.literal .text .literal.* .text.*)
*libc-psram-workaround.a:*lib_a-tolower.o(.literal .text .literal.* .text.*)
*libc-psram-workaround.a:*lib_a-toascii.o(.literal .text .literal.* .text.*)
*libc-psram-workaround.a:*lib_a-systimes.o(.literal .text .literal.* .text.*)
*libc-psram-workaround.a:*lib_a-time.o(.literal .text .literal.* .text.*)
*libc-psram-workaround.a:*lib_a-gettzinfo.o(.literal .text .literal.* .text.*)
*libc-psram-workaround.a:*lib_a-strupr.o(.literal .text .literal.* .text.*)
*libc-psram-workaround.a:*lib_a-asctime_r.o(.literal .text .literal.* .text.*)
*libc-psram-workaround.a:*lib_a-bzero.o(.literal .text .literal.* .text.*)
*libc-psram-workaround.a:*lib_a-close.o(.literal .text .literal.* .text.*)
*libc-psram-workaround.a:*lib_a-creat.o(.literal .text .literal.* .text.*)
*libc-psram-workaround.a:*lib_a-environ.o(.literal .text .literal.* .text.*)
*libc-psram-workaround.a:*lib_a-fclose.o(.literal .text .literal.* .text.*)
*libc-psram-workaround.a:*lib_a-isalnum.o(.literal .text .literal.* .text.*)
*libc-psram-workaround.a:*lib_a-isalpha.o(.literal .text .literal.* .text.*)
*libc-psram-workaround.a:*lib_a-isascii.o(.literal .text .literal.* .text.*)
*libc-psram-workaround.a:*lib_a-isblank.o(.literal .text .literal.* .text.*)
*libc-psram-workaround.a:*lib_a-iscntrl.o(.literal .text .literal.* .text.*)
*libc-psram-workaround.a:*lib_a-isdigit.o(.literal .text .literal.* .text.*)
*libc-psram-workaround.a:*lib_a-isgraph.o(.literal .text .literal.* .text.*)
*libc-psram-workaround.a:*lib_a-islower.o(.literal .text .literal.* .text.*)
*libc-psram-workaround.a:*lib_a-isprint.o(.literal .text .literal.* .text.*)
*libc-psram-workaround.a:*lib_a-ispunct.o(.literal .text .literal.* .text.*)
*libc-psram-workaround.a:*lib_a-isspace.o(.literal .text .literal.* .text.*)
*libc-psram-workaround.a:*lib_a-isupper.o(.literal .text .literal.* .text.*)
*libc-psram-workaround.a:*lib_a-memccpy.o(.literal .text .literal.* .text.*)
*libc-psram-workaround.a:*lib_a-memchr.o(.literal .text .literal.* .text.*)
*libc-psram-workaround.a:*lib_a-memcmp.o(.literal .text .literal.* .text.*)
*libc-psram-workaround.a:*lib_a-memcpy.o(.literal .text .literal.* .text.*)
*libc-psram-workaround.a:*lib_a-memmove.o(.literal .text .literal.* .text.*)
*libc-psram-workaround.a:*lib_a-memrchr.o(.literal .text .literal.* .text.*)
*libc-psram-workaround.a:*lib_a-memset.o(.literal .text .literal.* .text.*)
*libc-psram-workaround.a:*lib_a-open.o(.literal .text .literal.* .text.*)
*libc-psram-workaround.a:*lib_a-rand.o(.literal .text .literal.* .text.*)
*libc-psram-workaround.a:*lib_a-rand_r.o(.literal .text .literal.* .text.*)
*libc-psram-workaround.a:*lib_a-read.o(.literal .text .literal.* .text.*)
*libc-psram-workaround.a:*lib_a-rshift.o(.literal .text .literal.* .text.*)
*libc-psram-workaround.a:*lib_a-sbrk.o(.literal .text .literal.* .text.*)
*libc-psram-workaround.a:*lib_a-srand.o(.literal .text .literal.* .text.*)
*libc-psram-workaround.a:*lib_a-strcasecmp.o(.literal .text .literal.* .text.*)
*libc-psram-workaround.a:*lib_a-strcasestr.o(.literal .text .literal.* .text.*)
*libc-psram-workaround.a:*lib_a-strcat.o(.literal .text .literal.* .text.*)
*libc-psram-workaround.a:*lib_a-strchr.o(.literal .text .literal.* .text.*)
*libc-psram-workaround.a:*lib_a-strcmp.o(.literal .text .literal.* .text.*)
*libc-psram-workaround.a:*lib_a-strcoll.o(.literal .text .literal.* .text.*)
*libc-psram-workaround.a:*lib_a-strcpy.o(.literal .text .literal.* .text.*)
*libc-psram-workaround.a:*lib_a-strcspn.o(.literal .text .literal.* .text.*)
*libc-psram-workaround.a:*lib_a-strdup.o(.literal .text .literal.* .text.*)
*libc-psram-workaround.a:*lib_a-strlcat.o(.literal .text .literal.* .text.*)
*libc-psram-workaround.a:*lib_a-strlcpy.o(.literal .text .literal.* .text.*)
*libc-psram-workaround.a:*lib_a-strlen.o(.literal .text .literal.* .text.*)
*libc-psram-workaround.a:*lib_a-strlwr.o(.literal .text .literal.* .text.*)
*libc-psram-workaround.a:*lib_a-strncasecmp.o(.literal .text .literal.* .text.*)
*libc-psram-workaround.a:*lib_a-strncat.o(.literal .text .literal.* .text.*)
*libc-psram-workaround.a:*lib_a-strncmp.o(.literal .text .literal.* .text.*)
*libc-psram-workaround.a:*lib_a-strncpy.o(.literal .text .literal.* .text.*)
*libc-psram-workaround.a:*lib_a-strndup.o(.literal .text .literal.* .text.*)
*libc-psram-workaround.a:*lib_a-strnlen.o(.literal .text .literal.* .text.*)
*libc-psram-workaround.a:*lib_a-strrchr.o(.literal .text .literal.* .text.*)
*libc-psram-workaround.a:*lib_a-strsep.o(.literal .text .literal.* .text.*)
*libc-psram-workaround.a:*lib_a-strspn.o(.literal .text .literal.* .text.*)
*libc-psram-workaround.a:*lib_a-strstr.o(.literal .text .literal.* .text.*)
*libc-psram-workaround.a:*lib_a-strtok_r.o(.literal .text .literal.* .text.*)
*libc-psram-workaround.a:*lib_a-strupr.o(.literal .text .literal.* .text.*)
*libc-psram-workaround.a:*lib_a-stdio.o(.literal .text .literal.* .text.*)
*libc-psram-workaround.a:*lib_a-syssbrk.o(.literal .text .literal.* .text.*)
*libc-psram-workaround.a:*lib_a-sysclose.o(.literal .text .literal.* .text.*)
*libc-psram-workaround.a:*lib_a-sysopen.o(.literal .text .literal.* .text.*)
*libc-psram-workaround.a:*creat.o(.literal .text .literal.* .text.*)
*libc-psram-workaround.a:*lib_a-sysread.o(.literal .text .literal.* .text.*)
*libc-psram-workaround.a:*lib_a-syswrite.o(.literal .text .literal.* .text.*)
*libc-psram-workaround.a:*lib_a-impure.o(.literal .text .literal.* .text.*)
*libc-psram-workaround.a:*lib_a-tzvars.o(.literal .text .literal.* .text.*)
*libc-psram-workaround.a:*lib_a-sf_nan.o(.literal .text .literal.* .text.*)
*libc-psram-workaround.a:*lib_a-tzcalc_limits.o(.literal .text .literal.* .text.*)
*libc-psram-workaround.a:*lib_a-month_lengths.o(.literal .text .literal.* .text.*)
*libc-psram-workaround.a:*lib_a-timelocal.o(.literal .text .literal.* .text.*)
*libc-psram-workaround.a:*lib_a-findfp.o(.literal .text .literal.* .text.*)
*libc-psram-workaround.a:*lock.o(.literal .text .literal.* .text.*)
*libc-psram-workaround.a:*lib_a-getenv_r.o(.literal .text .literal.* .text.*)
*libc-psram-workaround.a:*isatty.o(.literal .text .literal.* .text.*)
*libc-psram-workaround.a:*lib_a-fwalk.o(.literal .text .literal.* .text.*)
*libc-psram-workaround.a:*lib_a-getenv_r.o(.literal .text .literal.* .text.*)
*libc-psram-workaround.a:*lib_a-tzlock.o(.literal .text .literal.* .text.*)
*libc-psram-workaround.a:*lib_a-ctype_.o(.literal .text .literal.* .text.*)
*libc-psram-workaround.a:*lib_a-sccl.o(.literal .text .literal.* .text.*)
*libc-psram-workaround.a:*lib_a-strptime.o(.literal .text .literal.* .text.*)
*libc-psram-workaround.a:*lib_a-envlock.o(.literal .text .literal.* .text.*)
*libc-psram-workaround.a:*lib_a-raise.o(.literal .text .literal.* .text.*)
*libc-psram-workaround.a:*lib_a-strdup_r.o(.literal .text .literal.* .text.*)
*libc-psram-workaround.a:*lib_a-system.o(.literal .text .literal.* .text.*)
*libc-psram-workaround.a:*lib_a-strndup_r.o(.literal .text .literal.* .text.*)

View File

@ -3,7 +3,7 @@
This file describes the memory layout (memory blocks) as virtual
memory addresses.
esp32.common.ld contains output sections to link compiler output
esp32.project.ld contains output sections to link compiler output
into these memory blocks.
***

View File

@ -1,4 +0,0 @@
/* Link WiFi library .wifi0iram sections to IRAM
if this snippet is included */
*libnet80211.a:( .wifi0iram .wifi0iram.*)
*libpp.a:( .wifi0iram .wifi0iram.*)