2009-05-27 5 views
0

Ich wollte etwas fragen, das im Programmierhandbuch von tinyos2 nicht klar definiert ist. Wenn ein Befehl oder eine Task ein Schnittstellenereignis signalisiert, werden die verdrahteten Funktionen sofort aufgerufen, d. H. Im selben Aufrufstack, oder werden diese signalisierten Ereignisse zur späteren Ausführung "gepostet"?Wird ein Ereignis in winzigen Signalen im Stapel signalisiert?

Ich neige dazu zu glauben, es ist der ehemalige, aber nur um es zu klären.

Antwort

0

Ich kenne nur TinyOS v1, aber ich glaube, dass sie in dieser Hinsicht die gleichen sind.

Ereignisse sind nur Funktionsaufrufe und werden daher auf demselben Stapel wie der Aufrufer ausgeführt.

Wenn etwas zur späteren Ausführung gepostet werden muss, sollte es als Aufgabe implementiert werden. Event-Consumers, die als Reaktion auf ein Ereignis eine lang andauernde Arbeit ausführen müssen, aber die Interrupt-Latenz nicht stören möchten, sollten eine Aufgabe planen, und diese Aufgabe sollte ein wenig Arbeit leisten und dann eine Aufgabe planen mehr von der Arbeit auf die gleiche Weise.

4

TinyOS 1 oder 2 macht hier keinen Unterschied - das ist eine Frage von NesC. Nach dem Signal beginnt die Ausführung sofort. Wenn jedoch mehrere Komponenten mit einer Schnittstelle verbunden sind, wird die Ausführung nacheinander ausgeführt (auch als "fan-out" bezeichnet).

Verwandte Themen