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 

LPC2378 prekinitve

 
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
Homer
Član
Član



Pridružen-a: Čet 10 Maj 2007 22:51
Prispevkov: 19
Aktiv.: 0.09

PrispevekObjavljeno: Tor Avg 21, 2007 4:50 pm    Naslov sporočila:  LPC2378 prekinitve Odgovori s citatom

Ojla!

Zanima me kako se rokuje s prekinitvami na LPC23xx (FIW,IRQ, vectored),
shranjevanje virtualnih registrov pa kako v primeru ko imamo prekinitev več
"nested interrupts" ?

Pri LPC2144 nisem imel problemov, tu pa se mi katerikoli prekinitev sproži le
enkrat.

Uporabljam GNU prevajalnik (ta ki je del uVison-a).

Hvala!
Nazaj na vrh
Odsoten Poglej uporabnikov profil Pošlji zasebno sporočilo
Benjamin
Član
Član



Pridružen-a: Tor 10 Jul 2007 11:23
Prispevkov: 116
Aktiv.: 0.53
Kraj: Trebnje, Ljubljana

PrispevekObjavljeno: Tor Avg 21, 2007 6:09 pm    Naslov sporočila:   Odgovori s citatom

Živjo!

Ne poznam teh LPCjev, vendar bi lahko bila napaka tudi v tvoji kodi. Si prepričan, da si na konec prekinitvene rutine dodal kodo, s katero javiš LPCju da si prekinitev sprejel ter obdelal? Pri LPC213x to narediš z VICVectAddr=0;

LP
Nazaj na vrh
Odsoten Poglej uporabnikov profil Pošlji zasebno sporočilo
Homer
Član
Član



Pridružen-a: Čet 10 Maj 2007 22:51
Prispevkov: 19
Aktiv.: 0.09

PrispevekObjavljeno: Tor Avg 21, 2007 6:23 pm    Naslov sporočila:   Odgovori s citatom

Jp, brisanje zastavic in "dummy write" - brez tega bi delalo isto Smile,
kakorkoli hvala za pomoč.

Sedaj sem odpravil napako, registre na sklad pa nazaj pa gre,
ne vem zakaj že LPC2214 nisem imel teh problemov - prepričan
sem bil da prevajalnik sam ureja te zadeve, saj konec koncev ve
da gre za prekinitveno rutino.

No, to je, sedaj imam pa še ta problem: če klicem fukcijo
iz prekinitvene rutine, po določenem številu prekinitev zadeva
zmrzne - ampak ok, vseeno boljše kot tisto prej Smile

Ali obstaja kakšna novejša verzija gnu prevajalnika, ki se jo da
vključit v uVison ? Tale je 3.1.3 če se ne motim.
Nazaj na vrh
Odsoten 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: Tor Avg 21, 2007 7:04 pm    Naslov sporočila:   Odgovori s citatom

Homer je napisal/a:
Ali obstaja kakšna novejša verzija gnu prevajalnika, ki se jo da
vključit v uVison ? Tale je 3.1.3 če se ne motim.


Za GCC 3.x je znano, da imajo buge z interrupti.

GCC 4.x lahko dobiš na sledečih naslovih:

www.gnuarm.com

www.gnuarm.org

www.yagarto.de

http://www.codesourcery.com/gnu_toolchains/arm

Sicer pa kar se interruptov tiče, je najbolje, da si napišeš
svoje interrupt "stube" in tega ne prepuščaš prevajalniku.

Te zadeve so lepo razložene v seriji člankov,
za katere lahko dobiš linke v tej temi .

Aleš
Nazaj na vrh
Skrit Poglej uporabnikov profil Pošlji zasebno sporočilo
Homer
Član
Član



Pridružen-a: Čet 10 Maj 2007 22:51
Prispevkov: 19
Aktiv.: 0.09

PrispevekObjavljeno: Sre Avg 22, 2007 7:27 pm    Naslov sporočila:   Odgovori s citatom

Super, lepa hvala za linke!

Prekinitve in vse ostalo glede tega sem natuhtal, spisal kodo in
dela ok, še vedno pa so problemi ko kličem funkcijo iz prekinitve,
kot sem opazil prevajalnik doda neko kodo pred mojo kodo
in potem zadeva po parih prekinitvah zmrzne. Kakšna ideja?
Še to naj povem da uporabljam tu VectoredIRQ.

Naložil sem tudi nov prevajalnik v4.2, popravil pot in "prefix" iz arm-uclibc-
na arm-elf-, sedaj je pa imam problem pri prevajanju:

/cygdrive/c/ProgramFiles/GNUARM/Bin/../lib/gcc/arm-elf/4.2.0/../../../../arm-elf/bin/ld: ERROR: startup.o uses hardware FP, whereas lpc2378.elf uses software FP
/cygdrive/c/ProgramFiles/GNUARM/Bin/../lib/gcc/arm-elf/4.2.0/../../../../arm-elf/bin/ld: failed to merge target specific data of file startup.o
... ?
Nazaj na vrh
Odsoten 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: Sre Avg 22, 2007 11:17 pm    Naslov sporočila:   Odgovori s citatom

Homer je napisal/a:

Naložil sem tudi nov prevajalnik v4.2, popravil pot in "prefix" iz arm-uclibc-
na arm-elf-, sedaj je pa imam problem pri prevajanju:

/cygdrive/c/ProgramFiles/GNUARM/Bin/../lib/gcc/arm-elf/4.2.0/../../../../arm-elf/bin/ld: ERROR: startup.o uses hardware FP, whereas lpc2378.elf uses software FP
/cygdrive/c/ProgramFiles/GNUARM/Bin/../lib/gcc/arm-elf/4.2.0/../../../../arm-elf/bin/ld: failed to merge target specific data of file startup.o
... ?


Sicer nisem prepričan, vendar dodaj naslednji switch pri startup.S : -mno-fpu
S tem assemblerju poveš, da MCU nima hardware floating point unit in naj jo emulira softwaresko.

Prosim, naj me popravi kdo, če se motim.

Aleš
Nazaj na vrh
Skrit Poglej uporabnikov profil Pošlji zasebno sporočilo
Homer
Član
Član



Pridružen-a: Čet 10 Maj 2007 22:51
Prispevkov: 19
Aktiv.: 0.09

PrispevekObjavljeno: Čet Avg 23, 2007 12:05 am    Naslov sporočila:   Odgovori s citatom

Juhu, imaš prav! Tole je iz gnu skripte.

-mfpp | -mfpu | -mfp-11
-mno-fpp | -mno-fpu | -mno-fp-11
Enable (or disable) the use of FP-11 floating-point instructions: ABSF, ADDF,
CFCC, CLRF, CMPF, DIVF, LDCFF, LDCIF, LDEXP, LDF, LDFPS, MODF, MULF, NEGF,
SETD, SETF, SETI, SETL, STCFF, STCFI, STEXP, STF, STFPS, STST, SUBF, and
TSTF.

Na kateri naslov ti pošljem pivo? Smile
Nazaj na vrh
Odsoten 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: Čet Avg 23, 2007 6:52 am    Naslov sporočila:   Odgovori s citatom

Homer je napisal/a:

Na kateri naslov ti pošljem pivo? Smile


Laughing Bomo kako :union: ali :lasko: skupaj spili na pikniku.
Nazaj na vrh
Skrit Poglej uporabnikov profil Pošlji zasebno sporočilo
Homer
Član
Član



Pridružen-a: Čet 10 Maj 2007 22:51
Prispevkov: 19
Aktiv.: 0.09

PrispevekObjavljeno: Pet Avg 24, 2007 12:04 pm    Naslov sporočila:   Odgovori s citatom

Zmenjeno!

Mogoče veš kakšna je direktiva za prevajalnik,
da bi po prevajanu izpisal koliko zasede program - velikost kode?

Nekje sem zasledil "arm-elf-size" pa pri meni ne naredi nič pametnega Smile
Nazaj na vrh
Odsoten 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: Pet Avg 24, 2007 12:24 pm    Naslov sporočila:   Odgovori s citatom

"arm-elf-size --help" ti izpiše parametre, ki jih vzmame arm-elf-size

V splošnem switch --help ali -h dela z večino command-line ukazov.

Minimalno kar moraš dodati za ukazom "arm-elf-size" da ti izpiše velikost programa, je še ime *.elf fileja. Npr.: "arm-elf-size main.elf"
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: 503 dni


Powered by phpBB © 2001, 2005 phpBB Group