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


Pridružen-a: Čet 10 Maj 2007 22:51 Prispevkov: 19 Aktiv.: 0.09
|
Objavljeno: Tor Avg 21, 2007 4:50 pm Naslov sporočila: LPC2378 prekinitve |
|
|
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 |
|
 |
Benjamin Član

Pridružen-a: Tor 10 Jul 2007 11:23 Prispevkov: 116 Aktiv.: 0.53 Kraj: Trebnje, Ljubljana
|
Objavljeno: Tor Avg 21, 2007 6:09 pm Naslov sporočila: |
|
|
Ž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 |
|
 |
Homer Član


Pridružen-a: Čet 10 Maj 2007 22:51 Prispevkov: 19 Aktiv.: 0.09
|
Objavljeno: Tor Avg 21, 2007 6:23 pm Naslov sporočila: |
|
|
Jp, brisanje zastavic in "dummy write" - brez tega bi delalo isto ,
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
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 |
|
 |
alessio Član

Pridružen-a: Pon 04 Dec 2006 8:39 Prispevkov: 363 Aktiv.: 1.61 Kraj: Ljubljana
|
Objavljeno: Tor Avg 21, 2007 7:04 pm Naslov sporočila: |
|
|
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 |
|
 |
Homer Član


Pridružen-a: Čet 10 Maj 2007 22:51 Prispevkov: 19 Aktiv.: 0.09
|
Objavljeno: Sre Avg 22, 2007 7:27 pm Naslov sporočila: |
|
|
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 |
|
 |
alessio Član

Pridružen-a: Pon 04 Dec 2006 8:39 Prispevkov: 363 Aktiv.: 1.61 Kraj: Ljubljana
|
Objavljeno: Sre Avg 22, 2007 11:17 pm Naslov sporočila: |
|
|
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 |
|
 |
Homer Član


Pridružen-a: Čet 10 Maj 2007 22:51 Prispevkov: 19 Aktiv.: 0.09
|
Objavljeno: Čet Avg 23, 2007 12:05 am Naslov sporočila: |
|
|
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?  |
|
Nazaj na vrh |
|
 |
alessio Član

Pridružen-a: Pon 04 Dec 2006 8:39 Prispevkov: 363 Aktiv.: 1.61 Kraj: Ljubljana
|
Objavljeno: Čet Avg 23, 2007 6:52 am Naslov sporočila: |
|
|
Homer je napisal/a: |
Na kateri naslov ti pošljem pivo?  |
Bomo kako ali skupaj spili na pikniku. |
|
Nazaj na vrh |
|
 |
Homer Član


Pridružen-a: Čet 10 Maj 2007 22:51 Prispevkov: 19 Aktiv.: 0.09
|
Objavljeno: Pet Avg 24, 2007 12:04 pm Naslov sporočila: |
|
|
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  |
|
Nazaj na vrh |
|
 |
alessio Član

Pridružen-a: Pon 04 Dec 2006 8:39 Prispevkov: 363 Aktiv.: 1.61 Kraj: Ljubljana
|
Objavljeno: Pet Avg 24, 2007 12:24 pm Naslov sporočila: |
|
|
"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 |
|
 |
|
|
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
|