2009-05-27 15 views
0

Je voulais poser une question qui, selon moi, n'est pas clairement spécifiée dans le manuel de programmation tinyos2. Lorsqu'une commande ou une tâche signale un événement d'interface, les fonctions câblées sont-elles appelées immédiatement, c'est-à-dire dans la même pile d'appel, ou ces événements signalés sont-ils "postés" pour une exécution ultérieure? J'ai tendance à croire que c'est l'ancien, mais juste pour le clarifier.Un événement dans tinyos est-il signalé à l'intérieur de la pile?

Répondre

0

Je ne connais que TinyOS v1, mais je crois qu'ils sont les mêmes à cet égard. Les événements ne sont que des appels de fonction et s'exécutent donc sur la même pile que l'appelant.

Si quelque chose doit être affiché pour une exécution ultérieure, il doit être implémenté en tant que tâche. Ainsi, les consommateurs d'événements qui doivent effectuer un travail de longue durée en réponse à un événement mais ne veulent pas interférer avec la latence d'interruption doivent planifier une tâche, et cette tâche devrait faire un peu de travail, puis planifier une tâche à effectuer plus du travail de la même manière.

4

TinyOS 1 ou 2 ne fait pas de différence ici - c'est une question nesC. Au signal, l'exécution commence immédiatement. Cependant, si plusieurs composants sont connectés à une interface, l'exécution se fait l'un après l'autre (alias fan-out).