Chyba v DC9.50 od RABBIT SEMICONDUCTOR
Martin
forum.martin@gmail.com
Středa Květen 2 21:01:04 CEST 2007
Zdravim,
ak niekto pouzivate DC 9.50 od rabbitsemiconductor dajte si pozor na
nepriemnu chybu kompilatora. Pri pouzivani globalnej premennej MS_TIMER
kompilator vygeneruje kod
ld de, (MS_TIMER)
ld bc, (MS_TIMER + 2)
...
tato sekvencia nie je atomicka a MS_TIMER sa moze inkrementovat v
polovici vykonavanej sekvencie. V starsej verzii DC 9.25 bolo citanie
MS_TIMER osetrene zakazanim prerusenia. Kod bol podstatne dlhsi ale zato
bezpecny. Chyba sa nemusi nijak prejavit, ale moze aj narobit riadne
problemy. Mne sa v jednej alikacii nahodne rozpadala komunikacia zhruba
raz za 2 hodiny. Po 3 dnoch hladania som prisiel na spominany problem.
Po prekompilovani v starsej verzii je vsetko v poriadku.
s pozdravom
Martin
Další informace o konferenci Hw-list