Re: Threads Kategorie: Programmierung (von Erik K - 1.07.2002 9:09) | |
Als Antwort auf Re: Threads von André H. - 27.06.2002 11:53
| |
Hi Andrè Danke für deine Bestätigung! Systemmodule, die man verändern kann haben sicher ihre Vorteile - Nachteile jedoch handelt man sich dabei halt auch ein, und dazu gehört dass man Systemroutinen nicht so sorglos verwenden kann wie bei starren Programmanweisungen (wo Anweisungen als Compilercode vorliegen). Nur wenn man liest, das hwcom Anweisungen ununterbrechbar abgearbeitet werden, bezieht man dies leicht auf den Aufruf anstatt richtigerweise nur auf den Teil der HW Aktion. Danke für deinen Vorschlag, ich werde meinen Code entspechend ändern. Erik > Hallo Erik, > Als erstes mu� ich Dir sagen, da� das in keinster Weise ein Bug ist !! > Wenn Du die Module swcom & hwcom ansehen würdest, solltest Du es sehen. > Normalerweise sollte die serielle Schnittstelle nur von jeweils einem Thread > bedient werden, was garantiert immer Mögliich ist. > Die Funktionen der seriellen Schnittstellen sind bereits gecaptured, und das ist > Dein Problem ! Wenn du Thread A anhälst wärend dieser mit Hilfe von com.receive > Daten empfängt bleibt das Capture bestehen. Sobald Du dann versuchst mit Thread B > auf auf com.receive zuzugreifen steht, steht dieser vor verschlossener Tür, da das > Capture von com.receive noch besteht. > Es gibt mehrere Möglichkeiten dein Problem zu lösen: > 1. Du benützt nur einen Thread. Das ist ohne weiteres möglich. > Man mu� nur dementsprechend programmieren. > 2. Du stellst sicher, da� Thread A die Daten fertig empfangen hat, bevor > Du diesen anhälst: > > Thread A: > .... > yield; > busy=1; > ... > //Empfangsroutinen > .... > busy=0; > yield; > .... > > Thread B: > ... > if ereignis > {wait busy==0; > halt thread_A; > } > .... > > Dies it eine Art einseitiges Softwarecapture, das Deinen Zwecken genügen sollte. > Es gibt noch die Möglichkeit dieses Softwarecapture so abzuändern, da� > es genauso funktioniert, wie das Systemeigene, nur lässt sich das > SW-Capture verschachteln. > > MfG André H. > > > > Hab ich auch schon überlegt, aber capture könnte die Reaktionszeit das Threads2 auf das Ereignis erhöhen. ich mu� dort leider rasch reagieren. > > > > Meine Frage geht eher in die Richtung, ob sonst schon wer dieses Problem geortet hat, das ich mal als Bug im > > OS bezeichnen würde. Was nützt es, wenn die Abfrage der HwCom ununterbrechbar durch andere Threads ist, > > aber die Rückgabe der Parameter nicht eingeschlossen ist. > > > > Erik > > > > > Kannst du nicht in Thread2 ein Capture release einbauen, wärend der Task die Dten von hwcom liest? > > > > > > Ciao Jens > > | |
Antwort schreiben Antworten: |