EmbeddedRelated.com
Forums

winarm - include stdio

Started by klemen_dovrtel January 31, 2007
When i try to include "stdio.h" in my project and use sprintf();
function, i get all kind of errors, whay is that? If i include
"math.h" for instance, i have no problem.

Linking: main.elf
arm-elf-gcc -mthumb -mcpu=arm7tdmi-s -mthumb-interwork -I. -gdwarf-2
-DROM_RUN -Os -Wall -Wcast-align -Wcast-qual -Wimplicit
-Wpointer-arith -Wswitch -Wredundant-decls -Wreturn-type -Wshadow
-Wunused -Wa,-adhlns=crt0.lst -I./inc -I./conf -MD -MP -MF
.dep/main.elf.d crt0.o uartISR.o armVIC.o main.o uart.o sysTime.o
1wire.o --output main.elf -nostartfiles -Wl,-Map=main.map,--cref -lc
-lnewlib-lpc -lm -lc -lgcc -lstdc++ -TLPC2138-ROM.ld
c:/winarm/bin/../lib/gcc/arm-elf/4.1.1/../../../../arm-elf/bin/ld.exe:
Warning: c:\winarm\arm-elf\bin\../lib\libnewlib-lpc.a(_close_r.o) does
not support interworking, whereas main.elf does
c:/winarm/bin/../lib/gcc/arm-elf/4.1.1/../../../../arm-elf/bin/ld.exe:
Warning: c:\winarm\arm-elf\bin\../lib\libnewlib-lpc.a(_fstat_r.o) does
not support interworking, whereas main.elf does
c:/winarm/bin/../lib/gcc/arm-elf/4.1.1/../../../../arm-elf/bin/ld.exe:
Warning: c:\winarm\arm-elf\bin\../lib\libnewlib-lpc.a(_lseek_r.o) does
not support interworking, whereas main.elf does
c:/winarm/bin/../lib/gcc/arm-elf/4.1.1/../../../../arm-elf/bin/ld.exe:
Warning: c:\winarm\arm-elf\bin\../lib\libnewlib-lpc.a(_read_r.o) does
not support interworking, whereas main.elf does
c:/winarm/bin/../lib/gcc/arm-elf/4.1.1/../../../../arm-elf/bin/ld.exe:
Warning: c:\winarm\arm-elf\bin\../lib\libnewlib-lpc.a(_sbrk_r.o) does
not support interworking, whereas main.elf does
c:/winarm/bin/../lib/gcc/arm-elf/4.1.1/../../../../arm-elf/bin/ld.exe:
Warning: c:\winarm\arm-elf\bin\../lib\libnewlib-lpc.a(_write_r.o) does
not support interworking, whereas main.elf does
c:/winarm/bin/../lib/gcc/arm-elf/4.1.1/../../../../arm-elf/bin/ld.exe:
Warning: c:\winarm\arm-elf\bin\../lib\libnewlib-lpc.a(_ioctl_r.o) does
not support interworking, whereas main.elf does
c:/winarm/bin/../lib/gcc/arm-elf/4.1.1/../../../../arm-elf/bin/ld.exe:
c:\winarm\arm-elf\bin\../lib\libnewlib-lpc.a(_sbrk_r.o)(_sbrk_r):
warning: interworking not enabled.
first occurrence:
c:/winarm/bin/../lib/gcc/arm-elf/4.1.1/../../../../arm-elf/lib/thumb/interwork\libc.a(freer.o):
thumb call to arm
c:/winarm/bin/../lib/gcc/arm-elf/4.1.1/../../../../arm-elf/lib/thumb/interwork\libc.a(freer.o):
In function `_malloc_trim_r':
mallocr.c:(.text+0x2c): warning: internal error: dangerous error
c:/winarm/bin/../lib/gcc/arm-elf/4.1.1/../../../../arm-elf/bin/ld.exe:
c:\winarm\arm-elf\bin\../lib\libnewlib-lpc.a(_sbrk_r.o)(_sbrk_r):
warning: interworking not enabled.
first occurrence:
c:/winarm/bin/../lib/gcc/arm-elf/4.1.1/../../../../arm-elf/lib/thumb/interwork\libc.a(freer.o):
thumb call to arm
mallocr.c:(.text+0x3c): warning: internal error: dangerous error
c:/winarm/bin/../lib/gcc/arm-elf/4.1.1/../../../../arm-elf/bin/ld.exe:
c:\winarm\arm-elf\bin\../lib\libnewlib-lpc.a(_sbrk_r.o)(_sbrk_r):
warning: interworking not enabled.
first occurrence:
c:/winarm/bin/../lib/gcc/arm-elf/4.1.1/../../../../arm-elf/lib/thumb/interwork\libc.a(freer.o):
thumb call to arm
mallocr.c:(.text+0x48): warning: internal error: dangerous error
c:/winarm/bin/../lib/gcc/arm-elf/4.1.1/../../../../arm-elf/bin/ld.exe:
c:\winarm\arm-elf\bin\../lib\libnewlib-lpc.a(_fstat_r.o)(_fstat_r):
warning: interworking not enabled.
first occurrence:
c:/winarm/bin/../lib/gcc/arm-elf/4.1.1/../../../../arm-elf/lib/thumb/interwork\libc.a(makebuf.o):
thumb call to arm
c:/winarm/bin/../lib/gcc/arm-elf/4.1.1/../../../../arm-elf/lib/thumb/interwork\libc.a(makebuf.o):
In function `__smakebuf':
makebuf.c:(.text+0x1c): warning: internal error: dangerous error
makebuf.c:(.text+0xb2): undefined reference to `isatty'
c:/winarm/bin/../lib/gcc/arm-elf/4.1.1/../../../../arm-elf/bin/ld.exe:
c:\winarm\arm-elf\bin\../lib\libnewlib-lpc.a(_sbrk_r.o)(_sbrk_r):
warning: interworking not enabled.
first occurrence:
c:/winarm/bin/../lib/gcc/arm-elf/4.1.1/../../../../arm-elf/lib/thumb/interwork\libc.a(mallocr.o):
thumb call to arm
c:/winarm/bin/../lib/gcc/arm-elf/4.1.1/../../../../arm-elf/lib/thumb/interwork\libc.a(mallocr.o):
In function `_malloc_r':
mallocr.c:(.text+0x2e8): warning: internal error: dangerous error
c:/winarm/bin/../lib/gcc/arm-elf/4.1.1/../../../../arm-elf/bin/ld.exe:
c:\winarm\arm-elf\bin\../lib\libnewlib-lpc.a(_sbrk_r.o)(_sbrk_r):
warning: interworking not enabled.
first occurrence:
c:/winarm/bin/../lib/gcc/arm-elf/4.1.1/../../../../arm-elf/lib/thumb/interwork\libc.a(mallocr.o):
thumb call to arm
mallocr.c:(.text+0x388): warning: internal error: dangerous error
c:/winarm/bin/../lib/gcc/arm-elf/4.1.1/../../../../arm-elf/bin/ld.exe:
c:\winarm\arm-elf\bin\../lib\libnewlib-lpc.a(_close_r.o)(_close_r):
warning: interworking not enabled.
first occurrence:
c:/winarm/bin/../lib/gcc/arm-elf/4.1.1/../../../../arm-elf/lib/thumb/interwork\libc.a(stdio.o):
thumb call to arm
c:/winarm/bin/../lib/gcc/arm-elf/4.1.1/../../../../arm-elf/lib/thumb/interwork\libc.a(stdio.o):
In function `__sclose':
stdio.c:(.text+0xc): warning: internal error: dangerous error
c:/winarm/bin/../lib/gcc/arm-elf/4.1.1/../../../../arm-elf/bin/ld.exe:
c:\winarm\arm-elf\bin\../lib\libnewlib-lpc.a(_lseek_r.o)(_lseek_r):
warning: interworking not enabled.
first occurrence:
c:/winarm/bin/../lib/gcc/arm-elf/4.1.1/../../../../arm-elf/lib/thumb/interwork\libc.a(stdio.o):
thumb call to arm
c:/winarm/bin/../lib/gcc/arm-elf/4.1.1/../../../../arm-elf/lib/thumb/interwork\libc.a(stdio.o):
In function `__sseek':
stdio.c:(.text+0x2a): warning: internal error: dangerous error
c:/winarm/bin/../lib/gcc/arm-elf/4.1.1/../../../../arm-elf/bin/ld.exe:
c:\winarm\arm-elf\bin\../lib\libnewlib-lpc.a(_lseek_r.o)(_lseek_r):
warning: interworking not enabled.
first occurrence:
c:/winarm/bin/../lib/gcc/arm-elf/4.1.1/../../../../arm-elf/lib/thumb/interwork\libc.a(stdio.o):
thumb call to arm
c:/winarm/bin/../lib/gcc/arm-elf/4.1.1/../../../../arm-elf/lib/thumb/interwork\libc.a(stdio.o):
In function `__swrite':
stdio.c:(.text+0x6e): warning: internal error: dangerous error
c:/winarm/bin/../lib/gcc/arm-elf/4.1.1/../../../../arm-elf/bin/ld.exe:
c:\winarm\arm-elf\bin\../lib\libnewlib-lpc.a(_write_r.o)(_write_r):
warning: interworking not enabled.
first occurrence:
c:/winarm/bin/../lib/gcc/arm-elf/4.1.1/../../../../arm-elf/lib/thumb/interwork\libc.a(stdio.o):
thumb call to arm
stdio.c:(.text+0x86): warning: internal error: dangerous error
c:/winarm/bin/../lib/gcc/arm-elf/4.1.1/../../../../arm-elf/bin/ld.exe:
c:\winarm\arm-elf\bin\../lib\libnewlib-lpc.a(_read_r.o)(_read_r):
warning: interworking not enabled.
first occurrence:
c:/winarm/bin/../lib/gcc/arm-elf/4.1.1/../../../../arm-elf/lib/thumb/interwork\libc.a(stdio.o):
thumb call to arm
c:/winarm/bin/../lib/gcc/arm-elf/4.1.1/../../../../arm-elf/lib/thumb/interwork\libc.a(stdio.o):
In function `__sread':
stdio.c:(.text+0xaa): warning: internal error: dangerous error
c:\winarm\arm-elf\bin\../lib\libnewlib-lpc.a(_close_r.o): In function
`_close_r':
_close_r.c:(.text+0x38): undefined reference to `device_table'
c:\winarm\arm-elf\bin\../lib\libnewlib-lpc.a(_read_r.o): In function
`_read_r':
_read_r.c:(.text+0xa0): undefined reference to `device_table'
c:\winarm\arm-elf\bin\../lib\libnewlib-lpc.a(_write_r.o): In function
`_write_r':
_write_r.c:(.text+0xe8): undefined reference to `device_table'
c:\winarm\arm-elf\bin\../lib\libnewlib-lpc.a(_ioctl_r.o): In function
`_ioctl_r':
_ioctl_r.c:(.text+0x48): undefined reference to `device_table'
collect2: ld returned 1 exit status
make.exe: *** [main.elf] Error 1

An Engineer's Guide to the LPC2100 Series

You are lacking a suitable syscalls object for your platform where
these functions are located. The missing functions are low-level IO
routines, newlib has no idea about what hardware is is running on.

You normally have to supply these functions yourself, unless you are
using a platform where somebody else has written one.

--- In l..., "klemen_dovrtel"
wrote:
>
> When i try to include "stdio.h" in my project and use sprintf();
> function, i get all kind of errors, whay is that? If i include
> "math.h" for instance, i have no problem.
>
> Linking: main.elf
> arm-elf-gcc -mthumb -mcpu=arm7tdmi-s -mthumb-interwork -I. -gdwarf-
2
> -DROM_RUN -Os -Wall -Wcast-align -Wcast-qual -Wimplicit
> -Wpointer-arith -Wswitch -Wredundant-decls -Wreturn-type -Wshadow
> -Wunused -Wa,-adhlns=crt0.lst -I./inc -I./conf -MD -MP -MF
> .dep/main.elf.d crt0.o uartISR.o armVIC.o main.o uart.o sysTime.o
> 1wire.o --output main.elf -nostartfiles -Wl,-Map=main.map,--cref -
lc
> -lnewlib-lpc -lm -lc -lgcc -lstdc++ -TLPC2138-ROM.ld
> c:/winarm/bin/../lib/gcc/arm-elf/4.1.1/../../../../arm-
elf/bin/ld.exe:
> Warning: c:\winarm\arm-elf\bin\../lib\libnewlib-lpc.a(_close_r.o)
does
> not support interworking, whereas main.elf does
> c:/winarm/bin/../lib/gcc/arm-elf/4.1.1/../../../../arm-
elf/bin/ld.exe:
> Warning: c:\winarm\arm-elf\bin\../lib\libnewlib-lpc.a(_fstat_r.o)
does
> not support interworking, whereas main.elf does
> c:/winarm/bin/../lib/gcc/arm-elf/4.1.1/../../../../arm-
elf/bin/ld.exe:
> Warning: c:\winarm\arm-elf\bin\../lib\libnewlib-lpc.a(_lseek_r.o)
does
> not support interworking, whereas main.elf does
> c:/winarm/bin/../lib/gcc/arm-elf/4.1.1/../../../../arm-
elf/bin/ld.exe:
> Warning: c:\winarm\arm-elf\bin\../lib\libnewlib-lpc.a(_read_r.o)
does
> not support interworking, whereas main.elf does
> c:/winarm/bin/../lib/gcc/arm-elf/4.1.1/../../../../arm-
elf/bin/ld.exe:
> Warning: c:\winarm\arm-elf\bin\../lib\libnewlib-lpc.a(_sbrk_r.o)
does
> not support interworking, whereas main.elf does
> c:/winarm/bin/../lib/gcc/arm-elf/4.1.1/../../../../arm-
elf/bin/ld.exe:
> Warning: c:\winarm\arm-elf\bin\../lib\libnewlib-lpc.a(_write_r.o)
does
> not support interworking, whereas main.elf does
> c:/winarm/bin/../lib/gcc/arm-elf/4.1.1/../../../../arm-
elf/bin/ld.exe:
> Warning: c:\winarm\arm-elf\bin\../lib\libnewlib-lpc.a(_ioctl_r.o)
does
> not support interworking, whereas main.elf does
> c:/winarm/bin/../lib/gcc/arm-elf/4.1.1/../../../../arm-
elf/bin/ld.exe:
> c:\winarm\arm-elf\bin\../lib\libnewlib-lpc.a(_sbrk_r.o)(_sbrk_r):
> warning: interworking not enabled.
> first occurrence:
> c:/winarm/bin/../lib/gcc/arm-elf/4.1.1/../../../../arm-
elf/lib/thumb/interwork\libc.a(freer.o):
> thumb call to arm
> c:/winarm/bin/../lib/gcc/arm-elf/4.1.1/../../../../arm-
elf/lib/thumb/interwork\libc.a(freer.o):
> In function `_malloc_trim_r':
> mallocr.c:(.text+0x2c): warning: internal error: dangerous error
> c:/winarm/bin/../lib/gcc/arm-elf/4.1.1/../../../../arm-
elf/bin/ld.exe:
> c:\winarm\arm-elf\bin\../lib\libnewlib-lpc.a(_sbrk_r.o)(_sbrk_r):
> warning: interworking not enabled.
> first occurrence:
> c:/winarm/bin/../lib/gcc/arm-elf/4.1.1/../../../../arm-
elf/lib/thumb/interwork\libc.a(freer.o):
> thumb call to arm
> mallocr.c:(.text+0x3c): warning: internal error: dangerous error
> c:/winarm/bin/../lib/gcc/arm-elf/4.1.1/../../../../arm-
elf/bin/ld.exe:
> c:\winarm\arm-elf\bin\../lib\libnewlib-lpc.a(_sbrk_r.o)(_sbrk_r):
> warning: interworking not enabled.
> first occurrence:
> c:/winarm/bin/../lib/gcc/arm-elf/4.1.1/../../../../arm-
elf/lib/thumb/interwork\libc.a(freer.o):
> thumb call to arm
> mallocr.c:(.text+0x48): warning: internal error: dangerous error
> c:/winarm/bin/../lib/gcc/arm-elf/4.1.1/../../../../arm-
elf/bin/ld.exe:
> c:\winarm\arm-elf\bin\../lib\libnewlib-lpc.a(_fstat_r.o)(_fstat_r):
> warning: interworking not enabled.
> first occurrence:
> c:/winarm/bin/../lib/gcc/arm-elf/4.1.1/../../../../arm-
elf/lib/thumb/interwork\libc.a(makebuf.o):
> thumb call to arm
> c:/winarm/bin/../lib/gcc/arm-elf/4.1.1/../../../../arm-
elf/lib/thumb/interwork\libc.a(makebuf.o):
> In function `__smakebuf':
> makebuf.c:(.text+0x1c): warning: internal error: dangerous error
> makebuf.c:(.text+0xb2): undefined reference to `isatty'
> c:/winarm/bin/../lib/gcc/arm-elf/4.1.1/../../../../arm-
elf/bin/ld.exe:
> c:\winarm\arm-elf\bin\../lib\libnewlib-lpc.a(_sbrk_r.o)(_sbrk_r):
> warning: interworking not enabled.
> first occurrence:
> c:/winarm/bin/../lib/gcc/arm-elf/4.1.1/../../../../arm-
elf/lib/thumb/interwork\libc.a(mallocr.o):
> thumb call to arm
> c:/winarm/bin/../lib/gcc/arm-elf/4.1.1/../../../../arm-
elf/lib/thumb/interwork\libc.a(mallocr.o):
> In function `_malloc_r':
> mallocr.c:(.text+0x2e8): warning: internal error: dangerous error
> c:/winarm/bin/../lib/gcc/arm-elf/4.1.1/../../../../arm-
elf/bin/ld.exe:
> c:\winarm\arm-elf\bin\../lib\libnewlib-lpc.a(_sbrk_r.o)(_sbrk_r):
> warning: interworking not enabled.
> first occurrence:
> c:/winarm/bin/../lib/gcc/arm-elf/4.1.1/../../../../arm-
elf/lib/thumb/interwork\libc.a(mallocr.o):
> thumb call to arm
> mallocr.c:(.text+0x388): warning: internal error: dangerous error
> c:/winarm/bin/../lib/gcc/arm-elf/4.1.1/../../../../arm-
elf/bin/ld.exe:
> c:\winarm\arm-elf\bin\../lib\libnewlib-lpc.a(_close_r.o)(_close_r):
> warning: interworking not enabled.
> first occurrence:
> c:/winarm/bin/../lib/gcc/arm-elf/4.1.1/../../../../arm-
elf/lib/thumb/interwork\libc.a(stdio.o):
> thumb call to arm
> c:/winarm/bin/../lib/gcc/arm-elf/4.1.1/../../../../arm-
elf/lib/thumb/interwork\libc.a(stdio.o):
> In function `__sclose':
> stdio.c:(.text+0xc): warning: internal error: dangerous error
> c:/winarm/bin/../lib/gcc/arm-elf/4.1.1/../../../../arm-
elf/bin/ld.exe:
> c:\winarm\arm-elf\bin\../lib\libnewlib-lpc.a(_lseek_r.o)(_lseek_r):
> warning: interworking not enabled.
> first occurrence:
> c:/winarm/bin/../lib/gcc/arm-elf/4.1.1/../../../../arm-
elf/lib/thumb/interwork\libc.a(stdio.o):
> thumb call to arm
> c:/winarm/bin/../lib/gcc/arm-elf/4.1.1/../../../../arm-
elf/lib/thumb/interwork\libc.a(stdio.o):
> In function `__sseek':
> stdio.c:(.text+0x2a): warning: internal error: dangerous error
> c:/winarm/bin/../lib/gcc/arm-elf/4.1.1/../../../../arm-
elf/bin/ld.exe:
> c:\winarm\arm-elf\bin\../lib\libnewlib-lpc.a(_lseek_r.o)(_lseek_r):
> warning: interworking not enabled.
> first occurrence:
> c:/winarm/bin/../lib/gcc/arm-elf/4.1.1/../../../../arm-
elf/lib/thumb/interwork\libc.a(stdio.o):
> thumb call to arm
> c:/winarm/bin/../lib/gcc/arm-elf/4.1.1/../../../../arm-
elf/lib/thumb/interwork\libc.a(stdio.o):
> In function `__swrite':
> stdio.c:(.text+0x6e): warning: internal error: dangerous error
> c:/winarm/bin/../lib/gcc/arm-elf/4.1.1/../../../../arm-
elf/bin/ld.exe:
> c:\winarm\arm-elf\bin\../lib\libnewlib-lpc.a(_write_r.o)(_write_r):
> warning: interworking not enabled.
> first occurrence:
> c:/winarm/bin/../lib/gcc/arm-elf/4.1.1/../../../../arm-
elf/lib/thumb/interwork\libc.a(stdio.o):
> thumb call to arm
> stdio.c:(.text+0x86): warning: internal error: dangerous error
> c:/winarm/bin/../lib/gcc/arm-elf/4.1.1/../../../../arm-
elf/bin/ld.exe:
> c:\winarm\arm-elf\bin\../lib\libnewlib-lpc.a(_read_r.o)(_read_r):
> warning: interworking not enabled.
> first occurrence:
> c:/winarm/bin/../lib/gcc/arm-elf/4.1.1/../../../../arm-
elf/lib/thumb/interwork\libc.a(stdio.o):
> thumb call to arm
> c:/winarm/bin/../lib/gcc/arm-elf/4.1.1/../../../../arm-
elf/lib/thumb/interwork\libc.a(stdio.o):
> In function `__sread':
> stdio.c:(.text+0xaa): warning: internal error: dangerous error
> c:\winarm\arm-elf\bin\../lib\libnewlib-lpc.a(_close_r.o): In
function
> `_close_r':
> _close_r.c:(.text+0x38): undefined reference to `device_table'
> c:\winarm\arm-elf\bin\../lib\libnewlib-lpc.a(_read_r.o): In
function
> `_read_r':
> _read_r.c:(.text+0xa0): undefined reference to `device_table'
> c:\winarm\arm-elf\bin\../lib\libnewlib-lpc.a(_write_r.o): In
function
> `_write_r':
> _write_r.c:(.text+0xe8): undefined reference to `device_table'
> c:\winarm\arm-elf\bin\../lib\libnewlib-lpc.a(_ioctl_r.o): In
function
> `_ioctl_r':
> _ioctl_r.c:(.text+0x48): undefined reference to `device_table'
> collect2: ld returned 1 exit status
> make.exe: *** [main.elf] Error 1
>
Does sprintf() need to know anything about IO. I would like to do anly
some int to string conversion.

Is there a complete library for winarm that includes sprintf(), itoa()
etc?

Regards
Klemen
--- In l..., "Jason Morgan" wrote:
>
> You are lacking a suitable syscalls object for your platform where
> these functions are located. The missing functions are low-level IO
> routines, newlib has no idea about what hardware is is running on.
>
> You normally have to supply these functions yourself, unless you are
> using a platform where somebody else has written one.
Jason Morgan Wrote
>You are lacking a suitable syscalls object for your platform where
>these functions are located. The missing functions are low-level IO
>routines, newlib has no idea about what hardware is is running on.

>> c:/winarm/bin/../lib/gcc/arm-elf/4.1.1/../../../../arm-elf/bin/ld.exe:
>> Warning: c:\winarm\arm-elf\bin\../lib\libnewlib-lpc.a(_close_r.o) does
>> not support interworking, whereas main.elf does

Take a closer look. The errors are complaining about the lack of
interworking not missing functions. WinARM include newlib-lpc to provide
the hooks. The problem is they are not compiled for interworking.
Actually unless the OP has a space problem I'd recommend sticking with
straight ARM to begin with rahter than introduce thumb and interworking.

>> `_close_r':
>> _close_r.c:(.text+0x38): undefined reference to `device_table'
>> c:\winarm\arm-elf\bin\../lib\libnewlib-lpc.a(_read_r.o): In function

The second problem is the I/O device table is missing. Take a look at the
examples, that should show how to set one up for stdio.

Now as for sprintf requiring the stream I/O functions....

Robert

--------------------------------
mail2web.com Enhanced email for the mobile individual based on Microsoft
Exchange - http://link.mail2web.com/Personal/EnhancedEmail
You could try searching the web for the source code to sprintf and
forget NEWLIB.

There was a similar thread a few days ago and I posted a simple
syscalls.c but I doubt it will work with newlib - it certainly
works with libc and libgcc though - its what I use.

--- In l..., "klemen_dovrtel"
wrote:
>
> When i try to include "stdio.h" in my project and use sprintf();
> function, i get all kind of errors, whay is that? If i include
> "math.h" for instance, i have no problem.
>
> Linking: main.elf
> arm-elf-gcc -mthumb -mcpu=arm7tdmi-s -mthumb-interwork -I. -gdwarf-
2
> -DROM_RUN -Os -Wall -Wcast-align -Wcast-qual -Wimplicit
> -Wpointer-arith -Wswitch -Wredundant-decls -Wreturn-type -Wshadow
> -Wunused -Wa,-adhlns=crt0.lst -I./inc -I./conf -MD -MP -MF
> .dep/main.elf.d crt0.o uartISR.o armVIC.o main.o uart.o sysTime.o
> 1wire.o --output main.elf -nostartfiles -Wl,-Map=main.map,--cref -
lc
> -lnewlib-lpc -lm -lc -lgcc -lstdc++ -TLPC2138-ROM.ld
> c:/winarm/bin/../lib/gcc/arm-elf/4.1.1/../../../../arm-
elf/bin/ld.exe:
> Warning: c:\winarm\arm-elf\bin\../lib\libnewlib-lpc.a(_close_r.o)
does
> not support interworking, whereas main.elf does
> c:/winarm/bin/../lib/gcc/arm-elf/4.1.1/../../../../arm-
elf/bin/ld.exe:
> Warning: c:\winarm\arm-elf\bin\../lib\libnewlib-lpc.a(_fstat_r.o)
does
> not support interworking, whereas main.elf does
> c:/winarm/bin/../lib/gcc/arm-elf/4.1.1/../../../../arm-
elf/bin/ld.exe:
> Warning: c:\winarm\arm-elf\bin\../lib\libnewlib-lpc.a(_lseek_r.o)
does
> not support interworking, whereas main.elf does
> c:/winarm/bin/../lib/gcc/arm-elf/4.1.1/../../../../arm-
elf/bin/ld.exe:
> Warning: c:\winarm\arm-elf\bin\../lib\libnewlib-lpc.a(_read_r.o)
does
> not support interworking, whereas main.elf does
> c:/winarm/bin/../lib/gcc/arm-elf/4.1.1/../../../../arm-
elf/bin/ld.exe:
> Warning: c:\winarm\arm-elf\bin\../lib\libnewlib-lpc.a(_sbrk_r.o)
does
> not support interworking, whereas main.elf does
> c:/winarm/bin/../lib/gcc/arm-elf/4.1.1/../../../../arm-
elf/bin/ld.exe:
> Warning: c:\winarm\arm-elf\bin\../lib\libnewlib-lpc.a(_write_r.o)
does
> not support interworking, whereas main.elf does
> c:/winarm/bin/../lib/gcc/arm-elf/4.1.1/../../../../arm-
elf/bin/ld.exe:
> Warning: c:\winarm\arm-elf\bin\../lib\libnewlib-lpc.a(_ioctl_r.o)
does
> not support interworking, whereas main.elf does
> c:/winarm/bin/../lib/gcc/arm-elf/4.1.1/../../../../arm-
elf/bin/ld.exe:
> c:\winarm\arm-elf\bin\../lib\libnewlib-lpc.a(_sbrk_r.o)(_sbrk_r):
> warning: interworking not enabled.
> first occurrence:
> c:/winarm/bin/../lib/gcc/arm-elf/4.1.1/../../../../arm-
elf/lib/thumb/interwork\libc.a(freer.o):
> thumb call to arm
> c:/winarm/bin/../lib/gcc/arm-elf/4.1.1/../../../../arm-
elf/lib/thumb/interwork\libc.a(freer.o):
> In function `_malloc_trim_r':
> mallocr.c:(.text+0x2c): warning: internal error: dangerous error
> c:/winarm/bin/../lib/gcc/arm-elf/4.1.1/../../../../arm-
elf/bin/ld.exe:
> c:\winarm\arm-elf\bin\../lib\libnewlib-lpc.a(_sbrk_r.o)(_sbrk_r):
> warning: interworking not enabled.
> first occurrence:
> c:/winarm/bin/../lib/gcc/arm-elf/4.1.1/../../../../arm-
elf/lib/thumb/interwork\libc.a(freer.o):
> thumb call to arm
> mallocr.c:(.text+0x3c): warning: internal error: dangerous error
> c:/winarm/bin/../lib/gcc/arm-elf/4.1.1/../../../../arm-
elf/bin/ld.exe:
> c:\winarm\arm-elf\bin\../lib\libnewlib-lpc.a(_sbrk_r.o)(_sbrk_r):
> warning: interworking not enabled.
> first occurrence:
> c:/winarm/bin/../lib/gcc/arm-elf/4.1.1/../../../../arm-
elf/lib/thumb/interwork\libc.a(freer.o):
> thumb call to arm
> mallocr.c:(.text+0x48): warning: internal error: dangerous error
> c:/winarm/bin/../lib/gcc/arm-elf/4.1.1/../../../../arm-
elf/bin/ld.exe:
> c:\winarm\arm-elf\bin\../lib\libnewlib-lpc.a(_fstat_r.o)(_fstat_r):
> warning: interworking not enabled.
> first occurrence:
> c:/winarm/bin/../lib/gcc/arm-elf/4.1.1/../../../../arm-
elf/lib/thumb/interwork\libc.a(makebuf.o):
> thumb call to arm
> c:/winarm/bin/../lib/gcc/arm-elf/4.1.1/../../../../arm-
elf/lib/thumb/interwork\libc.a(makebuf.o):
> In function `__smakebuf':
> makebuf.c:(.text+0x1c): warning: internal error: dangerous error
> makebuf.c:(.text+0xb2): undefined reference to `isatty'
> c:/winarm/bin/../lib/gcc/arm-elf/4.1.1/../../../../arm-
elf/bin/ld.exe:
> c:\winarm\arm-elf\bin\../lib\libnewlib-lpc.a(_sbrk_r.o)(_sbrk_r):
> warning: interworking not enabled.
> first occurrence:
> c:/winarm/bin/../lib/gcc/arm-elf/4.1.1/../../../../arm-
elf/lib/thumb/interwork\libc.a(mallocr.o):
> thumb call to arm
> c:/winarm/bin/../lib/gcc/arm-elf/4.1.1/../../../../arm-
elf/lib/thumb/interwork\libc.a(mallocr.o):
> In function `_malloc_r':
> mallocr.c:(.text+0x2e8): warning: internal error: dangerous error
> c:/winarm/bin/../lib/gcc/arm-elf/4.1.1/../../../../arm-
elf/bin/ld.exe:
> c:\winarm\arm-elf\bin\../lib\libnewlib-lpc.a(_sbrk_r.o)(_sbrk_r):
> warning: interworking not enabled.
> first occurrence:
> c:/winarm/bin/../lib/gcc/arm-elf/4.1.1/../../../../arm-
elf/lib/thumb/interwork\libc.a(mallocr.o):
> thumb call to arm
> mallocr.c:(.text+0x388): warning: internal error: dangerous error
> c:/winarm/bin/../lib/gcc/arm-elf/4.1.1/../../../../arm-
elf/bin/ld.exe:
> c:\winarm\arm-elf\bin\../lib\libnewlib-lpc.a(_close_r.o)(_close_r):
> warning: interworking not enabled.
> first occurrence:
> c:/winarm/bin/../lib/gcc/arm-elf/4.1.1/../../../../arm-
elf/lib/thumb/interwork\libc.a(stdio.o):
> thumb call to arm
> c:/winarm/bin/../lib/gcc/arm-elf/4.1.1/../../../../arm-
elf/lib/thumb/interwork\libc.a(stdio.o):
> In function `__sclose':
> stdio.c:(.text+0xc): warning: internal error: dangerous error
> c:/winarm/bin/../lib/gcc/arm-elf/4.1.1/../../../../arm-
elf/bin/ld.exe:
> c:\winarm\arm-elf\bin\../lib\libnewlib-lpc.a(_lseek_r.o)(_lseek_r):
> warning: interworking not enabled.
> first occurrence:
> c:/winarm/bin/../lib/gcc/arm-elf/4.1.1/../../../../arm-
elf/lib/thumb/interwork\libc.a(stdio.o):
> thumb call to arm
> c:/winarm/bin/../lib/gcc/arm-elf/4.1.1/../../../../arm-
elf/lib/thumb/interwork\libc.a(stdio.o):
> In function `__sseek':
> stdio.c:(.text+0x2a): warning: internal error: dangerous error
> c:/winarm/bin/../lib/gcc/arm-elf/4.1.1/../../../../arm-
elf/bin/ld.exe:
> c:\winarm\arm-elf\bin\../lib\libnewlib-lpc.a(_lseek_r.o)(_lseek_r):
> warning: interworking not enabled.
> first occurrence:
> c:/winarm/bin/../lib/gcc/arm-elf/4.1.1/../../../../arm-
elf/lib/thumb/interwork\libc.a(stdio.o):
> thumb call to arm
> c:/winarm/bin/../lib/gcc/arm-elf/4.1.1/../../../../arm-
elf/lib/thumb/interwork\libc.a(stdio.o):
> In function `__swrite':
> stdio.c:(.text+0x6e): warning: internal error: dangerous error
> c:/winarm/bin/../lib/gcc/arm-elf/4.1.1/../../../../arm-
elf/bin/ld.exe:
> c:\winarm\arm-elf\bin\../lib\libnewlib-lpc.a(_write_r.o)(_write_r):
> warning: interworking not enabled.
> first occurrence:
> c:/winarm/bin/../lib/gcc/arm-elf/4.1.1/../../../../arm-
elf/lib/thumb/interwork\libc.a(stdio.o):
> thumb call to arm
> stdio.c:(.text+0x86): warning: internal error: dangerous error
> c:/winarm/bin/../lib/gcc/arm-elf/4.1.1/../../../../arm-
elf/bin/ld.exe:
> c:\winarm\arm-elf\bin\../lib\libnewlib-lpc.a(_read_r.o)(_read_r):
> warning: interworking not enabled.
> first occurrence:
> c:/winarm/bin/../lib/gcc/arm-elf/4.1.1/../../../../arm-
elf/lib/thumb/interwork\libc.a(stdio.o):
> thumb call to arm
> c:/winarm/bin/../lib/gcc/arm-elf/4.1.1/../../../../arm-
elf/lib/thumb/interwork\libc.a(stdio.o):
> In function `__sread':
> stdio.c:(.text+0xaa): warning: internal error: dangerous error
> c:\winarm\arm-elf\bin\../lib\libnewlib-lpc.a(_close_r.o): In
function
> `_close_r':
> _close_r.c:(.text+0x38): undefined reference to `device_table'
> c:\winarm\arm-elf\bin\../lib\libnewlib-lpc.a(_read_r.o): In
function
> `_read_r':
> _read_r.c:(.text+0xa0): undefined reference to `device_table'
> c:\winarm\arm-elf\bin\../lib\libnewlib-lpc.a(_write_r.o): In
function
> `_write_r':
> _write_r.c:(.text+0xe8): undefined reference to `device_table'
> c:\winarm\arm-elf\bin\../lib\libnewlib-lpc.a(_ioctl_r.o): In
function
> `_ioctl_r':
> _ioctl_r.c:(.text+0x48): undefined reference to `device_table'
> collect2: ld returned 1 exit status
> make.exe: *** [main.elf] Error 1
>
--- In l..., "Jason Morgan" wrote:
>
> You could try searching the web for the source code to sprintf and
> forget NEWLIB.

I already tried that, but i had no luck:
http://tech.groups.yahoo.com/group/lpc2000/message/22306
A quick google for "printf implementation" found this:
http://www.ijs.si/software/snprintf/

--- In l..., "klemen_dovrtel"
wrote:
>
> --- In l..., "Jason Morgan" wrote:
> >
> > You could try searching the web for the source code to sprintf and
> > forget NEWLIB.
>
> I already tried that, but i had no luck:
> http://tech.groups.yahoo.com/group/lpc2000/message/22306
>