Reduce stack usage of _vfiprintf_r()
Freddie Chopin
freddie_chopin@op.pl
Wed Oct 10 17:40:00 GMT 2012
W dniu 2012-10-10 17:59, Federico Terraneo pisze:
> first of all, am not a newlib devloper, just a regular user. I noticed
> the exact same problem in RAM constrained ARM microcontrollers when
> using newlib together with an RTOS that I developed. The solution I
> found is different though, and is to apply a simple patch to newlib
> that redefines BUFSIZ to 512 instead of 1024. That small change later
> became part of a larger patch that can be found here:
> http://gitorious.org/miosix-kernel/miosix-kernel/blobs/master/miosix/compiler/gcc-patches/newlib.patch
> The relevant lines are 32--39.
Glad to hear that I'm not the only one that thinks newlib is "too big" (;
Your solution is "not good enough" - the stack is still wasted, 512
bytes is still a lot - considering that _vfiprintf_r() with my patch
uses about 300 bytes of stack, the 512 byte buffer almost triples that
usage, so for me that's still too much (; I think dynamic allocation in
this place is perfectly reasonable - whatever overhead does malloc have
it's better than wasting such amount of stack in every situation (as
proven in the first mail). In case of my code I don't expect it to be
ever called, because I don't use unbuffered streams.
Regards,
FCh
More information about the Newlib
mailing list