feat(esp32h21): split newlib ld into multiple files

This commit is contained in:
gaoxu
2025-01-22 16:04:15 +08:00
parent 5ef4f20778
commit 9494922397
2 changed files with 65 additions and 170 deletions

View File

@@ -1,112 +1,65 @@
/* /*
* SPDX-FileCopyrightText: 2024 Espressif Systems (Shanghai) CO LTD * SPDX-FileCopyrightText: 2024-2025 Espressif Systems (Shanghai) CO LTD
* *
* SPDX-License-Identifier: Apache-2.0 * SPDX-License-Identifier: Apache-2.0
*/ */
/* ROM function interface esp32h21.rom.libgcc.ld for esp32h21 esp_rom_newlib_init_common_mutexes = 0x40000494;
* memset = 0x40000498;
* memcpy = 0x4000049c;
* Generated from ./target/esp32h21/interface-esp32h21.yml md5sum dee73289acb146ae14dd9544143527f0 memmove = 0x400004a0;
* memcmp = 0x400004a4;
* Compatible with ROM where ECO version equal or greater to 0. strcpy = 0x400004a8;
* strncpy = 0x400004ac;
* THIS FILE WAS AUTOMATICALLY GENERATED. DO NOT EDIT. strcmp = 0x400004b0;
*/ strncmp = 0x400004b4;
strlen = 0x400004b8;
/*************************************** strstr = 0x400004bc;
Group libgcc bzero = 0x400004c0;
***************************************/ sbrk = 0x400004c8;
isalnum = 0x400004cc;
/* Functions */ isalpha = 0x400004d0;
__absvdi2 = 0x4000084c; isascii = 0x400004d4;
__absvsi2 = 0x40000850; isblank = 0x400004d8;
__adddf3 = 0x40000854; iscntrl = 0x400004dc;
__addsf3 = 0x40000858; isdigit = 0x400004e0;
__addvdi3 = 0x4000085c; islower = 0x400004e4;
__addvsi3 = 0x40000860; isgraph = 0x400004e8;
__ashldi3 = 0x40000864; isprint = 0x400004ec;
__ashrdi3 = 0x40000868; ispunct = 0x400004f0;
__bswapdi2 = 0x4000086c; isspace = 0x400004f4;
__bswapsi2 = 0x40000870; isupper = 0x400004f8;
__clear_cache = 0x40000874; toupper = 0x400004fc;
__clrsbdi2 = 0x40000878; tolower = 0x40000500;
__clrsbsi2 = 0x4000087c; toascii = 0x40000504;
__clzdi2 = 0x40000880; memccpy = 0x40000508;
__clzsi2 = 0x40000884; memchr = 0x4000050c;
__cmpdi2 = 0x40000888; memrchr = 0x40000510;
__ctzdi2 = 0x4000088c; strcasecmp = 0x40000514;
__ctzsi2 = 0x40000890; strcasestr = 0x40000518;
__divdc3 = 0x40000894; strcat = 0x4000051c;
__divdf3 = 0x40000898; strchr = 0x40000524;
__divdi3 = 0x4000089c; strcspn = 0x40000528;
__divsc3 = 0x400008a0; strcoll = 0x4000052c;
__divsf3 = 0x400008a4; strlcat = 0x40000530;
__divsi3 = 0x400008a8; strlcpy = 0x40000534;
__eqdf2 = 0x400008ac; strlwr = 0x40000538;
__eqsf2 = 0x400008b0; strncasecmp = 0x4000053c;
__extendsfdf2 = 0x400008b4; strncat = 0x40000540;
__ffsdi2 = 0x400008b8; strnlen = 0x40000548;
__ffssi2 = 0x400008bc; strrchr = 0x4000054c;
__fixdfdi = 0x400008c0; strsep = 0x40000550;
__fixdfsi = 0x400008c4; strspn = 0x40000554;
__fixsfdi = 0x400008c8; strtok_r = 0x40000558;
__fixsfsi = 0x400008cc; strupr = 0x4000055c;
__fixunsdfsi = 0x400008d0; longjmp = 0x40000560;
__fixunssfdi = 0x400008d4; setjmp = 0x40000564;
__fixunssfsi = 0x400008d8; abs = 0x40000568;
__floatdidf = 0x400008dc; div = 0x4000056c;
__floatdisf = 0x400008e0; labs = 0x40000570;
__floatsidf = 0x400008e4; ldiv = 0x40000574;
__floatsisf = 0x400008e8; qsort = 0x40000578;
__floatundidf = 0x400008ec; utoa = 0x40000588;
__floatundisf = 0x400008f0; itoa = 0x4000058c;
__floatunsidf = 0x400008f4; /* Data (.data, .bss, .rodata) */
__floatunsisf = 0x400008f8; syscall_table_ptr = 0x4084ffd4;
__gcc_bcmp = 0x400008fc; _global_impure_ptr = 0x4084ffd0;
__gedf2 = 0x40000900;
__gesf2 = 0x40000904;
__gtdf2 = 0x40000908;
__gtsf2 = 0x4000090c;
__ledf2 = 0x40000910;
__lesf2 = 0x40000914;
__lshrdi3 = 0x40000918;
__ltdf2 = 0x4000091c;
__ltsf2 = 0x40000920;
__moddi3 = 0x40000924;
__modsi3 = 0x40000928;
__muldc3 = 0x4000092c;
__muldf3 = 0x40000930;
__muldi3 = 0x40000934;
__mulsc3 = 0x40000938;
__mulsf3 = 0x4000093c;
__mulsi3 = 0x40000940;
__mulvdi3 = 0x40000944;
__mulvsi3 = 0x40000948;
__nedf2 = 0x4000094c;
__negdf2 = 0x40000950;
__negdi2 = 0x40000954;
__negsf2 = 0x40000958;
__negvdi2 = 0x4000095c;
__negvsi2 = 0x40000960;
__nesf2 = 0x40000964;
__paritysi2 = 0x40000968;
__popcountdi2 = 0x4000096c;
__popcountsi2 = 0x40000970;
__powidf2 = 0x40000974;
__powisf2 = 0x40000978;
__subdf3 = 0x4000097c;
__subsf3 = 0x40000980;
__subvdi3 = 0x40000984;
__subvsi3 = 0x40000988;
__truncdfsf2 = 0x4000098c;
__ucmpdi2 = 0x40000990;
__udivdi3 = 0x40000994;
__udivmoddi4 = 0x40000998;
__udivsi3 = 0x4000099c;
__udiv_w_sdiv = 0x400009a0;
__umoddi3 = 0x400009a4;
__umodsi3 = 0x400009a8;
__unorddf2 = 0x400009ac;
__unordsf2 = 0x400009b0;
__extenddftf2 = 0x400009b4;
__trunctfdf2 = 0x400009b8;

View File

@@ -1,5 +1,5 @@
/* /*
* SPDX-FileCopyrightText: 2024 Espressif Systems (Shanghai) CO LTD * SPDX-FileCopyrightText: 2024-2025 Espressif Systems (Shanghai) CO LTD
* *
* SPDX-License-Identifier: Apache-2.0 * SPDX-License-Identifier: Apache-2.0
*/ */
@@ -10,7 +10,9 @@
* *
* Compatible with ROM where ECO version equal or greater to 0. * Compatible with ROM where ECO version equal or greater to 0.
* *
* THIS FILE WAS AUTOMATICALLY GENERATED. DO NOT EDIT. * THIS FILE WAS AUTOMATICALLY GENERATED. !!! BUT EDITED !!!
* The file was originally generated for use with newlib, but it was split into
* multiple files to make it compatible with picolibc.
*/ */
/*************************************** /***************************************
@@ -18,69 +20,12 @@
***************************************/ ***************************************/
/* Functions */ /* Functions */
esp_rom_newlib_init_common_mutexes = 0x40000494;
memset = 0x40000498;
memcpy = 0x4000049c;
memmove = 0x400004a0;
memcmp = 0x400004a4;
strcpy = 0x400004a8;
strncpy = 0x400004ac;
strcmp = 0x400004b0;
strncmp = 0x400004b4;
strlen = 0x400004b8;
strstr = 0x400004bc;
bzero = 0x400004c0;
_isatty_r = 0x400004c4; _isatty_r = 0x400004c4;
sbrk = 0x400004c8;
isalnum = 0x400004cc;
isalpha = 0x400004d0;
isascii = 0x400004d4;
isblank = 0x400004d8;
iscntrl = 0x400004dc;
isdigit = 0x400004e0;
islower = 0x400004e4;
isgraph = 0x400004e8;
isprint = 0x400004ec;
ispunct = 0x400004f0;
isspace = 0x400004f4;
isupper = 0x400004f8;
toupper = 0x400004fc;
tolower = 0x40000500;
toascii = 0x40000504;
memccpy = 0x40000508;
memchr = 0x4000050c;
memrchr = 0x40000510;
strcasecmp = 0x40000514;
strcasestr = 0x40000518;
strcat = 0x4000051c;
strdup = 0x40000520; strdup = 0x40000520;
strchr = 0x40000524;
strcspn = 0x40000528;
strcoll = 0x4000052c;
strlcat = 0x40000530;
strlcpy = 0x40000534;
strlwr = 0x40000538;
strncasecmp = 0x4000053c;
strncat = 0x40000540;
strndup = 0x40000544; strndup = 0x40000544;
strnlen = 0x40000548;
strrchr = 0x4000054c;
strsep = 0x40000550;
strspn = 0x40000554;
strtok_r = 0x40000558;
strupr = 0x4000055c;
longjmp = 0x40000560;
setjmp = 0x40000564;
abs = 0x40000568;
div = 0x4000056c;
labs = 0x40000570;
ldiv = 0x40000574;
qsort = 0x40000578;
rand_r = 0x4000057c; rand_r = 0x4000057c;
rand = 0x40000580; rand = 0x40000580;
srand = 0x40000584; srand = 0x40000584;
utoa = 0x40000588;
itoa = 0x4000058c;
atoi = 0x40000590; atoi = 0x40000590;
atol = 0x40000594; atol = 0x40000594;
strtol = 0x40000598; strtol = 0x40000598;
@@ -94,6 +39,3 @@ __swhatbuf_r = 0x400005b4;
__swbuf_r = 0x400005b8; __swbuf_r = 0x400005b8;
__swbuf = 0x400005bc; __swbuf = 0x400005bc;
__swsetup_r = 0x400005c0; __swsetup_r = 0x400005c0;
/* Data (.data, .bss, .rodata) */
syscall_table_ptr = 0x4084ffd4;
_global_impure_ptr = 0x4084ffd0;