我想问一下我认为在tinyos2编程手册中没有明确规定的内容。当命令或任务发出接口事件信号时,是立即调用的有线函数,即在同一个调用堆栈中,还是“发布”这些信号事件以供以后执行?
我倾向于认为这是前者,但只是为了澄清它。
答案 0 :(得分:4)
TinyOS 1或2在这里没有什么区别 - 这是一个nesC问题。发出信号后,立即开始执行。但是,如果将多个组件连接到接口,则会一个接一个地执行(也就是扇出)。
答案 1 :(得分:0)
我只知道TinyOS v1,但我相信它们在这方面是相同的。
事件只是函数调用,因此在与调用者相同的堆栈上执行。
如果需要发布某些内容以供以后执行,则应将其作为一项任务实施。因此,需要长时间运行以响应事件而不想干扰中断延迟的事件使用者应安排任务,并且该任务应该执行一些工作,然后安排任务执行更多的工作以同样的方式。