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