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 

Undefined instruction LPC2478

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



Pridružen-a: Pet 07 Apr 2006 11:40
Prispevkov: 1477
Aktiv.: 6.30

PrispevekObjavljeno: Pet Okt 31, 2008 1:42 am    Naslov sporočila:  Undefined instruction LPC2478 Odgovori s citatom

Diagnosticiram na prvi pogled naključno sesuvanje: LPC2478 + FreeRTOS + nekaj taskov + uIP z odprtim IE, kjer se na 2s dela update stanje sistema. Vsake toliko časa vrze undefined instruction, zadeva je časovno nedeterministicna. Trenutno lovim instrukcijo, ki pripelje do tega (s pomocjo undefined handlerja in link registra). Prej nisem bil pozoren, vendar se mi zdi, da je lokacija, kjer pride do "sesutja" nakljucna. Smrdi po MAMu... any ideas?

Aja, pa še ena težava. Zakaj obstoječi sistem ne dela na sicer uspešno povezanem 100MBit full duplex linku, ki je bil uspostavljen s pomočjo autonegotiationa. Ročna (vsiljena) povezava 10Mbit FullDuplex dela brez težav.

_________________
Answers: $1, Short: $5, Correct: $25, dumb looks are still free.
Nazaj na vrh
Skrit Poglej uporabnikov profil Pošlji zasebno sporočilo Pošlji E-sporočilo
Glitch
Član
Član



Pridružen-a: Pet 07 Apr 2006 11:40
Prispevkov: 1477
Aktiv.: 6.30

PrispevekObjavljeno: Pet Okt 31, 2008 12:01 pm    Naslov sporočila:   Odgovori s citatom

Delni odgovor, za vse, ki bodo imeli kdaj podobne težave.

Iz undefined handlerja je potrebno skočiti nazaj in pogledati kaj je šlo narobe. To je najlažje narediti tako, da v handlerju napišemo

Koda:

mov pc, lr


in procesor bo skočil na ukaz, ki je za ukazom, ki je povzročil napako.

Ker se je pri meni vrnil v funkcijo in pri tem ostal v arm načinu, funkcija pa je bila prevedena thumb-u, je očitno prišlo do napake pri prehodu iz arm v thumb način.

_________________
Answers: $1, Short: $5, Correct: $25, dumb looks are still free.
Nazaj na vrh
Skrit Poglej uporabnikov profil Pošlji zasebno sporočilo Pošlji E-sporočilo
alessio
Član
Član



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

PrispevekObjavljeno: Pet Okt 31, 2008 12:54 pm    Naslov sporočila:   Odgovori s citatom

IMHO je težko verjetno, da bi v coru prišlo do napake pri prehodu ARM <-> THUMB.

Govorim na pamet oz. razmišljam... Ali ni undefined le en izmed exceptionov in core pri vstopu v ta mode avtomatsko preide v ARM mode? In če ti ročno modificiraš program counter PC s tem na zamenjaš mode-a...
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.60
Kraj: Ljubljana

PrispevekObjavljeno: Pet Okt 31, 2008 1:00 pm    Naslov sporočila:   Odgovori s citatom

Bolj ko razmišljam, se mi zdi sumljiv tale MAM. Na kakšni clock frekvenci delaš?
Mogoče bi bilo na mestu izklopit MAM in zadevo laufat nekaj časa...

A se ti zadeva sesuva tudi z dodajanjem/odvzemanjem programske kode oz. različno optimizacijo?
Nazaj na vrh
Skrit Poglej uporabnikov profil Pošlji zasebno sporočilo
Glitch
Član
Član



Pridružen-a: Pet 07 Apr 2006 11:40
Prispevkov: 1477
Aktiv.: 6.30

PrispevekObjavljeno: Pet Okt 31, 2008 1:37 pm    Naslov sporočila:   Odgovori s citatom

PC nisem spreminjal na roke, ampak z ukazom. S tem naj bi se vrnil tudi originalni CPSR. Glede na spremenjen mode (taski tečejo v system mode), se to tudi zgodi.

To, da bi procesor sam po sebi imel težave s preklopom ARM <-> Thumb je praktično nemogoče.

Sumim:
- nastavitve prevajalnika oz. njegove težave (thumb interworking / contex switch)
- MAM

Oboje se mi zdi skrajno čudno, ker MAM naj bi bil spucan (vse nove revizije čipov, ki so imele MAM bug so brez buga, te pa so bile narejene pred LPC2478-), prevajalnik pa tudi. Podrobno moram pogledati še nastavitve prevajalnika in pa ta contex switch (aha... ravnokar je spet odletel), ker dva modula (oba sta ISR) sta v ARM modu, ostali pa v thumb.

Tisto brez MAMA bom še probal, za spreminjat clock pa tudi.

Zadeva se sesuva tudi z dodajanjem/odvzemanjem kode, sem poskusil z različnim številom opravil.

P.S.
Spremenil sem eno od nastavitev. Ugotovil sem, da se napaka zmeraj pojavi v emac.c modulu. Sedaj je emac.c preveden v arm. Prvi test z minimalnim številom taskov je tekel ca. 50 min brez napak. Sedaj sem dodal še nekaj taskov, tako da je vseh 23 (z idle). Do web strani dostopam z štirimi brskalniki (dva IE in dva mozilla). Dostop je sicer serializiran (uIP dopušča samo eno aktivno povezavo), je pa pritisk nanj večji. Sedaj bom pa malce pustil zadevo. Potem pa poročam. MAM test sem pustil za kasneje.

_________________
Answers: $1, Short: $5, Correct: $25, dumb looks are still free.
Nazaj na vrh
Skrit Poglej uporabnikov profil Pošlji zasebno sporočilo Pošlji E-sporočilo
NeoTO
Član
Član



Pridružen-a: Pon 28 Mar 2005 19:19
Prispevkov: 2752
Aktiv.: 11.59
Kraj: Trzic

PrispevekObjavljeno: Pet Okt 31, 2008 10:07 pm    Naslov sporočila:   Odgovori s citatom

Ok, mogoče malo offtopic, ampak vseeno.

Glede etherneta - a je pri tebi tudi tako, da moraš čakati nekaj časa, predno ti Windows mašina pošlje potrditev za vsak paketek (mislim da okoli 200ms ali nekaj podobnega)? Na linux mašinah tega ni.

_________________
Lp,
Matevž
Nazaj na vrh
Odsoten Poglej uporabnikov profil Pošlji zasebno sporočilo MSN Messenger - naslov
Glitch
Član
Član



Pridružen-a: Pet 07 Apr 2006 11:40
Prispevkov: 1477
Aktiv.: 6.30

PrispevekObjavljeno: Pet Okt 31, 2008 10:27 pm    Naslov sporočila:   Odgovori s citatom

Temu se reče delayed acknowledment (ACK), se da nastavit. Ni nič narobe s tem, še več, s tem se lahko poveča učinkovitost (ni potrebno poslati ACK čisto vsakič).
_________________
Answers: $1, Short: $5, Correct: $25, dumb looks are still free.
Nazaj na vrh
Skrit Poglej uporabnikov profil Pošlji zasebno sporočilo Pošlji E-sporočilo
NeoTO
Član
Član



Pridružen-a: Pon 28 Mar 2005 19:19
Prispevkov: 2752
Aktiv.: 11.59
Kraj: Trzic

PrispevekObjavljeno: Pet Okt 31, 2008 11:01 pm    Naslov sporočila:   Odgovori s citatom

Ok, potem moram predelat tale moj TCP/IP stack, da bo pošiljal ACKje bolj poredko.
_________________
Lp,
Matevž
Nazaj na vrh
Odsoten Poglej uporabnikov profil Pošlji zasebno sporočilo MSN Messenger - naslov
Glitch
Član
Član



Pridružen-a: Pet 07 Apr 2006 11:40
Prispevkov: 1477
Aktiv.: 6.30

PrispevekObjavljeno: Sob Nov 01, 2008 12:54 am    Naslov sporočila:   Odgovori s citatom

Pazi, ta vrednost mora ustrezati določenim omejitvam. Preberi RFC1122.

Kakorkoli že, do sesuvanja ne pride več niti po >2h konstantnih zahtevkov, vključno s pingom (ping until break).

_________________
Answers: $1, Short: $5, Correct: $25, dumb looks are still free.
Nazaj na vrh
Skrit Poglej uporabnikov profil Pošlji zasebno sporočilo Pošlji E-sporočilo
alessio
Član
Član



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

PrispevekObjavljeno: Sob Nov 01, 2008 9:02 am    Naslov sporočila:   Odgovori s citatom

Kaj si pa spremenil? Taka zadeva je sumljiva in se zna spet pojavit.
Nazaj na vrh
Skrit Poglej uporabnikov profil Pošlji zasebno sporočilo
Glitch
Član
Član



Pridružen-a: Pet 07 Apr 2006 11:40
Prispevkov: 1477
Aktiv.: 6.30

PrispevekObjavljeno: Sob Nov 01, 2008 1:49 pm    Naslov sporočila:   Odgovori s citatom

emac.c sem prevedel v ARM in ne v thumb. Sedaj so v ARM modu emac.c in oba ISR modula (en za emac in drugi za rtos).

Skrajno čudno je da. To bom kasneje tudi omenil richardu (freertos tip) in ga bom prosil, če lahko tudi stestira meni nedelujoč primer. Namreč nimam LPC2368 boarda od Keila, da bi to probal sam. Originalni port je za LPC2368.

_________________
Answers: $1, Short: $5, Correct: $25, dumb looks are still free.
Nazaj na vrh
Skrit Poglej uporabnikov profil Pošlji zasebno sporočilo Pošlji E-sporočilo
Glitch
Član
Član



Pridružen-a: Pet 07 Apr 2006 11:40
Prispevkov: 1477
Aktiv.: 6.30

PrispevekObjavljeno: Sob Nov 08, 2008 12:46 am    Naslov sporočila:   Odgovori s citatom

Nja... MAM težave niso, zmanjšal sem frekvenco, spreminjal MAMTIM in MAMCR. Vedno isto. Res se mi ne da razkopavat po stacku in heapu, sploh, ko je v igri TCP/IP.

P.S.
Res je ze pozno... vendar je test zdrzal. Krivec: frame pointer s katerim ima gcc lahko tezave, lahko pa ne. Phajo jao. Brick wall
Kakorkoli že, očitno je -fomit-frame-pointer še vedno "aktualna" in jo je bolje pustiti vklopljeno.

Sedaj pa novim zmagam naproti.

_________________
Answers: $1, Short: $5, Correct: $25, dumb looks are still free.
Nazaj na vrh
Skrit Poglej uporabnikov profil Pošlji zasebno sporočilo Pošlji E-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: 7 dni


Powered by phpBB © 2001, 2005 phpBB Group