Re: Vorteile mit cap.c2 ? Kategorie: Programmierung (von Norbert - 16.06.2006 7:55) | ||
Als Antwort auf Re: Vorteile mit cap.c2 ? von André H. - 15.06.2006 22:05 | ||
| ||
Hallo Ihr beiden, herzlichen Dank, dass Ihr Euch bei mehr als 400 Fundstellen "capture" immer noch auf das Thema eingelasen habt. Ich hoffe ja auch, dass der Denkfehler bei mir liegt, sonst hätte André die function cap.c2 nicht gebaut. Ich hatte folgende Kollision überlegt: Angenommen thread a soll in einer kritischen Phase geschützt werden, wenn der eine function write (string event) aufruft. Weiter angenommen, der thread a hat fast keine Rechenzeit mehr, es reicht nur noch bis zur folgenden Stelle wrarrB ... : thread a ... wait cap.Capture(0); // hole logbuch_pointer ... //schreibe string ins RAM ram.writestr(logbuch_pointer,event); // hier der code aus ram.c2 function writestr (long addr, byte s[]) { wait i2c.Capture(); ............. angenommen, hier gibt thread a die Rechenzeit ab wrarrB(s,32,sys,addr); } // increment logbuch_pointer ... cap.Release (0); ... } jetzt kommt thread b ins Spiel: thread b ... //soll nach LCD schreiben ... wait i2c.Capture(); hier meine Frage: was geschieht zu dem Zeitpunkt, wenn thread b den i2c capture an- fragt? In diesem Beispiel hat thread a das i2c capture flag gesetzt, und thread b wartet ! jetzt dämmert es: thread a kann jetzt weiter arbeiten. Evtl. ist die Idee mit der kurzzeitigen Prio �nderung doch gar nicht so schlecht, wie damals diskutiert wurde. Siehe Pseudo-Capture, Re: Synchronisierung Kategorie: Programmierung (von André H. - 30.10.2005 18:00) Dadurch wird ein thread Wechsel vermieden, weniger Rechenzeit. Nochmals vielen Dank, das Wochende naht, ich muss undbedingt cap.c2 ausprobiern. Grü�e aus dem Norden, Norbert | ||
Antwort schreiben Antworten: |