Chyba v programu
Jaroslav Buchta
jaroslav.buchta@gmail.com
Úterý Listopad 25 13:35:11 CET 2008
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ížně definovatelnou dobu
Jak jsem se již zmiňoval, je zajištěno že v přerušení nedojde k přepsání
registru procesoru? S PICama jsem nikdy nedělal, ale předpokálám že to
je CISC procesor s málo registry, tak někdy můře dojít k přepsání ve
funkci ze které se to přerušení vyvolá. U malých osmibitů není pravidlem
že se před volámím funkce překladač uloží všechny registy zo dá
zásobníku a pak se zase obnoví, musí se mu to oznámit (např. parametrem
k funkci - reentrantí funkce - jak to říci česky?) nebo zajisti aby
přerušení pužívalo svojí a pouze svojí sadu registrů.
Jelikož se tazatel mikde nezmiňuje o tom co jak je kód vlstně přeložen
tak bych navrhoval (nepředpolkádám že to není, ale ať se máme od čeho
odrazit - za křišťál dnesk chtejí děsný prachy)
- je zakázáno přerušení v které vyvolalo funkci přerušení v dané obsluze
přerušení (první věc zakážu, podlední povolím)
- používá obsluha přerušení svoje vlastní registry? A pokud ne je
přeložena jako reentrant? (viz asm výpis kódu)
pokud jsou tyto věci zajištěny, můžeme pokročit dále, jinak je to
krafaní u piva. A na to mi chybí pivo.
ced
Richard Kaliciak wrote:
> Dobry den,
>
>
>>> V tomto duchu pracuji, ale chyba se vyskytuje obcas. Poustim tam
>>> ruzne data
>>> a prumer chyb je tak 1 za hodinu. Takze to zabira spostu casu.
>>>
>
> to vyzera na porusenie atomicity nejakej operacie s premennymi typu
> int
> tym prerusenim. Nedavno tu dokonca bezala jedna "piatkova sutaz" na tuto
> temu, zda sa mi, ze to spustil wek.
> Ak v tom preruseni citate alebo zapisujete do viacbytovych premennych,
> ktore sa pouzivaju aj v hlavnom programe, tak zakazte pred pristupom k
> tymto premennym v hlavom programe prerusenie (a potom samozrejme povolte).
>
> Richard Kaliciak _______________________________________________
> HW-list mailing list - sponsored by www.HW.cz
> Hw-list@list.hw.cz
> http://list.hw.cz/mailman/listinfo/hw-list
>
_______________________________________________
HW-list mailing list - sponsored by www.HW.cz Hw-list@list.hw.cz
http://list.hw.cz/mailman/listinfo/hw-list
Další informace o konferenci Hw-list