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

Pridružen-a: Pet 05 Mar 2004 12:54 Prispevkov: 1018 Aktiv.: 4.29 Kraj: Sežana
|
Objavljeno: Pon Maj 21, 2007 2:47 pm Naslov sporočila: Isti compiler, različna koda |
|
|
Imam en problem, na katerega ne najdem rešitve (neizkušenost z gcc). MOrda bo komu jasno.
Najprej sem projekt delal na šarmu in mi je scompilalo naslednjo startup kodo:
Ker se projekt bliža koncu sem prešel na lastno vezje, na akterem uporabljam tudi isystemov If-dev. Prevajalnik je isti kot pri šarmu (ista verzija), tudi nastavitve prevajanja so iste, naredi pa kodo:
.
Prevajalnik drugače prevede tabelo interrupt vektorjev, po tem je pa vse čisto enako. Kot napisano prevajalnik je isti, oboje delam v WinIDEA (različni verziji) z enakimi nastavitvami za prevajalnik.
Spodnja koda ne deluje uredu, ko pride IDE do ukaza swp se procesor neha odzivati.
Ima kdo kakšno idejo zakaj se zadeva prevede drugače? |
|
Nazaj na vrh |
|
 |
Glitch Član

Pridružen-a: Pet 07 Apr 2006 11:40 Prispevkov: 1477 Aktiv.: 6.31
|
Objavljeno: Pon Maj 21, 2007 3:18 pm Naslov sporočila: |
|
|
Videti, da prevajalnik nima nic pri tem. Izgleda, kot da je IDE (torej orodje s katerim delas), po svoje generiral startup kodo. Moti me to, da je na interrupt vektorjih povsem obicajna koda, ki balina z registri in nato klice SWI. Ali si res preprican, da ti v projektu nekaj ne manjka, recimo kaksna .s datoteka z interrupt vektorji? Ali je postopek vkljucevanja teh datotek k projektu enak v obeh primerih?
Makefile je se vedno zakon. |
|
Nazaj na vrh |
|
 |
BluPhenix Član

Pridružen-a: Pet 05 Mar 2004 12:54 Prispevkov: 1018 Aktiv.: 4.29 Kraj: Sežana
|
Objavljeno: Pon Maj 21, 2007 3:27 pm Naslov sporočila: |
|
|
Tole je oboje generirano iz istega startup fila ctr0.s. V projekt je vključen na enak način. Vse je ve tem startup filu, nič v kakšnem drugem zunanjem.
Nekako pa se mi je zdelo, da je prej IDE "krivec". V oberh primerih ja namreč nastavljen internal make.
Imaš mogoče kakšno povezavo na kakšen uporaben priročnik na temo makefila za arm? Iščem tudi sam po googlu, ampak ne najdem nič kaj takega, kar bi razložilo v par korakih kar je tisto bistvu. Morda kakšen primer makefila za lpcje? |
|
Nazaj na vrh |
|
 |
Glitch Član

Pridružen-a: Pet 07 Apr 2006 11:40 Prispevkov: 1477 Aktiv.: 6.31
|
Objavljeno: Pon Maj 21, 2007 3:35 pm Naslov sporočila: |
|
|
Mar ta IDE nima opcije generiranja kode z makefile datoteko? Niti enega primera? Nobene kontrole? Fuj fuj.
To, da nisi na googlu nic nasel pa skoraj ne verjamem. Poleg tega je v reviji SE nekaj clankov na to temo (gnu okolje z makefile in LPC serija).
Sigurno si kaj zgresil kje? Nimam teh programov, zato ne morem pogledat. |
|
Nazaj na vrh |
|
 |
alessio Član

Pridružen-a: Pon 04 Dec 2006 8:39 Prispevkov: 363 Aktiv.: 1.61 Kraj: Ljubljana
|
Objavljeno: Pon Maj 21, 2007 3:39 pm Naslov sporočila: |
|
|
Spodnja startup koda je hudo napačna. Lokacije od 0x00 do 0x18 so prekinitveni vektorji, (ko pride do prekinitve, se v programski števec PC procesorja naložijo ti naslovi). To pomeni, da morajo biti na teh naslovih ukazi za skok na tvojo prekinitveno rutino, nekaj v tem stilu:
ali
Če je to kodo zgeneriral kak "wizard", še enkrat preglej nastavitve.
Aleš |
|
Nazaj na vrh |
|
 |
BluPhenix Član

Pridružen-a: Pet 05 Mar 2004 12:54 Prispevkov: 1018 Aktiv.: 4.29 Kraj: Sežana
|
Objavljeno: Pon Maj 21, 2007 3:42 pm Naslov sporočila: |
|
|
Program omogoča eksterni makefile, ravno zdej berem en pdf (Jim Lynch's ARM cross development with eclipse), ker je dokaj solidno razloženo za začetnika kako narediti osnovni makefile. Bom poizkusil tako.
Hvala za napotek.
alessio, vem da je popolnoma "kr neki" spodnja koda, mi pa ni bilo jasno katera stvar je krivec. Zdej bom poizkusil rešiti z makefile. Očitno se interni razlikuje med verzijama programa. Če pogledaš kaj je napisano z rumenimi črkami, lahko vidiš da je točno tako kot si ti napisal ldr pc, vector_address ... prevede pa ...  |
|
Nazaj na vrh |
|
 |
alessio Član

Pridružen-a: Pon 04 Dec 2006 8:39 Prispevkov: 363 Aktiv.: 1.61 Kraj: Ljubljana
|
Objavljeno: Pon Maj 21, 2007 3:46 pm Naslov sporočila: |
|
|
Nekaj lepih zgledov makefile-ov imaš na tej strani- ARM projects . |
|
Nazaj na vrh |
|
 |
Glitch Član

Pridružen-a: Pet 07 Apr 2006 11:40 Prispevkov: 1477 Aktiv.: 6.31
|
Objavljeno: Pon Maj 21, 2007 3:48 pm Naslov sporočila: |
|
|
Definitivno je krivec IDE. Manjka mu kaksna kljukica ali pa kaksna datoteka. Jimov tutorial je cool. |
|
Nazaj na vrh |
|
 |
BluPhenix Član

Pridružen-a: Pet 05 Mar 2004 12:54 Prispevkov: 1018 Aktiv.: 4.29 Kraj: Sežana
|
Objavljeno: Pon Maj 21, 2007 3:56 pm Naslov sporočila: |
|
|
Sedaj sem opazil še nekaj drugega. Takoj ko kodo downloadam na lpcja, se mi v disassembler oknu pokaže pravilna koda. Če pa procesor resetiram preko IDEja, se pa po resetu pokaže stvar, ki je podobna tistemu na drugi sliki.
Po downloadu se tudi izvaja pravilna koda, po resetu pa se začnejo izvajati tisti napačni stavki.
Čudno mi je vse skupaj. Bom pa kot rečeno poizkusil z make filom.
Nazadnje urejal/a BluPhenix Pon Maj 21, 2007 4:10 pm; skupaj popravljeno 1 krat |
|
Nazaj na vrh |
|
 |
alessio Član

Pridružen-a: Pon 04 Dec 2006 8:39 Prispevkov: 363 Aktiv.: 1.61 Kraj: Ljubljana
|
Objavljeno: Pon Maj 21, 2007 3:58 pm Naslov sporočila: |
|
|
Glitch je napisal/a: |
Jimov tutorial je cool. |
Jimov tutorial je res hudo cool. Par dni nazaj je objavil novega na www.at91.com.
Nahaja se pod dokumenti. Naslov tutoriala z primeri: Using Open Source Tools for AT91SAM7 Cross Development
Aleš |
|
Nazaj na vrh |
|
 |
alessio Član

Pridružen-a: Pon 04 Dec 2006 8:39 Prispevkov: 363 Aktiv.: 1.61 Kraj: Ljubljana
|
Objavljeno: Pon Maj 21, 2007 4:03 pm Naslov sporočila: |
|
|
Tole je direkten link na Jimov tutorial. |
|
Nazaj na vrh |
|
 |
Glitch Član

Pridružen-a: Pet 07 Apr 2006 11:40 Prispevkov: 1477 Aktiv.: 6.31
|
Objavljeno: Pon Maj 21, 2007 4:04 pm Naslov sporočila: Isti compiler, razlicen IDE, razlicna koda |
|
|
Aha, ok. Se mi je zdelo, da ima debuger prste vmes (razen ce ti klices software interrupt, a?). Hja,... To mora biti dokumentirano nekje. Ce najdes, copy - paste v to temo, da ne bo spet kdo iskal. |
|
Nazaj na vrh |
|
 |
BluPhenix Član

Pridružen-a: Pet 05 Mar 2004 12:54 Prispevkov: 1018 Aktiv.: 4.29 Kraj: Sežana
|
Objavljeno: Pon Maj 21, 2007 5:57 pm Naslov sporočila: |
|
|
ZAdeva se dogaja tudi pri hardverskem resetu, tako da sploh ne vem če je res ide/debugger kriv.
Ne, ne kličem nobenega SW interrupta. Sej to mi je čudno, ker takoj po downloadu vse normalno deluje, po resetu pa se začne to dogajat? Čudne stvari  |
|
Nazaj na vrh |
|
 |
Glitch Član

Pridružen-a: Pet 07 Apr 2006 11:40 Prispevkov: 1477 Aktiv.: 6.31
|
Objavljeno: Pon Maj 21, 2007 6:38 pm Naslov sporočila: |
|
|
Seveda se dogaja tudi pri HW resetu, ce je pa ta koda tam. Si poskusil generirati release verzijo? To je definitivno debug verzija tvoje kode. Probaj, poglej v generirano asm kodo. Ponavadi je to datoteka s koncnico lst ali lss. Ce je ni, poisci se kaksno kljukico. |
|
Nazaj na vrh |
|
 |
BluPhenix Član

Pridružen-a: Pet 05 Mar 2004 12:54 Prispevkov: 1018 Aktiv.: 4.29 Kraj: Sežana
|
Objavljeno: Pon Maj 21, 2007 8:34 pm Naslov sporočila: |
|
|
Ok, lahko da sem se slabo izrazil.
Po downloadu mi disassembler kaže pravilno kodo, ko grem step by step po njej deluje pravilno, tudi če dam run preko debuggerja dela cel program normalno. Ko pa dam kakršen koli reset je koda drugačna in se ne izvaja.
Bom pogledal to kar si napisal. Hvala.
EDIT: sem naredil dump kode, ki jo zgenerira compiler in linker. Assembler koda ki jo sproducira je pravilna. Iščem naprej.
EIDT: Tega z release kodo ne razumem najboljše. Je to stikalo optimizacije -O3 pri compiliranju? (SEdaj imam -O0, katero naj bi bilo debug) |
|
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: 5 dni
Powered by phpBB © 2001, 2005 phpBB Group
|