mirror of
https://github.com/espressif/esp-idf.git
synced 2024-10-05 20:47:46 -04:00
newlib: add "full" formatting support, add missing functions
- add two versions of libc: libc.a and libc_nano.a. First one has full C99 formatting support, second one uses “nano” formatting functions available in ROM. - fix linker error for fmod, fmodf, atof, atoff - update tests
This commit is contained in:
parent
505282bab1
commit
221dc13535
@ -138,6 +138,27 @@ config NEWLIB_STDOUT_ADDCR
|
|||||||
is usually done by an added CR character. Enabling this will make the
|
is usually done by an added CR character. Enabling this will make the
|
||||||
standard output code automatically add a CR character before a LF.
|
standard output code automatically add a CR character before a LF.
|
||||||
|
|
||||||
|
config NEWLIB_NANO_FORMAT
|
||||||
|
bool "Enable 'nano' formatting options for printf/scanf family"
|
||||||
|
default n
|
||||||
|
help
|
||||||
|
ESP32 ROM contains parts of newlib C library, including printf/scanf family
|
||||||
|
of functions. These functions have been compiled with so-called "nano"
|
||||||
|
formatting option. This option doesn't support 64-bit integer formats and C99
|
||||||
|
features, such as positional arguments.
|
||||||
|
|
||||||
|
For more details about "nano" formatting option, please see newlib readme file,
|
||||||
|
search for '--enable-newlib-nano-formatted-io':
|
||||||
|
https://sourceware.org/newlib/README
|
||||||
|
|
||||||
|
If this option is enabled, build system will use functions available in
|
||||||
|
ROM, reducing the application binary size. Functions available in ROM run
|
||||||
|
faster than functions which run from flash. Functions available in ROM can
|
||||||
|
also run when flash instruction cache is disabled.
|
||||||
|
|
||||||
|
If you need 64-bit integer formatting support or C99 features, keep this
|
||||||
|
option disabled.
|
||||||
|
|
||||||
choice CONSOLE_UART
|
choice CONSOLE_UART
|
||||||
prompt "UART for console output"
|
prompt "UART for console output"
|
||||||
default CONSOLE_UART_DEFAULT
|
default CONSOLE_UART_DEFAULT
|
||||||
|
@ -8,6 +8,10 @@ LIBS := core net80211 phy rtc pp wpa smartconfig coexist wps wpa2
|
|||||||
|
|
||||||
LINKER_SCRIPTS += -T esp32_out.ld -T esp32.common.ld -T esp32.rom.ld -T esp32.peripherals.ld
|
LINKER_SCRIPTS += -T esp32_out.ld -T esp32.common.ld -T esp32.rom.ld -T esp32.peripherals.ld
|
||||||
|
|
||||||
|
ifeq ("$(CONFIG_NEWLIB_NANO_FORMAT)","y")
|
||||||
|
LINKER_SCRIPTS += -T esp32.rom.nanofmt.ld
|
||||||
|
endif
|
||||||
|
|
||||||
COMPONENT_ADD_LDFLAGS := -lesp32 \
|
COMPONENT_ADD_LDFLAGS := -lesp32 \
|
||||||
$(COMPONENT_PATH)/libhal.a \
|
$(COMPONENT_PATH)/libhal.a \
|
||||||
-L$(COMPONENT_PATH)/lib \
|
-L$(COMPONENT_PATH)/lib \
|
||||||
|
@ -26,14 +26,6 @@ PROVIDE ( asctime = 0x40059588 );
|
|||||||
PROVIDE ( asctime_r = 0x40000ec8 );
|
PROVIDE ( asctime_r = 0x40000ec8 );
|
||||||
PROVIDE ( __ashldi3 = 0x4000c818 );
|
PROVIDE ( __ashldi3 = 0x4000c818 );
|
||||||
PROVIDE ( __ashrdi3 = 0x4000c830 );
|
PROVIDE ( __ashrdi3 = 0x4000c830 );
|
||||||
PROVIDE ( asiprintf = 0x40056d9c );
|
|
||||||
PROVIDE ( _asiprintf_r = 0x40056d4c );
|
|
||||||
PROVIDE ( asniprintf = 0x40056cd8 );
|
|
||||||
PROVIDE ( _asniprintf_r = 0x40056c64 );
|
|
||||||
PROVIDE ( asnprintf = 0x40056cd8 );
|
|
||||||
PROVIDE ( _asnprintf_r = 0x40056c64 );
|
|
||||||
PROVIDE ( asprintf = 0x40056d9c );
|
|
||||||
PROVIDE ( _asprintf_r = 0x40056d4c );
|
|
||||||
PROVIDE ( atoi = 0x400566c4 );
|
PROVIDE ( atoi = 0x400566c4 );
|
||||||
PROVIDE ( _atoi_r = 0x400566d4 );
|
PROVIDE ( _atoi_r = 0x400566d4 );
|
||||||
PROVIDE ( atol = 0x400566ec );
|
PROVIDE ( atol = 0x400566ec );
|
||||||
@ -230,10 +222,6 @@ PROVIDE ( __ffssi2 = 0x4000c804 );
|
|||||||
PROVIDE ( FilePacketSendDeflatedReqMsgProc = 0x40008b24 );
|
PROVIDE ( FilePacketSendDeflatedReqMsgProc = 0x40008b24 );
|
||||||
PROVIDE ( FilePacketSendReqMsgProc = 0x40008860 );
|
PROVIDE ( FilePacketSendReqMsgProc = 0x40008860 );
|
||||||
PROVIDE ( _findenv_r = 0x40001f44 );
|
PROVIDE ( _findenv_r = 0x40001f44 );
|
||||||
PROVIDE ( fiprintf = 0x40056efc );
|
|
||||||
PROVIDE ( _fiprintf_r = 0x40056ed8 );
|
|
||||||
PROVIDE ( fiscanf = 0x40058884 );
|
|
||||||
PROVIDE ( _fiscanf_r = 0x400588b4 );
|
|
||||||
PROVIDE ( __fixdfdi = 0x40002ac4 );
|
PROVIDE ( __fixdfdi = 0x40002ac4 );
|
||||||
PROVIDE ( __fixdfsi = 0x40002a78 );
|
PROVIDE ( __fixdfsi = 0x40002a78 );
|
||||||
PROVIDE ( __fixsfdi = 0x4000244c );
|
PROVIDE ( __fixsfdi = 0x4000244c );
|
||||||
@ -255,16 +243,12 @@ PROVIDE ( __floatundisf = 0x4000c8b0 );
|
|||||||
PROVIDE ( __floatunsidf = 0x4000c938 );
|
PROVIDE ( __floatunsidf = 0x4000c938 );
|
||||||
PROVIDE ( __floatunsisf = 0x4000c864 );
|
PROVIDE ( __floatunsisf = 0x4000c864 );
|
||||||
PROVIDE ( __fp_lock_all = 0x40001f1c );
|
PROVIDE ( __fp_lock_all = 0x40001f1c );
|
||||||
PROVIDE ( fprintf = 0x40056efc );
|
|
||||||
PROVIDE ( _fprintf_r = 0x40056ed8 );
|
|
||||||
PROVIDE ( __fp_unlock_all = 0x40001f30 );
|
PROVIDE ( __fp_unlock_all = 0x40001f30 );
|
||||||
PROVIDE ( fputwc = 0x40058ea8 );
|
PROVIDE ( fputwc = 0x40058ea8 );
|
||||||
PROVIDE ( __fputwc = 0x40058da0 );
|
PROVIDE ( __fputwc = 0x40058da0 );
|
||||||
PROVIDE ( _fputwc_r = 0x40058e4c );
|
PROVIDE ( _fputwc_r = 0x40058e4c );
|
||||||
PROVIDE ( free = 0x4000beb8 );
|
PROVIDE ( free = 0x4000beb8 );
|
||||||
PROVIDE ( _free_r = 0x4000bbcc );
|
PROVIDE ( _free_r = 0x4000bbcc );
|
||||||
PROVIDE ( fscanf = 0x40058884 );
|
|
||||||
PROVIDE ( _fscanf_r = 0x400588b4 );
|
|
||||||
PROVIDE ( _fstat_r = 0x4000bccc );
|
PROVIDE ( _fstat_r = 0x4000bccc );
|
||||||
PROVIDE ( _fwalk = 0x4000c738 );
|
PROVIDE ( _fwalk = 0x4000c738 );
|
||||||
PROVIDE ( _fwalk_reent = 0x4000c770 );
|
PROVIDE ( _fwalk_reent = 0x4000c770 );
|
||||||
@ -337,15 +321,11 @@ PROVIDE ( hmac_sha1_vector = 0x400609e4 );
|
|||||||
PROVIDE ( hmac_sha256 = 0x40060d58 );
|
PROVIDE ( hmac_sha256 = 0x40060d58 );
|
||||||
PROVIDE ( hmac_sha256_vector = 0x40060c84 );
|
PROVIDE ( hmac_sha256_vector = 0x40060c84 );
|
||||||
PROVIDE ( intr_matrix_set = 0x4000681c );
|
PROVIDE ( intr_matrix_set = 0x4000681c );
|
||||||
PROVIDE ( iprintf = 0x40056978 );
|
|
||||||
PROVIDE ( _iprintf_r = 0x40056944 );
|
|
||||||
PROVIDE ( isalnum = 0x40000f04 );
|
PROVIDE ( isalnum = 0x40000f04 );
|
||||||
PROVIDE ( isalpha = 0x40000f18 );
|
PROVIDE ( isalpha = 0x40000f18 );
|
||||||
PROVIDE ( isascii = 0x4000c20c );
|
PROVIDE ( isascii = 0x4000c20c );
|
||||||
PROVIDE ( _isatty_r = 0x40000ea0 );
|
PROVIDE ( _isatty_r = 0x40000ea0 );
|
||||||
PROVIDE ( isblank = 0x40000f2c );
|
PROVIDE ( isblank = 0x40000f2c );
|
||||||
PROVIDE ( iscanf = 0x40058760 );
|
|
||||||
PROVIDE ( _iscanf_r = 0x4005879c );
|
|
||||||
PROVIDE ( iscntrl = 0x40000f50 );
|
PROVIDE ( iscntrl = 0x40000f50 );
|
||||||
PROVIDE ( isdigit = 0x40000f64 );
|
PROVIDE ( isdigit = 0x40000f64 );
|
||||||
PROVIDE ( isgraph = 0x40000f94 );
|
PROVIDE ( isgraph = 0x40000f94 );
|
||||||
@ -511,11 +491,6 @@ PROVIDE ( __powidf2 = 0x400638d4 );
|
|||||||
PROVIDE ( __powisf2 = 0x4006389c );
|
PROVIDE ( __powisf2 = 0x4006389c );
|
||||||
PROVIDE ( _Pri_4_HandlerAddress = 0x3ffe0648 );
|
PROVIDE ( _Pri_4_HandlerAddress = 0x3ffe0648 );
|
||||||
PROVIDE ( _Pri_5_HandlerAddress = 0x3ffe064c );
|
PROVIDE ( _Pri_5_HandlerAddress = 0x3ffe064c );
|
||||||
PROVIDE ( printf = 0x40056978 );
|
|
||||||
PROVIDE ( _printf_common = 0x40057338 );
|
|
||||||
PROVIDE ( _printf_float = 0x4000befc );
|
|
||||||
PROVIDE ( _printf_i = 0x40057404 );
|
|
||||||
PROVIDE ( _printf_r = 0x40056944 );
|
|
||||||
PROVIDE ( qsort = 0x40056424 );
|
PROVIDE ( qsort = 0x40056424 );
|
||||||
PROVIDE ( _raise_r = 0x4000bc70 );
|
PROVIDE ( _raise_r = 0x4000bc70 );
|
||||||
PROVIDE ( rand = 0x40001058 );
|
PROVIDE ( rand = 0x40001058 );
|
||||||
@ -1500,11 +1475,6 @@ PROVIDE ( rwip_rf_p_get = 0x400558f4 );
|
|||||||
PROVIDE ( r_XorKey = 0x400112c0 );
|
PROVIDE ( r_XorKey = 0x400112c0 );
|
||||||
PROVIDE ( sbrk = 0x400017f4 );
|
PROVIDE ( sbrk = 0x400017f4 );
|
||||||
PROVIDE ( _sbrk_r = 0x4000bce4 );
|
PROVIDE ( _sbrk_r = 0x4000bce4 );
|
||||||
PROVIDE ( scanf = 0x40058760 );
|
|
||||||
PROVIDE ( _scanf_chars = 0x40058384 );
|
|
||||||
PROVIDE ( _scanf_float = 0x4000bf18 );
|
|
||||||
PROVIDE ( _scanf_i = 0x4005845c );
|
|
||||||
PROVIDE ( _scanf_r = 0x4005879c );
|
|
||||||
PROVIDE ( __sccl = 0x4000c498 );
|
PROVIDE ( __sccl = 0x4000c498 );
|
||||||
PROVIDE ( __sclose = 0x400011b8 );
|
PROVIDE ( __sclose = 0x400011b8 );
|
||||||
PROVIDE ( SelectSpiFunction = 0x40061f84 );
|
PROVIDE ( SelectSpiFunction = 0x40061f84 );
|
||||||
@ -1549,13 +1519,9 @@ PROVIDE ( sip_is_active = 0x4000b3c0 );
|
|||||||
PROVIDE ( sip_post_init = 0x4000aed8 );
|
PROVIDE ( sip_post_init = 0x4000aed8 );
|
||||||
PROVIDE ( sip_reclaim_from_host_cmd = 0x4000adbc );
|
PROVIDE ( sip_reclaim_from_host_cmd = 0x4000adbc );
|
||||||
PROVIDE ( sip_reclaim_tx_data_pkt = 0x4000ad5c );
|
PROVIDE ( sip_reclaim_tx_data_pkt = 0x4000ad5c );
|
||||||
PROVIDE ( siprintf = 0x40056c08 );
|
|
||||||
PROVIDE ( _siprintf_r = 0x40056bbc );
|
|
||||||
PROVIDE ( sip_send = 0x4000af54 );
|
PROVIDE ( sip_send = 0x4000af54 );
|
||||||
PROVIDE ( sip_to_host_chain_append = 0x4000aef8 );
|
PROVIDE ( sip_to_host_chain_append = 0x4000aef8 );
|
||||||
PROVIDE ( sip_to_host_evt_send_done = 0x4000ac04 );
|
PROVIDE ( sip_to_host_evt_send_done = 0x4000ac04 );
|
||||||
PROVIDE ( siscanf = 0x400587d0 );
|
|
||||||
PROVIDE ( _siscanf_r = 0x40058830 );
|
|
||||||
PROVIDE ( slc_add_credits = 0x4000baf4 );
|
PROVIDE ( slc_add_credits = 0x4000baf4 );
|
||||||
PROVIDE ( slc_enable = 0x4000b64c );
|
PROVIDE ( slc_enable = 0x4000b64c );
|
||||||
PROVIDE ( slc_from_host_chain_fetch = 0x4000b7e8 );
|
PROVIDE ( slc_from_host_chain_fetch = 0x4000b7e8 );
|
||||||
@ -1568,10 +1534,6 @@ PROVIDE ( slc_send_to_host_chain = 0x4000b6a0 );
|
|||||||
PROVIDE ( slc_set_host_io_max_window = 0x4000b89c );
|
PROVIDE ( slc_set_host_io_max_window = 0x4000b89c );
|
||||||
PROVIDE ( slc_to_host_chain_recycle = 0x4000b758 );
|
PROVIDE ( slc_to_host_chain_recycle = 0x4000b758 );
|
||||||
PROVIDE ( __smakebuf_r = 0x40059108 );
|
PROVIDE ( __smakebuf_r = 0x40059108 );
|
||||||
PROVIDE ( sniprintf = 0x40056b4c );
|
|
||||||
PROVIDE ( _sniprintf_r = 0x40056ae4 );
|
|
||||||
PROVIDE ( snprintf = 0x40056b4c );
|
|
||||||
PROVIDE ( _snprintf_r = 0x40056ae4 );
|
|
||||||
PROVIDE ( software_reset = 0x4000824c );
|
PROVIDE ( software_reset = 0x4000824c );
|
||||||
PROVIDE ( software_reset_cpu = 0x40008264 );
|
PROVIDE ( software_reset_cpu = 0x40008264 );
|
||||||
PROVIDE ( specialModP256 = 0x4001600c );
|
PROVIDE ( specialModP256 = 0x4001600c );
|
||||||
@ -1607,20 +1569,13 @@ PROVIDE ( SPI_Write_Encrypt_Disable = 0x40062e60 );
|
|||||||
PROVIDE ( SPI_Write_Encrypt_Enable = 0x40062df4 );
|
PROVIDE ( SPI_Write_Encrypt_Enable = 0x40062df4 );
|
||||||
/* This is static function, but can be used, not generated by script*/
|
/* This is static function, but can be used, not generated by script*/
|
||||||
PROVIDE ( SPI_write_status = 0x400622f0 );
|
PROVIDE ( SPI_write_status = 0x400622f0 );
|
||||||
PROVIDE ( sprintf = 0x40056c08 );
|
|
||||||
PROVIDE ( _sprintf_r = 0x40056bbc );
|
|
||||||
PROVIDE ( __sprint_r = 0x400577e4 );
|
|
||||||
PROVIDE ( srand = 0x40001004 );
|
PROVIDE ( srand = 0x40001004 );
|
||||||
PROVIDE ( __sread = 0x40001118 );
|
PROVIDE ( __sread = 0x40001118 );
|
||||||
PROVIDE ( __srefill_r = 0x400593d4 );
|
PROVIDE ( __srefill_r = 0x400593d4 );
|
||||||
PROVIDE ( sscanf = 0x400587d0 );
|
|
||||||
PROVIDE ( _sscanf_r = 0x40058830 );
|
|
||||||
PROVIDE ( __sseek = 0x40001184 );
|
PROVIDE ( __sseek = 0x40001184 );
|
||||||
PROVIDE ( __ssprint_r = 0x40056ff8 );
|
PROVIDE ( __ssprint_r = 0x40056ff8 );
|
||||||
PROVIDE ( __ssputs_r = 0x40056f2c );
|
PROVIDE ( __ssputs_r = 0x40056f2c );
|
||||||
PROVIDE ( __ssrefill_r = 0x40057fec );
|
PROVIDE ( __ssrefill_r = 0x40057fec );
|
||||||
PROVIDE ( __ssvfiscanf_r = 0x4005802c );
|
|
||||||
PROVIDE ( __ssvfscanf_r = 0x4005802c );
|
|
||||||
PROVIDE ( __stack = 0x3ffe3f20 );
|
PROVIDE ( __stack = 0x3ffe3f20 );
|
||||||
PROVIDE ( __stack_app = 0x3ffe7e30 );
|
PROVIDE ( __stack_app = 0x3ffe7e30 );
|
||||||
PROVIDE ( _stack_sentry = 0x3ffe1320 );
|
PROVIDE ( _stack_sentry = 0x3ffe1320 );
|
||||||
@ -1673,11 +1628,6 @@ PROVIDE ( SubtractFromSelfBigHexSign256 = 0x40015dc8 );
|
|||||||
PROVIDE ( __subvdi3 = 0x40002d20 );
|
PROVIDE ( __subvdi3 = 0x40002d20 );
|
||||||
PROVIDE ( __subvsi3 = 0x40002cf8 );
|
PROVIDE ( __subvsi3 = 0x40002cf8 );
|
||||||
PROVIDE ( _sungetc_r = 0x40057f6c );
|
PROVIDE ( _sungetc_r = 0x40057f6c );
|
||||||
PROVIDE ( _svfiprintf_r = 0x40057100 );
|
|
||||||
PROVIDE ( __svfiscanf_r = 0x40057b08 );
|
|
||||||
PROVIDE ( _svfprintf_r = 0x40057100 );
|
|
||||||
PROVIDE ( __svfscanf = 0x40057f04 );
|
|
||||||
PROVIDE ( __svfscanf_r = 0x40057b08 );
|
|
||||||
PROVIDE ( __swbuf = 0x40058cb4 );
|
PROVIDE ( __swbuf = 0x40058cb4 );
|
||||||
PROVIDE ( __swbuf_r = 0x40058bec );
|
PROVIDE ( __swbuf_r = 0x40058bec );
|
||||||
PROVIDE ( __swrite = 0x40001150 );
|
PROVIDE ( __swrite = 0x40001150 );
|
||||||
@ -1756,44 +1706,8 @@ PROVIDE ( user_code_start = 0x3ffe0400 );
|
|||||||
PROVIDE ( _UserExceptionVector = 0x40000340 );
|
PROVIDE ( _UserExceptionVector = 0x40000340 );
|
||||||
PROVIDE ( utoa = 0x40056258 );
|
PROVIDE ( utoa = 0x40056258 );
|
||||||
PROVIDE ( __utoa = 0x400561f0 );
|
PROVIDE ( __utoa = 0x400561f0 );
|
||||||
PROVIDE ( vasiprintf = 0x40056eb8 );
|
|
||||||
PROVIDE ( _vasiprintf_r = 0x40056e80 );
|
|
||||||
PROVIDE ( vasniprintf = 0x40056e58 );
|
|
||||||
PROVIDE ( _vasniprintf_r = 0x40056df8 );
|
|
||||||
PROVIDE ( vasnprintf = 0x40056e58 );
|
|
||||||
PROVIDE ( _vasnprintf_r = 0x40056df8 );
|
|
||||||
PROVIDE ( vasprintf = 0x40056eb8 );
|
|
||||||
PROVIDE ( _vasprintf_r = 0x40056e80 );
|
|
||||||
PROVIDE ( VerifyFlashMd5Proc = 0x40008c44 );
|
PROVIDE ( VerifyFlashMd5Proc = 0x40008c44 );
|
||||||
PROVIDE ( veryBigHexP256 = 0x3ff9736c );
|
PROVIDE ( veryBigHexP256 = 0x3ff9736c );
|
||||||
PROVIDE ( vfiprintf = 0x40057ae8 );
|
|
||||||
PROVIDE ( _vfiprintf_r = 0x40057850 );
|
|
||||||
PROVIDE ( vfiscanf = 0x40057eb8 );
|
|
||||||
PROVIDE ( _vfiscanf_r = 0x40057f24 );
|
|
||||||
PROVIDE ( vfprintf = 0x40057ae8 );
|
|
||||||
PROVIDE ( _vfprintf_r = 0x40057850 );
|
|
||||||
PROVIDE ( vfscanf = 0x40057eb8 );
|
|
||||||
PROVIDE ( _vfscanf_r = 0x40057f24 );
|
|
||||||
PROVIDE ( viprintf = 0x400569b4 );
|
|
||||||
PROVIDE ( _viprintf_r = 0x400569e4 );
|
|
||||||
PROVIDE ( viscanf = 0x40058698 );
|
|
||||||
PROVIDE ( _viscanf_r = 0x400586c8 );
|
|
||||||
PROVIDE ( vprintf = 0x400569b4 );
|
|
||||||
PROVIDE ( _vprintf_r = 0x400569e4 );
|
|
||||||
PROVIDE ( vscanf = 0x40058698 );
|
|
||||||
PROVIDE ( _vscanf_r = 0x400586c8 );
|
|
||||||
PROVIDE ( vsiprintf = 0x40056ac4 );
|
|
||||||
PROVIDE ( _vsiprintf_r = 0x40056a90 );
|
|
||||||
PROVIDE ( vsiscanf = 0x40058740 );
|
|
||||||
PROVIDE ( _vsiscanf_r = 0x400586f8 );
|
|
||||||
PROVIDE ( vsniprintf = 0x40056a68 );
|
|
||||||
PROVIDE ( _vsniprintf_r = 0x40056a14 );
|
|
||||||
PROVIDE ( vsnprintf = 0x40056a68 );
|
|
||||||
PROVIDE ( _vsnprintf_r = 0x40056a14 );
|
|
||||||
PROVIDE ( vsprintf = 0x40056ac4 );
|
|
||||||
PROVIDE ( _vsprintf_r = 0x40056a90 );
|
|
||||||
PROVIDE ( vsscanf = 0x40058740 );
|
|
||||||
PROVIDE ( _vsscanf_r = 0x400586f8 );
|
|
||||||
PROVIDE ( wcrtomb = 0x40058920 );
|
PROVIDE ( wcrtomb = 0x40058920 );
|
||||||
PROVIDE ( _wcrtomb_r = 0x400588d8 );
|
PROVIDE ( _wcrtomb_r = 0x400588d8 );
|
||||||
PROVIDE ( __wctomb = 0x3ff96540 );
|
PROVIDE ( __wctomb = 0x3ff96540 );
|
||||||
|
100
components/esp32/ld/esp32.rom.nanofmt.ld
Normal file
100
components/esp32/ld/esp32.rom.nanofmt.ld
Normal file
@ -0,0 +1,100 @@
|
|||||||
|
/*
|
||||||
|
Address table for printf/scanf family of functions in ESP32 ROM.
|
||||||
|
These functions are compiled with newlib "nano" format option.
|
||||||
|
As such, they don's support 64-bit integer formats.
|
||||||
|
Floating point formats are supported by setting _printf_float and
|
||||||
|
_scanf_float entries in syscall table. This is done automatically
|
||||||
|
by startup code.
|
||||||
|
|
||||||
|
Generated for ROM with MD5sum:
|
||||||
|
ab8282ae908fe9e7a63fb2a4ac2df013 eagle.pro.rom.out
|
||||||
|
*/
|
||||||
|
|
||||||
|
PROVIDE ( asiprintf = 0x40056d9c );
|
||||||
|
PROVIDE ( _asiprintf_r = 0x40056d4c );
|
||||||
|
PROVIDE ( asniprintf = 0x40056cd8 );
|
||||||
|
PROVIDE ( _asniprintf_r = 0x40056c64 );
|
||||||
|
PROVIDE ( asnprintf = 0x40056cd8 );
|
||||||
|
PROVIDE ( _asnprintf_r = 0x40056c64 );
|
||||||
|
PROVIDE ( asprintf = 0x40056d9c );
|
||||||
|
PROVIDE ( _asprintf_r = 0x40056d4c );
|
||||||
|
PROVIDE ( fiprintf = 0x40056efc );
|
||||||
|
PROVIDE ( _fiprintf_r = 0x40056ed8 );
|
||||||
|
PROVIDE ( fiscanf = 0x40058884 );
|
||||||
|
PROVIDE ( _fiscanf_r = 0x400588b4 );
|
||||||
|
PROVIDE ( fprintf = 0x40056efc );
|
||||||
|
PROVIDE ( _fprintf_r = 0x40056ed8 );
|
||||||
|
PROVIDE ( iprintf = 0x40056978 );
|
||||||
|
PROVIDE ( _iprintf_r = 0x40056944 );
|
||||||
|
PROVIDE ( printf = 0x40056978 );
|
||||||
|
PROVIDE ( _printf_common = 0x40057338 );
|
||||||
|
PROVIDE ( _printf_float = 0x4000befc );
|
||||||
|
PROVIDE ( _printf_i = 0x40057404 );
|
||||||
|
PROVIDE ( _printf_r = 0x40056944 );
|
||||||
|
PROVIDE ( siprintf = 0x40056c08 );
|
||||||
|
PROVIDE ( _siprintf_r = 0x40056bbc );
|
||||||
|
PROVIDE ( sniprintf = 0x40056b4c );
|
||||||
|
PROVIDE ( _sniprintf_r = 0x40056ae4 );
|
||||||
|
PROVIDE ( snprintf = 0x40056b4c );
|
||||||
|
PROVIDE ( _snprintf_r = 0x40056ae4 );
|
||||||
|
PROVIDE ( sprintf = 0x40056c08 );
|
||||||
|
PROVIDE ( _sprintf_r = 0x40056bbc );
|
||||||
|
PROVIDE ( __sprint_r = 0x400577e4 );
|
||||||
|
PROVIDE ( _svfiprintf_r = 0x40057100 );
|
||||||
|
PROVIDE ( __svfiscanf_r = 0x40057b08 );
|
||||||
|
PROVIDE ( _svfprintf_r = 0x40057100 );
|
||||||
|
PROVIDE ( __svfscanf = 0x40057f04 );
|
||||||
|
PROVIDE ( __svfscanf_r = 0x40057b08 );
|
||||||
|
PROVIDE ( vasiprintf = 0x40056eb8 );
|
||||||
|
PROVIDE ( _vasiprintf_r = 0x40056e80 );
|
||||||
|
PROVIDE ( vasniprintf = 0x40056e58 );
|
||||||
|
PROVIDE ( _vasniprintf_r = 0x40056df8 );
|
||||||
|
PROVIDE ( vasnprintf = 0x40056e58 );
|
||||||
|
PROVIDE ( _vasnprintf_r = 0x40056df8 );
|
||||||
|
PROVIDE ( vasprintf = 0x40056eb8 );
|
||||||
|
PROVIDE ( _vasprintf_r = 0x40056e80 );
|
||||||
|
PROVIDE ( vfiprintf = 0x40057ae8 );
|
||||||
|
PROVIDE ( _vfiprintf_r = 0x40057850 );
|
||||||
|
PROVIDE ( vfiscanf = 0x40057eb8 );
|
||||||
|
PROVIDE ( _vfiscanf_r = 0x40057f24 );
|
||||||
|
PROVIDE ( vfprintf = 0x40057ae8 );
|
||||||
|
PROVIDE ( _vfprintf_r = 0x40057850 );
|
||||||
|
PROVIDE ( vfscanf = 0x40057eb8 );
|
||||||
|
PROVIDE ( _vfscanf_r = 0x40057f24 );
|
||||||
|
PROVIDE ( viprintf = 0x400569b4 );
|
||||||
|
PROVIDE ( _viprintf_r = 0x400569e4 );
|
||||||
|
PROVIDE ( viscanf = 0x40058698 );
|
||||||
|
PROVIDE ( _viscanf_r = 0x400586c8 );
|
||||||
|
PROVIDE ( vprintf = 0x400569b4 );
|
||||||
|
PROVIDE ( _vprintf_r = 0x400569e4 );
|
||||||
|
PROVIDE ( vscanf = 0x40058698 );
|
||||||
|
PROVIDE ( _vscanf_r = 0x400586c8 );
|
||||||
|
PROVIDE ( vsiprintf = 0x40056ac4 );
|
||||||
|
PROVIDE ( _vsiprintf_r = 0x40056a90 );
|
||||||
|
PROVIDE ( vsiscanf = 0x40058740 );
|
||||||
|
PROVIDE ( _vsiscanf_r = 0x400586f8 );
|
||||||
|
PROVIDE ( vsniprintf = 0x40056a68 );
|
||||||
|
PROVIDE ( _vsniprintf_r = 0x40056a14 );
|
||||||
|
PROVIDE ( vsnprintf = 0x40056a68 );
|
||||||
|
PROVIDE ( _vsnprintf_r = 0x40056a14 );
|
||||||
|
PROVIDE ( vsprintf = 0x40056ac4 );
|
||||||
|
PROVIDE ( _vsprintf_r = 0x40056a90 );
|
||||||
|
PROVIDE ( vsscanf = 0x40058740 );
|
||||||
|
PROVIDE ( _vsscanf_r = 0x400586f8 );
|
||||||
|
PROVIDE ( fscanf = 0x40058884 );
|
||||||
|
PROVIDE ( _fscanf_r = 0x400588b4 );
|
||||||
|
PROVIDE ( iscanf = 0x40058760 );
|
||||||
|
PROVIDE ( _iscanf_r = 0x4005879c );
|
||||||
|
PROVIDE ( scanf = 0x40058760 );
|
||||||
|
PROVIDE ( _scanf_chars = 0x40058384 );
|
||||||
|
PROVIDE ( _scanf_float = 0x4000bf18 );
|
||||||
|
PROVIDE ( _scanf_i = 0x4005845c );
|
||||||
|
PROVIDE ( _scanf_r = 0x4005879c );
|
||||||
|
PROVIDE ( siscanf = 0x400587d0 );
|
||||||
|
PROVIDE ( _siscanf_r = 0x40058830 );
|
||||||
|
PROVIDE ( sscanf = 0x400587d0 );
|
||||||
|
PROVIDE ( _sscanf_r = 0x40058830 );
|
||||||
|
PROVIDE ( __ssvfiscanf_r = 0x4005802c );
|
||||||
|
PROVIDE ( __ssvfscanf_r = 0x4005802c );
|
||||||
|
|
||||||
|
|
@ -1,4 +1,10 @@
|
|||||||
COMPONENT_ADD_LDFLAGS := $(COMPONENT_PATH)/lib/libc.a $(COMPONENT_PATH)/lib/libm.a -lnewlib
|
|
||||||
|
ifdef CONFIG_NEWLIB_NANO_FORMAT
|
||||||
|
LIBC_PATH := $(COMPONENT_PATH)/lib/libc_nano.a
|
||||||
|
else
|
||||||
|
LIBC_PATH := $(COMPONENT_PATH)/lib/libc.a
|
||||||
|
endif
|
||||||
|
|
||||||
|
COMPONENT_ADD_LDFLAGS := $(LIBC_PATH) $(COMPONENT_PATH)/lib/libm.a -lnewlib
|
||||||
|
|
||||||
COMPONENT_ADD_INCLUDEDIRS := include platform_include
|
COMPONENT_ADD_INCLUDEDIRS := include platform_include
|
||||||
|
|
||||||
|
@ -1,639 +0,0 @@
|
|||||||
abort
|
|
||||||
abs
|
|
||||||
__adddf3
|
|
||||||
__any_on
|
|
||||||
app_gpio_arg
|
|
||||||
app_gpio_handler
|
|
||||||
__ascii_wctomb
|
|
||||||
asctime
|
|
||||||
asctime_r
|
|
||||||
asiprintf
|
|
||||||
_asiprintf_r
|
|
||||||
asniprintf
|
|
||||||
_asniprintf_r
|
|
||||||
asnprintf
|
|
||||||
_asnprintf_r
|
|
||||||
asprintf
|
|
||||||
_asprintf_r
|
|
||||||
atoi
|
|
||||||
_atoi_r
|
|
||||||
atol
|
|
||||||
_atol_r
|
|
||||||
__b2d
|
|
||||||
_Balloc
|
|
||||||
_Bfree
|
|
||||||
_bss_end
|
|
||||||
_bss_start
|
|
||||||
btdummy_bss
|
|
||||||
btdummy_text
|
|
||||||
bzero
|
|
||||||
cache_flash_mmu_set
|
|
||||||
Cache_Flush
|
|
||||||
Cache_Read_Disable
|
|
||||||
Cache_Read_Enable
|
|
||||||
Cache_Read_Init
|
|
||||||
cache_sram_mmu_set
|
|
||||||
calloc
|
|
||||||
_calloc_r
|
|
||||||
check_pos
|
|
||||||
_cleanup
|
|
||||||
_cleanup_r
|
|
||||||
close
|
|
||||||
_close_r
|
|
||||||
__copybits
|
|
||||||
creat
|
|
||||||
ctime
|
|
||||||
ctime_r
|
|
||||||
__d2b
|
|
||||||
_data_end
|
|
||||||
_data_start
|
|
||||||
_daylight
|
|
||||||
_DebugExceptionVector
|
|
||||||
debug_timer
|
|
||||||
debug_timerfn
|
|
||||||
div
|
|
||||||
__divdf3
|
|
||||||
__divsi3
|
|
||||||
_DoubleExceptionVector
|
|
||||||
__dummy_lock
|
|
||||||
__dummy_lock_try
|
|
||||||
environ
|
|
||||||
__env_lock
|
|
||||||
__env_unlock
|
|
||||||
eprintf
|
|
||||||
eprintf_init_buf
|
|
||||||
eprintf_to_host
|
|
||||||
__eqdf2
|
|
||||||
est_get_printf_buf_remain_len
|
|
||||||
est_reset_printf_buf_len
|
|
||||||
_etext
|
|
||||||
ets_aes_crypt
|
|
||||||
ets_aes_set_endian
|
|
||||||
ets_aes_setkey_dec
|
|
||||||
ets_aes_setkey_enc
|
|
||||||
ets_aes_start
|
|
||||||
ets_aes_stop
|
|
||||||
ets_bigint_disable
|
|
||||||
ets_bigint_enable
|
|
||||||
ets_bigint_mod_mult_getz
|
|
||||||
ets_bigint_mod_mult_prepare
|
|
||||||
ets_bigint_mod_power_getz
|
|
||||||
ets_bigint_mod_power_prepare
|
|
||||||
ets_bigint_montgomery_mult_getz
|
|
||||||
ets_bigint_montgomery_mult_prepare
|
|
||||||
ets_bigint_mult_getz
|
|
||||||
ets_bigint_mult_prepare
|
|
||||||
ets_bigint_wait_finish
|
|
||||||
ets_delay_us
|
|
||||||
ets_efuse_get_8M_clock
|
|
||||||
ets_efuse_get_spiconfig
|
|
||||||
ets_efuse_program_op
|
|
||||||
ets_efuse_read_op
|
|
||||||
ets_efuse_start
|
|
||||||
ets_efuse_stop
|
|
||||||
ets_external_printf
|
|
||||||
ets_get_cpu_frequency
|
|
||||||
ets_get_detected_xtal_freq
|
|
||||||
ets_get_xtal_scale
|
|
||||||
ets_install_external_printf
|
|
||||||
ets_install_putc1
|
|
||||||
ets_install_putc2
|
|
||||||
ets_install_uart_printf
|
|
||||||
ets_intr_count
|
|
||||||
ets_intr_lock
|
|
||||||
ets_intr_unlock
|
|
||||||
ets_isr_attach
|
|
||||||
ets_isr_mask
|
|
||||||
ets_isr_unmask
|
|
||||||
ets_post
|
|
||||||
ets_printf
|
|
||||||
ets_readySet_
|
|
||||||
ets_run
|
|
||||||
ets_secure_boot_check
|
|
||||||
ets_secure_boot_check_finish
|
|
||||||
ets_secure_boot_check_start
|
|
||||||
ets_secure_boot_finish
|
|
||||||
ets_secure_boot_hash
|
|
||||||
ets_secure_boot_obtain
|
|
||||||
ets_secure_boot_rd_abstract
|
|
||||||
ets_secure_boot_rd_iv
|
|
||||||
ets_secure_boot_start
|
|
||||||
ets_set_appcpu_boot_addr
|
|
||||||
ets_set_idle_cb
|
|
||||||
ets_set_startup_callback
|
|
||||||
ets_set_user_start
|
|
||||||
ets_sha_finish
|
|
||||||
ets_sha_init
|
|
||||||
ets_sha_start
|
|
||||||
ets_sha_stop
|
|
||||||
ets_sha_update
|
|
||||||
ets_startup_callback
|
|
||||||
ets_task
|
|
||||||
ets_timer_arm
|
|
||||||
ets_timer_arm_us
|
|
||||||
ets_timer_disarm
|
|
||||||
ets_timer_done
|
|
||||||
ets_timer_handler_isr
|
|
||||||
ets_timer_init
|
|
||||||
ets_timer_setfn
|
|
||||||
ets_uart_printf
|
|
||||||
ets_unpack_flash_code
|
|
||||||
ets_update_cpu_frequency
|
|
||||||
ets_waiti0
|
|
||||||
_exit_r
|
|
||||||
fclose
|
|
||||||
_fclose_r
|
|
||||||
fflush
|
|
||||||
_fflush_r
|
|
||||||
FilePacketSendDeflatedReqMsgProc
|
|
||||||
FilePacketSendReqMsgProc
|
|
||||||
_findenv_r
|
|
||||||
fiprintf
|
|
||||||
_fiprintf_r
|
|
||||||
fiscanf
|
|
||||||
_fiscanf_r
|
|
||||||
__fixdfsi
|
|
||||||
__fixunsdfsi
|
|
||||||
FlashDwnLdDeflatedStartMsgProc
|
|
||||||
FlashDwnLdParamCfgMsgProc
|
|
||||||
FlashDwnLdStartMsgProc
|
|
||||||
FlashDwnLdStopDeflatedReqMsgProc
|
|
||||||
FlashDwnLdStopReqMsgProc
|
|
||||||
__floatsidf
|
|
||||||
__floatunsidf
|
|
||||||
__fpclassifyd
|
|
||||||
__fp_lock_all
|
|
||||||
fprintf
|
|
||||||
_fprintf_r
|
|
||||||
__fp_unlock_all
|
|
||||||
fputwc
|
|
||||||
__fputwc
|
|
||||||
_fputwc_r
|
|
||||||
free
|
|
||||||
_free_r
|
|
||||||
fscanf
|
|
||||||
_fscanf_r
|
|
||||||
_fstat_r
|
|
||||||
_fwalk
|
|
||||||
_fwalk_reent
|
|
||||||
__gedf2
|
|
||||||
_GeneralException
|
|
||||||
__get_current_time_locale
|
|
||||||
_getenv_r
|
|
||||||
__gethex
|
|
||||||
_getpid_r
|
|
||||||
__getreent
|
|
||||||
_gettimeofday_r
|
|
||||||
__gettzinfo
|
|
||||||
GetUartDevice
|
|
||||||
_global_impure_ptr
|
|
||||||
gmtime
|
|
||||||
gmtime_r
|
|
||||||
gpio_init
|
|
||||||
gpio_input_get
|
|
||||||
gpio_input_get_high
|
|
||||||
gpio_intr_ack
|
|
||||||
gpio_intr_ack_high
|
|
||||||
gpio_intr_handler_register
|
|
||||||
gpio_intr_pending
|
|
||||||
gpio_intr_pending_high
|
|
||||||
gpio_matrix_in
|
|
||||||
gpio_matrix_out
|
|
||||||
gpio_output_set
|
|
||||||
gpio_output_set_high
|
|
||||||
gpio_pad_unhold
|
|
||||||
gpio_pending_mask
|
|
||||||
gpio_pending_mask_high
|
|
||||||
gpio_pin_intr_state_set
|
|
||||||
gpio_pin_wakeup_disable
|
|
||||||
gpio_pin_wakeup_enable
|
|
||||||
gpio_register_get
|
|
||||||
gpio_register_set
|
|
||||||
__gtdf2
|
|
||||||
gTxMsg
|
|
||||||
__hexdig_fun
|
|
||||||
__hexnan
|
|
||||||
__hi0bits
|
|
||||||
__i2b
|
|
||||||
intr_matrix_set
|
|
||||||
iprintf
|
|
||||||
_iprintf_r
|
|
||||||
isalnum
|
|
||||||
isalpha
|
|
||||||
isascii
|
|
||||||
_isatty_r
|
|
||||||
isblank
|
|
||||||
iscanf
|
|
||||||
_iscanf_r
|
|
||||||
iscntrl
|
|
||||||
isdigit
|
|
||||||
isgraph
|
|
||||||
islower
|
|
||||||
isprint
|
|
||||||
ispunct
|
|
||||||
isspace
|
|
||||||
isupper
|
|
||||||
itoa
|
|
||||||
__itoa
|
|
||||||
_KernelExceptionVector
|
|
||||||
_kill_r
|
|
||||||
labs
|
|
||||||
ldiv
|
|
||||||
__ledf2
|
|
||||||
_Level2FromVector
|
|
||||||
_Level2Vector
|
|
||||||
_Level3FromVector
|
|
||||||
_Level3Vector
|
|
||||||
_Level4FromVector
|
|
||||||
_Level4Vector
|
|
||||||
_Level5FromVector
|
|
||||||
_Level5Vector
|
|
||||||
_LevelOneInterrupt
|
|
||||||
_link_r
|
|
||||||
lldesc_build_chain
|
|
||||||
lldesc_num2link
|
|
||||||
lldesc_set_owner
|
|
||||||
__lo0bits
|
|
||||||
__locale_charset
|
|
||||||
__locale_cjk_lang
|
|
||||||
localeconv
|
|
||||||
_localeconv_r
|
|
||||||
__locale_mb_cur_max
|
|
||||||
__locale_msgcharset
|
|
||||||
localtime
|
|
||||||
localtime_r
|
|
||||||
_lock_acquire
|
|
||||||
_lock_acquire_recursive
|
|
||||||
_lock_close
|
|
||||||
_lock_close_recursive
|
|
||||||
_lock_init
|
|
||||||
_lock_init_recursive
|
|
||||||
_lock_release
|
|
||||||
_lock_release_recursive
|
|
||||||
_lock_try_acquire
|
|
||||||
_lock_try_acquire_recursive
|
|
||||||
longjmp
|
|
||||||
_lseek_r
|
|
||||||
__lshift
|
|
||||||
__ltdf2
|
|
||||||
main
|
|
||||||
malloc
|
|
||||||
_malloc_r
|
|
||||||
__mcmp
|
|
||||||
MD5Final
|
|
||||||
MD5Init
|
|
||||||
MD5Update
|
|
||||||
md5_vector
|
|
||||||
__mdiff
|
|
||||||
memccpy
|
|
||||||
memchr
|
|
||||||
memcmp
|
|
||||||
memcpy
|
|
||||||
MemDwnLdStartMsgProc
|
|
||||||
MemDwnLdStopReqMsgProc
|
|
||||||
memmove
|
|
||||||
MemPacketSendReqMsgProc
|
|
||||||
memrchr
|
|
||||||
memset
|
|
||||||
mktime
|
|
||||||
mmu_init
|
|
||||||
_mprec_log10
|
|
||||||
__muldf3
|
|
||||||
__multadd
|
|
||||||
__multiply
|
|
||||||
multofup
|
|
||||||
mz_adler32
|
|
||||||
mz_crc32
|
|
||||||
mz_free
|
|
||||||
nanf
|
|
||||||
__nedf2
|
|
||||||
_NMIExceptionVector
|
|
||||||
open
|
|
||||||
_open_r
|
|
||||||
__pow5mult
|
|
||||||
printf
|
|
||||||
_printf_common
|
|
||||||
_printf_float
|
|
||||||
_printf_i
|
|
||||||
_printf_r
|
|
||||||
print_rom_meminfo
|
|
||||||
qsort
|
|
||||||
_raise_r
|
|
||||||
rand
|
|
||||||
rand_r
|
|
||||||
__ratio
|
|
||||||
RcvMsg
|
|
||||||
read
|
|
||||||
_read_r
|
|
||||||
realloc
|
|
||||||
_realloc_r
|
|
||||||
RecvBuff
|
|
||||||
recv_packet
|
|
||||||
_rename_r
|
|
||||||
_ResetHandler
|
|
||||||
_ResetVector
|
|
||||||
_rom_store
|
|
||||||
_rom_store_table
|
|
||||||
roundup2
|
|
||||||
rtc_boot_control
|
|
||||||
rtc_get_reset_reason
|
|
||||||
rtc_get_wakeup_cause
|
|
||||||
rtc_select_apb_bridge
|
|
||||||
__s2b
|
|
||||||
sbrk
|
|
||||||
_sbrk_r
|
|
||||||
scanf
|
|
||||||
_scanf_chars
|
|
||||||
_scanf_float
|
|
||||||
_scanf_i
|
|
||||||
_scanf_r
|
|
||||||
__sccl
|
|
||||||
__sclose
|
|
||||||
SelectSpiFunction
|
|
||||||
SelectSpiQIO
|
|
||||||
SendMsg
|
|
||||||
send_packet
|
|
||||||
__seofread
|
|
||||||
setjmp
|
|
||||||
setlocale
|
|
||||||
_setlocale_r
|
|
||||||
sf_dump
|
|
||||||
__sflush_r
|
|
||||||
__sfmoreglue
|
|
||||||
__sfp
|
|
||||||
__sfp_lock_acquire
|
|
||||||
__sfp_lock_release
|
|
||||||
__sfputs_r
|
|
||||||
__sfvwrite_r
|
|
||||||
__sinit
|
|
||||||
__sinit_lock_acquire
|
|
||||||
__sinit_lock_release
|
|
||||||
sip_alloc_to_host_evt
|
|
||||||
sip_get_ptr
|
|
||||||
sip_get_state
|
|
||||||
sip_init_attach
|
|
||||||
sip_install_rx_ctrl_cb
|
|
||||||
sip_install_rx_data_cb
|
|
||||||
sip_post_init
|
|
||||||
sip_reclaim_from_host_cmd
|
|
||||||
sip_reclaim_tx_data_pkt
|
|
||||||
siprintf
|
|
||||||
_siprintf_r
|
|
||||||
sip_send
|
|
||||||
sip_to_host_chain_append
|
|
||||||
sip_to_host_evt_send_done
|
|
||||||
siscanf
|
|
||||||
_siscanf_r
|
|
||||||
slc_add_credits
|
|
||||||
slc_enable
|
|
||||||
slc_from_host_chain_fetch
|
|
||||||
slc_from_host_chain_recycle
|
|
||||||
slc_has_pkt_to_host
|
|
||||||
slc_init_attach
|
|
||||||
slc_init_credit
|
|
||||||
slc_reattach
|
|
||||||
slc_select_tohost_gpio
|
|
||||||
slc_select_tohost_gpio_mode
|
|
||||||
slc_send_to_host_chain
|
|
||||||
slc_set_host_io_max_window
|
|
||||||
slc_to_host_chain_recycle
|
|
||||||
__smakebuf_r
|
|
||||||
sniprintf
|
|
||||||
_sniprintf_r
|
|
||||||
snprintf
|
|
||||||
_snprintf_r
|
|
||||||
software_reset
|
|
||||||
software_reset_app_cpu
|
|
||||||
software_reset_pro_cpu
|
|
||||||
spi_cache_sram_init
|
|
||||||
SPIClkConfig
|
|
||||||
SPI_Common_Command
|
|
||||||
SPI_Encrypt_Write
|
|
||||||
SPIEraseArea
|
|
||||||
SPIEraseBlock
|
|
||||||
SPIEraseChip
|
|
||||||
SPIEraseSector
|
|
||||||
spi_flash_attach
|
|
||||||
SPILock
|
|
||||||
SPIMasterReadModeCnfig
|
|
||||||
SPIParamCfg
|
|
||||||
SPI_Prepare_Encrypt_Data
|
|
||||||
SPIRead
|
|
||||||
SPIReadModeCnfig
|
|
||||||
SPIUnlock
|
|
||||||
SPIWrite
|
|
||||||
SPI_Write_Encrypt_Disable
|
|
||||||
SPI_Write_Encrypt_Enable
|
|
||||||
sprintf
|
|
||||||
_sprintf_r
|
|
||||||
__sprint_r
|
|
||||||
srand
|
|
||||||
__sread
|
|
||||||
__srefill_r
|
|
||||||
sscanf
|
|
||||||
_sscanf_r
|
|
||||||
__sseek
|
|
||||||
__ssprint_r
|
|
||||||
__ssputs_r
|
|
||||||
__ssrefill_r
|
|
||||||
__ssvfiscanf_r
|
|
||||||
__ssvfscanf_r
|
|
||||||
__stack
|
|
||||||
__stack_app
|
|
||||||
_stack_sentry
|
|
||||||
_stack_sentry_app
|
|
||||||
_start
|
|
||||||
start_tb_console
|
|
||||||
_stat_r
|
|
||||||
_stext
|
|
||||||
strcasecmp
|
|
||||||
strcasestr
|
|
||||||
strcat
|
|
||||||
strchr
|
|
||||||
strcmp
|
|
||||||
strcoll
|
|
||||||
strcpy
|
|
||||||
strcspn
|
|
||||||
strdup
|
|
||||||
_strdup_r
|
|
||||||
strftime
|
|
||||||
strlcat
|
|
||||||
strlcpy
|
|
||||||
strlen
|
|
||||||
strlwr
|
|
||||||
strncasecmp
|
|
||||||
strncat
|
|
||||||
strncmp
|
|
||||||
strncpy
|
|
||||||
strndup
|
|
||||||
_strndup_r
|
|
||||||
strnlen
|
|
||||||
strrchr
|
|
||||||
strsep
|
|
||||||
strspn
|
|
||||||
strstr
|
|
||||||
strtod
|
|
||||||
_strtod_r
|
|
||||||
strtof
|
|
||||||
__strtok_r
|
|
||||||
strtok_r
|
|
||||||
strtol
|
|
||||||
_strtol_r
|
|
||||||
strtoul
|
|
||||||
_strtoul_r
|
|
||||||
strupr
|
|
||||||
__subdf3
|
|
||||||
__submore
|
|
||||||
_sungetc_r
|
|
||||||
_svfiprintf_r
|
|
||||||
__svfiscanf_r
|
|
||||||
_svfprintf_r
|
|
||||||
__svfscanf
|
|
||||||
__svfscanf_r
|
|
||||||
__swbuf
|
|
||||||
__swbuf_r
|
|
||||||
__swrite
|
|
||||||
__swsetup_r
|
|
||||||
_SyscallException
|
|
||||||
syscall_table_ptr_app
|
|
||||||
syscall_table_ptr_pro
|
|
||||||
_system_r
|
|
||||||
tdefl_compress
|
|
||||||
tdefl_compress_buffer
|
|
||||||
tdefl_compress_mem_to_heap
|
|
||||||
tdefl_compress_mem_to_mem
|
|
||||||
tdefl_compress_mem_to_output
|
|
||||||
tdefl_get_adler32
|
|
||||||
tdefl_get_prev_return_status
|
|
||||||
tdefl_init
|
|
||||||
tdefl_write_image_to_png_file_in_memory
|
|
||||||
tdefl_write_image_to_png_file_in_memory_ex
|
|
||||||
time
|
|
||||||
__time_load_locale
|
|
||||||
times
|
|
||||||
_times_r
|
|
||||||
_timezone
|
|
||||||
tinfl_decompress
|
|
||||||
tinfl_decompress_mem_to_callback
|
|
||||||
tinfl_decompress_mem_to_heap
|
|
||||||
tinfl_decompress_mem_to_mem
|
|
||||||
toascii
|
|
||||||
tolower
|
|
||||||
toupper
|
|
||||||
__truncdfsf2
|
|
||||||
__tzcalc_limits
|
|
||||||
__tz_lock
|
|
||||||
tzset
|
|
||||||
_tzset_r
|
|
||||||
__tz_unlock
|
|
||||||
uartAttach
|
|
||||||
uart_baudrate_detect
|
|
||||||
uart_buff_switch
|
|
||||||
UartConnCheck
|
|
||||||
UartConnectProc
|
|
||||||
UartDev
|
|
||||||
uart_div_modify
|
|
||||||
UartDwnLdProc
|
|
||||||
UartGetCmdLn
|
|
||||||
Uart_Init
|
|
||||||
UartRegReadProc
|
|
||||||
UartRegWriteProc
|
|
||||||
uart_rx_intr_handler
|
|
||||||
uart_rx_one_char
|
|
||||||
uart_rx_one_char_block
|
|
||||||
uart_rx_readbuff
|
|
||||||
UartRxString
|
|
||||||
UartSetBaudProc
|
|
||||||
UartSpiAttachProc
|
|
||||||
UartSpiReadProc
|
|
||||||
uart_tx_flush
|
|
||||||
uart_tx_one_char
|
|
||||||
uart_tx_one_char2
|
|
||||||
uart_tx_switch
|
|
||||||
uart_tx_wait_idle
|
|
||||||
__udivdi3
|
|
||||||
__ulp
|
|
||||||
__umoddi3
|
|
||||||
ungetc
|
|
||||||
_ungetc_r
|
|
||||||
_unlink_r
|
|
||||||
__unorddf2
|
|
||||||
user_code_start
|
|
||||||
_UserExceptionVector
|
|
||||||
utoa
|
|
||||||
__utoa
|
|
||||||
vasiprintf
|
|
||||||
_vasiprintf_r
|
|
||||||
vasniprintf
|
|
||||||
_vasniprintf_r
|
|
||||||
vasnprintf
|
|
||||||
_vasnprintf_r
|
|
||||||
vasprintf
|
|
||||||
_vasprintf_r
|
|
||||||
VerifyFlashMd5Proc
|
|
||||||
vfiprintf
|
|
||||||
_vfiprintf_r
|
|
||||||
vfiscanf
|
|
||||||
_vfiscanf_r
|
|
||||||
vfprintf
|
|
||||||
_vfprintf_r
|
|
||||||
vfscanf
|
|
||||||
_vfscanf_r
|
|
||||||
viprintf
|
|
||||||
_viprintf_r
|
|
||||||
viscanf
|
|
||||||
_viscanf_r
|
|
||||||
vprintf
|
|
||||||
_vprintf_r
|
|
||||||
vscanf
|
|
||||||
_vscanf_r
|
|
||||||
vsiprintf
|
|
||||||
_vsiprintf_r
|
|
||||||
vsiscanf
|
|
||||||
_vsiscanf_r
|
|
||||||
vsniprintf
|
|
||||||
_vsniprintf_r
|
|
||||||
vsnprintf
|
|
||||||
_vsnprintf_r
|
|
||||||
vsprintf
|
|
||||||
_vsprintf_r
|
|
||||||
vsscanf
|
|
||||||
_vsscanf_r
|
|
||||||
wcrtomb
|
|
||||||
_wcrtomb_r
|
|
||||||
_wctomb_r
|
|
||||||
_WindowOverflow12
|
|
||||||
_WindowOverflow4
|
|
||||||
_WindowOverflow8
|
|
||||||
_WindowUnderflow12
|
|
||||||
_WindowUnderflow4
|
|
||||||
_WindowUnderflow8
|
|
||||||
write
|
|
||||||
_write_r
|
|
||||||
xthal_bcopy
|
|
||||||
xthal_copy123
|
|
||||||
xthal_get_ccompare
|
|
||||||
xthal_get_ccount
|
|
||||||
xthal_get_interrupt
|
|
||||||
xthal_get_intread
|
|
||||||
xthal_memcpy
|
|
||||||
xthal_set_ccompare
|
|
||||||
xthal_set_intclear
|
|
||||||
_xtos_alloca_handler
|
|
||||||
_xtos_cause3_handler
|
|
||||||
_xtos_c_wrapper_handler
|
|
||||||
_xtos_ints_off
|
|
||||||
_xtos_ints_on
|
|
||||||
_xtos_l1int_handler
|
|
||||||
_xtos_p_none
|
|
||||||
_xtos_restore_intlevel
|
|
||||||
_xtos_return_from_exc
|
|
||||||
_xtos_set_exception_handler
|
|
||||||
_xtos_set_interrupt_handler
|
|
||||||
_xtos_set_interrupt_handler_arg
|
|
||||||
_xtos_set_intlevel
|
|
||||||
_xtos_set_min_intlevel
|
|
||||||
_xtos_set_vpri
|
|
||||||
_xtos_syscall_handler
|
|
||||||
_xtos_unhandled_exception
|
|
||||||
_xtos_unhandled_interrupt
|
|
@ -1,23 +0,0 @@
|
|||||||
#!/bin/bash
|
|
||||||
|
|
||||||
ROMELF=~/esp8266/esp32/rom_image/eagle.pro.rom.out
|
|
||||||
|
|
||||||
rm -rf extracted
|
|
||||||
mkdir extracted
|
|
||||||
cd extracted
|
|
||||||
mkdir inrom
|
|
||||||
ar x ../libc.a
|
|
||||||
cp ../libc.a ../libc-minusrom.a
|
|
||||||
|
|
||||||
nm $ROMELF | grep -e ' [TB] ' | cut -d ' ' -f 3- > romsyms
|
|
||||||
|
|
||||||
for x in *.o; do
|
|
||||||
nm $x | grep -e ' [TB] ' | cut -d ' ' -f 3- | while read a; do
|
|
||||||
if [ -e "$x" ] && cat romsyms | grep -q '^'$a'$'; then
|
|
||||||
echo "$a found in rom"
|
|
||||||
mv $x inrom
|
|
||||||
ar -d ../libc-minusrom.a $x
|
|
||||||
fi
|
|
||||||
done
|
|
||||||
done
|
|
||||||
|
|
Binary file not shown.
Binary file not shown.
BIN
components/newlib/lib/libc_nano.a
Normal file
BIN
components/newlib/lib/libc_nano.a
Normal file
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
@ -25,6 +25,7 @@
|
|||||||
#include "rom/libc_stubs.h"
|
#include "rom/libc_stubs.h"
|
||||||
#include "esp_vfs.h"
|
#include "esp_vfs.h"
|
||||||
#include "esp_newlib.h"
|
#include "esp_newlib.h"
|
||||||
|
#include "sdkconfig.h"
|
||||||
|
|
||||||
static struct _reent s_reent;
|
static struct _reent s_reent;
|
||||||
|
|
||||||
@ -76,8 +77,13 @@ static struct syscall_stub_table s_stub_table = {
|
|||||||
._lock_try_acquire_recursive = &_lock_try_acquire_recursive,
|
._lock_try_acquire_recursive = &_lock_try_acquire_recursive,
|
||||||
._lock_release = &_lock_release,
|
._lock_release = &_lock_release,
|
||||||
._lock_release_recursive = &_lock_release_recursive,
|
._lock_release_recursive = &_lock_release_recursive,
|
||||||
|
#ifdef CONFIG_NEWLIB_NANO_FORMAT
|
||||||
._printf_float = &_printf_float,
|
._printf_float = &_printf_float,
|
||||||
._scanf_float = &_scanf_float,
|
._scanf_float = &_scanf_float,
|
||||||
|
#else
|
||||||
|
._printf_float = NULL,
|
||||||
|
._scanf_float = NULL,
|
||||||
|
#endif
|
||||||
};
|
};
|
||||||
|
|
||||||
void esp_setup_syscall_table()
|
void esp_setup_syscall_table()
|
||||||
|
@ -1,10 +1,11 @@
|
|||||||
#include <stdio.h>
|
#include <stdio.h>
|
||||||
|
#include <stdbool.h>
|
||||||
#include <ctype.h>
|
#include <ctype.h>
|
||||||
#include <errno.h>
|
#include <errno.h>
|
||||||
#include <stdlib.h>
|
#include <stdlib.h>
|
||||||
#include <time.h>
|
#include <time.h>
|
||||||
#include "unity.h"
|
#include "unity.h"
|
||||||
|
#include "sdkconfig.h"
|
||||||
|
|
||||||
TEST_CASE("test ctype functions", "[newlib]")
|
TEST_CASE("test ctype functions", "[newlib]")
|
||||||
{
|
{
|
||||||
@ -22,6 +23,10 @@ TEST_CASE("test atoX functions", "[newlib]")
|
|||||||
TEST_ASSERT_EQUAL_INT(2147483647, atoi("2147483647"));
|
TEST_ASSERT_EQUAL_INT(2147483647, atoi("2147483647"));
|
||||||
TEST_ASSERT_EQUAL_INT(42, atoi("000000042"));
|
TEST_ASSERT_EQUAL_INT(42, atoi("000000042"));
|
||||||
TEST_ASSERT_EQUAL_INT(0, strtol("foo", NULL, 10));
|
TEST_ASSERT_EQUAL_INT(0, strtol("foo", NULL, 10));
|
||||||
|
TEST_ASSERT_EQUAL(0.123443, atof("0.123443"));
|
||||||
|
TEST_ASSERT_EQUAL(0.123443f, atoff("0.123443"));
|
||||||
|
TEST_ASSERT_EQUAL(31.41238, strtod("0.3141238e2", NULL));
|
||||||
|
TEST_ASSERT_EQUAL(0.025f, strtof("0.025", NULL));
|
||||||
}
|
}
|
||||||
|
|
||||||
TEST_CASE("test sprintf function", "[newlib]")
|
TEST_CASE("test sprintf function", "[newlib]")
|
||||||
@ -81,22 +86,64 @@ TEST_CASE("test time functions", "[newlib]")
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
static int checkFnRom(void *fn, char *name)
|
static bool fn_in_rom(void *fn, char *name)
|
||||||
{
|
{
|
||||||
int fnaddr = (int)fn;
|
const int fnaddr = (int)fn;
|
||||||
printf("%s: 0X%x\n", name, fnaddr);
|
return (fnaddr >= 0x40000000) && (fnaddr < 0x40070000);
|
||||||
if ((fnaddr >= 0x40000000) && (fnaddr < 0x40070000)) {
|
|
||||||
return 1;
|
|
||||||
} else {
|
|
||||||
return 0;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
TEST_CASE("check if ROM is used for functions", "[newlib]")
|
TEST_CASE("check if ROM or Flash is used for functions", "[newlib]")
|
||||||
{
|
{
|
||||||
TEST_ASSERT(checkFnRom(printf, "printf"));
|
#ifdef CONFIG_NEWLIB_NANO_FORMAT
|
||||||
TEST_ASSERT(checkFnRom(sscanf, "sscanf"));
|
TEST_ASSERT(fn_in_rom(printf, "printf"));
|
||||||
TEST_ASSERT(checkFnRom(atoi, "atoi"));
|
TEST_ASSERT(fn_in_rom(sscanf, "sscanf"));
|
||||||
TEST_ASSERT(checkFnRom(strtol, "strtol"));
|
#else
|
||||||
}
|
TEST_ASSERT_FALSE(fn_in_rom(printf, "printf"));
|
||||||
|
TEST_ASSERT_FALSE(fn_in_rom(sscanf, "sscanf"));
|
||||||
|
#endif
|
||||||
|
TEST_ASSERT(fn_in_rom(atoi, "atoi"));
|
||||||
|
TEST_ASSERT(fn_in_rom(strtol, "strtol"));
|
||||||
|
}
|
||||||
|
|
||||||
|
#ifndef CONFIG_NEWLIB_NANO_FORMAT
|
||||||
|
TEST_CASE("test 64bit int formats", "[newlib]")
|
||||||
|
{
|
||||||
|
char* res = NULL;
|
||||||
|
const uint64_t val = 123456789012LL;
|
||||||
|
|
||||||
|
asprintf(&res, "%llu", val);
|
||||||
|
TEST_ASSERT_NOT_NULL(res);
|
||||||
|
TEST_ASSERT_EQUAL_STRING("123456789012", res);
|
||||||
|
|
||||||
|
uint64_t sval;
|
||||||
|
int ret = sscanf(res, "%llu", &sval);
|
||||||
|
free(res);
|
||||||
|
|
||||||
|
TEST_ASSERT_EQUAL(1, ret);
|
||||||
|
TEST_ASSERT_EQUAL(val, sval);
|
||||||
|
}
|
||||||
|
#else
|
||||||
|
TEST_CASE("test 64bit int formats", "[newlib]")
|
||||||
|
{
|
||||||
|
char* res = NULL;
|
||||||
|
const uint64_t val = 123456789012LL;
|
||||||
|
|
||||||
|
asprintf(&res, "%llu", val);
|
||||||
|
TEST_ASSERT_NOT_NULL(res);
|
||||||
|
TEST_ASSERT_EQUAL_STRING("lu", res);
|
||||||
|
|
||||||
|
uint64_t sval;
|
||||||
|
int ret = sscanf(res, "%llu", &sval);
|
||||||
|
free(res);
|
||||||
|
|
||||||
|
TEST_ASSERT_EQUAL(0, ret);
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
|
|
||||||
|
TEST_CASE("fmod and fmodf work as expected", "[newlib]")
|
||||||
|
{
|
||||||
|
TEST_ASSERT_EQUAL(0.1, fmod(10.1, 2.0));
|
||||||
|
TEST_ASSERT_EQUAL(0.1f, fmodf(10.1f, 2.0f));
|
||||||
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user