Chyba v programu
Michal HW
michalgregor@centrum.cz
Úterý Listopad 25 14:31:44 CET 2008
Zdrojak vypada priblizne takto:
Funkce A:
...
Zprac = Rx; // Zprac pracovni kopie prijatych dat
Zprac.Data[12] = 0xFD; // Volna pozice - info pro mne
...
Funkce B:
....
Zprac.Data[12] = 0xFE; // Volna pozice - info pro mne
Kopiruj (Zprac, Zprac_Bufer, Delka);
if (Je_Chyba() ) {
asm("nop"); // Breakpoint
}
....
Funkce A a B spolu nesouvisi. Ve funkci B se mi v pripade chyby objevi na
Zprac.Data[12] hodnota 0xFD, i kdyz jsem tam par radku zpet zapsal 0xFE.
Nejvesti sranda je kdyz do funkce "A" pridam dva kontrolni radky navic, tak
se chyba zacne projevovat jinak a na jinem miste. Zrejme z ISR se chybne
skace na urcitou adresu a kdyz neco zmeni tam se tam objevi jiny kod a tim
padem se to projevi jinak. Hitech v urcitych pripadech manipuluje se
zasobnikem navratovych adres. Zkusim se na to zamerit.
Neda se nejak u PIC18 vypsat obsah zasobniku?
Michal
Mozna, kdyby sem hodil zdrojak, bylo by jasno...
Taky pozor na ruzne stavove regisry atp.
-----Original Message-----
From: hw-list-bounces@list.hw.cz [mailto:hw-list-bounces@list.hw.cz] On
Behalf Of Josef Stengl
Sent: Tuesday, November 25, 2008 10:56 AM
To: HW-news
Subject: Re: Chyba v programu
Tohle není dobrý přístup.
- jen s velkými problémy zjistíte všechny případy ve kterých se to může
stát.
- je to pracné
- není to řešení příčiny ale obcházení následku.
- v budoucnosti wse vám to vymstí, protože na to zapmenete. nebo někomu
jinému kdo bude modifikovat program.
- zpožďuje se tím obsluha přerušení, což může být problém, protože se
zpožďuje o obtí
Další informace o konferenci Hw-list