 |
www.elektronik.si Forum o elektrotehniki in računalništvu
|
Poglej prejšnjo temo :: Poglej naslednjo temo |
Avtor |
Sporočilo |
trot Član


Pridružen-a: Čet 18 Jan 2007 20:25 Prispevkov: 1282 Aktiv.: 5.72 Kraj: glej fogl
|
Objavljeno: Pon Jan 29, 2007 2:50 pm Naslov sporočila: winarm - sprintf |
|
|
Ima kdo kakšno delujočo knjižnico s standardnimi funkcijami sprintf(), itoa() itd. ? Nekaj sem poskušal z newlib-lpc, vendar pa mi javi cel kup napak. |
|
Nazaj na vrh |
|
 |
alessio Član

Pridružen-a: Pon 04 Dec 2006 8:39 Prispevkov: 363 Aktiv.: 1.61 Kraj: Ljubljana
|
Objavljeno: Pon Jan 29, 2007 3:00 pm Naslov sporočila: |
|
|
Sklepam, da uporabljas GCC, ko pravis, da bi rad vključil newlib-lpc?
Kakšne napake ti javi?
Ali imaš vključen prave header-je?
Ali si nastavil linker, da ti vključi to knjižnico?
Za delujoč primer uporabe newlib-lpc si poglej na tem naslovu:
http://www.siwawi.arubi.uni-kl.de/avr_projects/arm_projects/
Aleš S |
|
Nazaj na vrh |
|
 |
blueH2O Član


Pridružen-a: Sob 30 Sep 2006 9:23 Prispevkov: 71 Aktiv.: 0.31
|
Objavljeno: Tor Jan 30, 2007 1:29 pm Naslov sporočila: |
|
|
Uporabljam razvojno okolje WinIDEA in prevajalnik GCC (v3.4.3). S sprintf(), itoa()... nisem imel posebnih težav (človeške napake), imel pa sem probleme z standardnimi matematičnimi funkcijami (logaritmi, sinus...). Začasno sem napisal svoje funkcije. Sedaj delujejo tudi standardne - ne spomnim se, kako sem to popravil...
Se ti ustavi pri compilerju ali linkerju? Lahko prilepiš error/warning sporočila? |
|
Nazaj na vrh |
|
 |
trot Član


Pridružen-a: Čet 18 Jan 2007 20:25 Prispevkov: 1282 Aktiv.: 5.72 Kraj: glej fogl
|
Objavljeno: Tor Jan 30, 2007 1:35 pm Naslov sporočila: |
|
|
vključil sem samo #include "stdio.h", in mi javi:
če vključim npr. "math.h" pa nimam problemov.
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 |
|
Nazaj na vrh |
|
 |
blueH2O Član


Pridružen-a: Sob 30 Sep 2006 9:23 Prispevkov: 71 Aktiv.: 0.31
|
Objavljeno: Sre Jan 31, 2007 3:19 pm Naslov sporočila: |
|
|
Ko vidim kaj takega, me kar strese. Konkretne rešitve ne poznam, ta problem je še daleč od mojih izkušnenj... Lahko pa ti svetujem, da poskusiš s starejšim compilerjem/linkerjem. Ta način mi je enkrat celo uspel. |
|
Nazaj na vrh |
|
 |
bray Član


Pridružen-a: Sre 19 Jan 2005 23:53 Prispevkov: 327 Aktiv.: 1.38 Kraj: Vransko
|
Objavljeno: Sre Jan 31, 2007 3:23 pm Naslov sporočila: Re: winarm - sprintf |
|
|
trot je napisal/a: |
Ima kdo kakšno delujočo knjižnico s standardnimi funkcijami sprintf(), itoa() itd. ? Nekaj sem poskušal z newlib-lpc, vendar pa mi javi cel kup napak. |
Pripni se prvih par vrstic iz makefile-a. _________________ I didn't know it was impossible when I did it! |
|
Nazaj na vrh |
|
 |
trot Član


Pridružen-a: Čet 18 Jan 2007 20:25 Prispevkov: 1282 Aktiv.: 5.72 Kraj: glej fogl
|
Objavljeno: Sre Jan 31, 2007 3:54 pm Naslov sporočila: |
|
|
makefile:
MCU = arm7tdmi-s
SUBMDL = LPC2138
THUMB = -mthumb
THUMB_IW = -mthumb-interwork
RUN_MODE=ROM_RUN
FORMAT = ihex
TARGET = main
SRC = $(TARGET).c
SRC += uart.c
SRCARM = uartISR.c armVIC.c
CPPSRC =
CPPSRCARM =
ASRC =
ASRCARM = crt0.S
OPT = s
DEBUG = dwarf-2
EXTRAINCDIRS = ./inc ./conf
CSTANDARD = -std=gnu99
CDEFS = -D$(RUN_MODE) |
|
Nazaj na vrh |
|
 |
. Član

Pridružen-a: Pon 23 Avg 2004 16:16 Prispevkov: 16777190 Aktiv.: 70799.96
|
Objavljeno: Sre Jan 31, 2007 6:22 pm Naslov sporočila: |
|
|
Brisana vsebina odstranjenega uporabnika. |
|
Nazaj na vrh |
|
 |
bray Član


Pridružen-a: Sre 19 Jan 2005 23:53 Prispevkov: 327 Aktiv.: 1.38 Kraj: Vransko
|
Objavljeno: Sre Jan 31, 2007 9:10 pm Naslov sporočila: |
|
|
trot:
Za zacetek zakomentiraj vrstico v makefile-u kjer se pojavi THUMB_IW = -mthumb-interwork
To naredis tako, da na zacetek vrstice postavis #...torej
#THUMB_IW = -mthumb-interwork
..potem pa poizkusi se enkrat prevesti. _________________ I didn't know it was impossible when I did it! |
|
Nazaj na vrh |
|
 |
. Član

Pridružen-a: Pon 23 Avg 2004 16:16 Prispevkov: 16777190 Aktiv.: 70799.96
|
Objavljeno: Sre Jan 31, 2007 10:08 pm Naslov sporočila: |
|
|
Brisana vsebina odstranjenega uporabnika. |
|
Nazaj na vrh |
|
 |
trot Član


Pridružen-a: Čet 18 Jan 2007 20:25 Prispevkov: 1282 Aktiv.: 5.72 Kraj: glej fogl
|
Objavljeno: Tor Feb 06, 2007 3:02 pm Naslov sporočila: |
|
|
Meni tale strprintf še vedno ne zalaufa, pa sem že en kup kode obdelal
Če prav razumem imajo vse te knjižnice funkcijo putchar() oz. nekaj podobnega, ki jo moram sam spisat da mi bo print() pošiljal podatke na uart oz. kamor bom pač želel?
Jest pa bi rad samo samo funkcijo sprintf, ki ta string ne bo nekam poslala, ampak ga bo samo naložila v char buffer[10]. To je vse. To bi pa moralo delovati povsod, ne glede kje bi kodo uporabil? |
|
Nazaj na vrh |
|
 |
|
|
Ne, ne moreš dodajati novih tem v tem forumu Ne, ne moreš odgovarjati na teme v tem forumu Ne, ne moreš urejati svojih prispevkov v tem forumu Ne, ne moreš brisati svojih prispevkov v tem forumu Ne ne moreš glasovati v anketi v tem forumu Ne, ne moreš pripeti datotek v tem forumu Ne, ne moreš povleči datotek v tem forumu
|
Uptime: 495 dni
Powered by phpBB © 2001, 2005 phpBB Group
|