I am calling GNU's printf and I find that the elf out contains following segment:
.data 0x000802f4 0x444 c:/gnu/pc-cygwin/arm-elf/lib/libc.a(mallocr.o) 0x00080700 __malloc_top_pad 0x00080708 __malloc_max_sbrked_mem 0x00080704 __malloc_sbrk_base 0x00080710 __malloc_current_mallinfo 0x000802f4 __malloc_av_ 0x0008070c __malloc_max_total_mem 0x000806fc __malloc_trim_threshold 0x00080740 .=ALIGN(0x10)
Yes, this is one of the problems with GNU. The run-time library is very in-efficient and uses all kind of routines. You should consider to move to the Keil CARM Compiler which has a run-time library that is designed for embedded systems. Reinhard
Thanks, Reinhard Keil So you means that the samples in c:\Keil\ARM\GNU\Examples\Measure will eventually call malloc() too? and what is the functionality of syscall.c? What if I don't include this? Is it for the sake of removing GNU's dummy functions?
As far as I remember, printf itself does not require malloc. However scanf requires it. For the rest you your questions, you should read the Getting Started User's Guide. Reinhard
View all questions in Keil forum