Probleme mit Threads MicroC

Gast #1102015
Lesenswert?

Hallo,

habe folgendes Problem:

ich habe unter muC 2 threads laufen und versuche mit hilfe von aktivem 
warten einen wechselseitigen Ausschluss zu realiesieren.

das funktioniert auch aber nicht immer, das heist bei Tests bei denen 
ich diesen wechselseitigen Ausschluss oft in Anpruch nehme, hängt sich 
der Prozessor  auf und ich kann mir Logisch nicht erklären warum.

System : Nios 2 Altera eval. Board.
// habe die Funktionen jetzt mal etwas vereinfacht aber grundsätzlich 
siht es so aus.
   //  prozess nummer 1
while (1)
 {
   while(interpreter_ready != 1){printf(":::::");}//warten
   //kritischer bereich
   sprintf(Plott,"%s",tbuf);
   for (o= 0;o< 1024;o ++) tbuf [o]= '\0';  //  setzt den buffer zurück
   interpreter_ready =0;
   //nicht kritischwer bereich
 }


   // Prozezz nummer 2
while (1)
{
  funk();
}
char funk (void)
 {
  i++
   if (Plott == '\0' )
  {
    interpreter_ready = 1;
    //nicht kritischer bereich
    while (interpreter_ready != 0){ printf(".....");}
    ii= 0;                 // neue Daten stehen bereit
    return    (Plott[ii]);    // gibt aktuelles teichen zurück
  }
 }

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren