www.elektronik.si Seznam forumov www.elektronik.si
Forum o elektrotehniki in računalništvu
 
 PomočPomoč  IščiIšči  Seznam članovSeznam članov  SkupineSkupine  StatisticsStatistika  AlbumAlbum  DatotekeFilemanager DokumentacijaDocDB LinksPovezave   Registriraj seRegistriraj se 
  PravilaPravila  LinksBolha  PriponkePriponke  KoledarKoledar  ZapiskiZapiski Tvoj profilTvoj profil Prijava za pregled zasebnih sporočilPrijava za pregled zasebnih sporočil PrijavaPrijava 

winarm - sprintf

 
Objavi novo temo   Odgovori na to temo   Printer-friendly version    www.elektronik.si Seznam forumov -> ARM arhitektura
Poglej prejšnjo temo :: Poglej naslednjo temo  
Avtor Sporočilo
trot
Član
Član



Pridružen-a: Čet 18 Jan 2007 20:25
Prispevkov: 1282
Aktiv.: 5.72
Kraj: glej fogl

PrispevekObjavljeno: Pon Jan 29, 2007 2:50 pm    Naslov sporočila:  winarm - sprintf Odgovori s citatom

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
Skrit Poglej uporabnikov profil Pošlji zasebno sporočilo
alessio
Član
Član



Pridružen-a: Pon 04 Dec 2006 8:39
Prispevkov: 363
Aktiv.: 1.61
Kraj: Ljubljana

PrispevekObjavljeno: Pon Jan 29, 2007 3:00 pm    Naslov sporočila:   Odgovori s citatom

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
Skrit Poglej uporabnikov profil Pošlji zasebno sporočilo
blueH2O
Član
Član



Pridružen-a: Sob 30 Sep 2006 9:23
Prispevkov: 71
Aktiv.: 0.31

PrispevekObjavljeno: Tor Jan 30, 2007 1:29 pm    Naslov sporočila:   Odgovori s citatom

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
Odsoten Poglej uporabnikov profil Pošlji zasebno sporočilo
trot
Član
Član



Pridružen-a: Čet 18 Jan 2007 20:25
Prispevkov: 1282
Aktiv.: 5.72
Kraj: glej fogl

PrispevekObjavljeno: Tor Jan 30, 2007 1:35 pm    Naslov sporočila:   Odgovori s citatom

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
Skrit Poglej uporabnikov profil Pošlji zasebno sporočilo
blueH2O
Član
Član



Pridružen-a: Sob 30 Sep 2006 9:23
Prispevkov: 71
Aktiv.: 0.31

PrispevekObjavljeno: Sre Jan 31, 2007 3:19 pm    Naslov sporočila:   Odgovori s citatom

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
Odsoten Poglej uporabnikov profil Pošlji zasebno sporočilo
bray
Član
Član



Pridružen-a: Sre 19 Jan 2005 23:53
Prispevkov: 327
Aktiv.: 1.38
Kraj: Vransko

PrispevekObjavljeno: Sre Jan 31, 2007 3:23 pm    Naslov sporočila:  Re: winarm - sprintf Odgovori s citatom

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
Odsoten Poglej uporabnikov profil Pošlji zasebno sporočilo Obišči avtorjevo spletno stran
trot
Član
Član



Pridružen-a: Čet 18 Jan 2007 20:25
Prispevkov: 1282
Aktiv.: 5.72
Kraj: glej fogl

PrispevekObjavljeno: Sre Jan 31, 2007 3:54 pm    Naslov sporočila:   Odgovori s citatom

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
Skrit Poglej uporabnikov profil Pošlji zasebno sporočilo
.
Član
Član



Pridružen-a: Pon 23 Avg 2004 16:16
Prispevkov: 16777190
Aktiv.: 70799.96

PrispevekObjavljeno: Sre Jan 31, 2007 6:22 pm    Naslov sporočila:   Odgovori s citatom

Brisana vsebina odstranjenega uporabnika.
Nazaj na vrh
Odsoten Poglej uporabnikov profil Pošlji zasebno sporočilo
bray
Član
Član



Pridružen-a: Sre 19 Jan 2005 23:53
Prispevkov: 327
Aktiv.: 1.38
Kraj: Vransko

PrispevekObjavljeno: Sre Jan 31, 2007 9:10 pm    Naslov sporočila:   Odgovori s citatom

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
Odsoten Poglej uporabnikov profil Pošlji zasebno sporočilo Obišči avtorjevo spletno stran
.
Član
Član



Pridružen-a: Pon 23 Avg 2004 16:16
Prispevkov: 16777190
Aktiv.: 70799.96

PrispevekObjavljeno: Sre Jan 31, 2007 10:08 pm    Naslov sporočila:   Odgovori s citatom

Brisana vsebina odstranjenega uporabnika.
Nazaj na vrh
Odsoten Poglej uporabnikov profil Pošlji zasebno sporočilo
trot
Član
Član



Pridružen-a: Čet 18 Jan 2007 20:25
Prispevkov: 1282
Aktiv.: 5.72
Kraj: glej fogl

PrispevekObjavljeno: Tor Feb 06, 2007 3:02 pm    Naslov sporočila:   Odgovori s citatom

Meni tale strprintf še vedno ne zalaufa, pa sem že en kup kode obdelal Embarassed

Č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
Skrit Poglej uporabnikov profil Pošlji zasebno sporočilo
Pokaži sporočila:   
Objavi novo temo   Odgovori na to temo   Printer-friendly version    www.elektronik.si Seznam forumov -> ARM arhitektura Časovni pas GMT + 2 uri, srednjeevropski - poletni čas
Stran 1 od 1

 
Pojdi na:  
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