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