Re: Langzeitstabilität der CC2-Station? Kategorie: CC2-Unit & Appl.Board / CC2-Station (von Ralf - 25.02.2004 0:01) | |
Als Antwort auf Re: Langzeitstabilität der CC2-Station? von Frank - 23.02.2004 11:50
| |
Hallo Frank ( sun ist eine globale long-Variable ) capture glob.cFlag; glob.sun = 0; release; Nach einem capture mu� mit release das Multitasking so schnell wie möglich wieder frei gegeben werden. Dieses Verfahren ist erforderlich, wenn über globale Variablen Daten zwischen Threads ausgetauscht werden. Wenn es möglich ist, dass zwei Threads gleichzeitig auf die Variable zugreifen, einer zum lesen, der andere zum schreiben, dann tun sie das auch irgend wann mal, das ist sicher. Bei so einem Fehler hat z.B Thread xy gerade in Byte 3 und Byte 2 der Variable einen Teil vom neuen Wert eingetragen und dann wird umgeschaltet auf Thread z. Von Thread z wird gerade jetzt die Variable gelesen, und schon existiert ein Wert, den es so gar nicht geben dürfte. Eins von beiden mu� dann geschützt werden: Die Lese- oder die Schreibzugriffe. Man wird die Schreibzugriffe schützen, wenn sie von verschiedenen Threads ausgeführt werden und/oder wenn die Zahl der Lesezugriffe grö�er ist als die der Schreibzugriffe. Nur wenn von einem Thread relativ wenig Lesezugriffe erfolgen und viele Schreibzugriffe in EINEM Thread (nacheinander) ausgeführt werden, wird man den/die Lesezugriffe schützen. Bei Hardwarezugriffen ist es ähnlich (wenn die Treiber nicht schon gecapturet sind, da muss Du Dir die Funktionen mal genau ansehen). Beim Fehlersuchen kannst Du capture/release ruhig verstreuen wie Salz. Noch besser ist: Andere Threads erstmal abzuschalten um zu gucken, was passiert dann. Viele Grü�e Ralf > Hallo Ralf! > > Vielleicht löst das ja auch mein Problem, wäre zu schön um wahr zu sein. Du hast wirklich jeden > Zugriff auf eine globale Variable geschützt? Könntest Du mir vielleicht mal Auszüge Deines > Programms zeigen? Würd mich mal interessieren, wie die das nun genau gemacht hast? Will ja nun > auch keine capture/release verstreuen wie das Salz in der Suppe. > > Besten Dank im Voraus, > Frank | |
Antwort schreiben Antworten: Re: Langzeitstabilität der CC2-Station? (von Olaf - 26.02.2004 12:25) Re: Langzeitstabilität der CC2-Station? (von Frank - 26.02.2004 13:47) Re: Langzeitstabilität der CC2-Station? (von Frank - 25.02.2004 10:10) Re: Langzeitstabilität der CC2-Station? (von Ralf - 26.02.2004 0:16) |