【发布时间】:2009-05-27 16:25:19
【问题描述】:
我想问一些我认为在 tinyos2 编程手册中没有明确说明的问题。当命令或任务发出接口事件信号时,是立即调用的连线函数,即在同一个调用堆栈中,还是这些信号事件“发布”以供以后执行?
我倾向于认为是前者,但只是为了澄清它。
【问题讨论】:
我想问一些我认为在 tinyos2 编程手册中没有明确说明的问题。当命令或任务发出接口事件信号时,是立即调用的连线函数,即在同一个调用堆栈中,还是这些信号事件“发布”以供以后执行?
我倾向于认为是前者,但只是为了澄清它。
【问题讨论】:
TinyOS 1 或 2 在这里没有区别 - 这是一个 nesC 问题。收到信号后,立即开始执行。但是,如果多个组件连接到一个接口,则会一个接一个地执行(也称为扇出)。
【讨论】:
我只知道TinyOS v1,但我相信他们在这方面是一样的。
事件只是函数调用,因此与调用者在同一个堆栈上执行。
如果需要发布某些内容以供以后执行,则应将其实现为任务。因此,需要长时间运行工作以响应事件但又不想干扰中断延迟的事件消费者应该安排一个任务,该任务应该做一点工作,然后安排一个任务去做以同样的方式完成更多的工作。
【讨论】: