Files

The newlib version has been updated to "2.2.0" and supply two version C libraries to user. One is "libc.a" which functions have more features base on stand C, another is "libc_nano.c" which functions have less function.

You can choose the one you needed by menuconfig:

Component config --->
        newlib --- >
                newlib level(XXXX)
                        ( ) normal
                        ( ) nano

The normal "libc" has position argument, "long long" type data and float data transformation at function printf/scanf and so on. So it should cost more stack and heap, the test data as following:

Object Origin newlib New newlib New newlib nano
Start heap/byte 53000 Start heap/byte 49184 Start heap/byte 51824
Fucntion Stack/byte Heap/byte Heap cost/byte Stack/byte Heap/byte Heap cost/byte Stack/byte Heap/byte Heap cost/byte
isalnum 96 53000 0 80 49184 0 80 51824 0
isalpha 80 53000 0 64 49184 0 64 51824 0
isspace 80 53000 0 64 49184 0 64 51824 0
atoi 160 53000 0 144 49184 0 144 51824 0
strtol 144 53000 0 128 49184 0 128 51824 0
atof 224 53000 0 208 49184 0 208 51824 0
atoff 224 53000 0 208 49184 0 208 51824 0
strtod 208 53000 0 192 49184 0 192 51824 0
strtof 208 53000 0 192 49184 0 192 51824 0
asprintf 880 52616 384 1200 48800 384 608 51632 192
sscanf 1552 53000 0 2032 49184 0 1120 51824 0
gmtime 944 52616 384 1040 48576 608 1296 51512 312
localtime 160 53000 0 288 49184 0 288 51824 0
mktime 320 53000 0 448 49184 0 448 51824 0
asctime 768 52488 480 1264 48528 656 752 51464 360
settimeofday 336 53000 0 320 49184 0 320 51824 0
gettimeofday 480 53000 0 464 49184 0 464 51824 0
localtime_r 304 53000 0 432 49184 0 432 51824 0
asprintf64bit 752 52424 576 1136 48336 848 608 51272 552
sscanf64bit 1056 53000 0 1376 49184 0 1040 51824 0