1/* These are the printf/scanf related newlib functions present in ESP32 ROM. 2 These functions are compiled with newlib "nano" format option. 3 As such, they don's support 64-bit integer formats. 4 Floating point formats are supported by setting _printf_float and 5 _scanf_float entries in syscall table. This is done automatically 6 by startup code. 7 These functions should not be used when compiling with PSRAM cache workaround enabled. 8 See also esp32.rom.newlib-data.ld for the list of .data/.bss symbols 9 used by newlib functions, and esp32.rom.newlib-funcs.ld for the list 10 of general newlib functions. 11 12 Unlike other ROM functions which are exported using PROVIDE, which declares 13 weak symbols, newlib related functions are exported using assignment, 14 which declares strong symbols. This is done so that ROM functions are always 15 used instead of the ones provided by libc.a. 16 */ 17 18asiprintf = 0x40056d9c; 19_asiprintf_r = 0x40056d4c; 20asniprintf = 0x40056cd8; 21_asniprintf_r = 0x40056c64; 22asnprintf = 0x40056cd8; 23_asnprintf_r = 0x40056c64; 24asprintf = 0x40056d9c; 25_asprintf_r = 0x40056d4c; 26fiprintf = 0x40056efc; 27_fiprintf_r = 0x40056ed8; 28fiscanf = 0x40058884; 29_fiscanf_r = 0x400588b4; 30fprintf = 0x40056efc; 31_fprintf_r = 0x40056ed8; 32fscanf = 0x40058884; 33_fscanf_r = 0x400588b4; 34iprintf = 0x40056978; 35_iprintf_r = 0x40056944; 36iscanf = 0x40058760; 37_iscanf_r = 0x4005879c; 38printf = 0x40056978; 39_printf_common = 0x40057338; 40_printf_i = 0x40057404; 41_printf_r = 0x40056944; 42scanf = 0x40058760; 43_scanf_chars = 0x40058384; 44_scanf_i = 0x4005845c; 45_scanf_r = 0x4005879c; 46__sfputs_r = 0x40057790; 47siprintf = 0x40056c08; 48_siprintf_r = 0x40056bbc; 49siscanf = 0x400587d0; 50_siscanf_r = 0x40058830; 51sniprintf = 0x40056b4c; 52_sniprintf_r = 0x40056ae4; 53snprintf = 0x40056b4c; 54_snprintf_r = 0x40056ae4; 55sprintf = 0x40056c08; 56_sprintf_r = 0x40056bbc; 57__sprint_r = 0x400577e4; 58sscanf = 0x400587d0; 59_sscanf_r = 0x40058830; 60__ssprint_r = 0x40056ff8; 61__ssputs_r = 0x40056f2c; 62__ssrefill_r = 0x40057fec; 63__ssvfiscanf_r = 0x4005802c; 64__ssvfscanf_r = 0x4005802c; 65_sungetc_r = 0x40057f6c; 66_svfiprintf_r = 0x40057100; 67__svfiscanf_r = 0x40057b08; 68_svfprintf_r = 0x40057100; 69__svfscanf = 0x40057f04; 70__svfscanf_r = 0x40057b08; 71vasiprintf = 0x40056eb8; 72_vasiprintf_r = 0x40056e80; 73vasniprintf = 0x40056e58; 74_vasniprintf_r = 0x40056df8; 75vasnprintf = 0x40056e58; 76_vasnprintf_r = 0x40056df8; 77vasprintf = 0x40056eb8; 78_vasprintf_r = 0x40056e80; 79vfiprintf = 0x40057ae8; 80_vfiprintf_r = 0x40057850; 81vfiscanf = 0x40057eb8; 82_vfiscanf_r = 0x40057f24; 83vfprintf = 0x40057ae8; 84_vfprintf_r = 0x40057850; 85vfscanf = 0x40057eb8; 86_vfscanf_r = 0x40057f24; 87viprintf = 0x400569b4; 88_viprintf_r = 0x400569e4; 89viscanf = 0x40058698; 90_viscanf_r = 0x400586c8; 91vprintf = 0x400569b4; 92_vprintf_r = 0x400569e4; 93vscanf = 0x40058698; 94_vscanf_r = 0x400586c8; 95vsiprintf = 0x40056ac4; 96_vsiprintf_r = 0x40056a90; 97vsiscanf = 0x40058740; 98_vsiscanf_r = 0x400586f8; 99vsniprintf = 0x40056a68; 100_vsniprintf_r = 0x40056a14; 101vsnprintf = 0x40056a68; 102_vsnprintf_r = 0x40056a14; 103vsprintf = 0x40056ac4; 104_vsprintf_r = 0x40056a90; 105vsscanf = 0x40058740; 106_vsscanf_r = 0x400586f8; 107 108/* _print_float and _scanf_float functions in ROM are stubs which call 109 real implementations in IDF through the syscall table. 110 As such, don't include these ROM symbols. 111 112_printf_float = 0x4000befc; 113_scanf_float = 0x4000bf18; 114 115*/ 116