我尝试在笔记本电脑和使用contiki用作操作系统的模块之间进行通信,问题是如何通过contiki中的交换来替换过程?
我发现这很难做到。如果您能帮助我,我会很感激。
您可以从中断上下文中进行对该过程进行轮询,也可以从其他过程上下文中为过程提出事件。有关与过程相关的API的更多信息,请参见Process.h文件。
contiki经常使用下半部分模式来处理中断/过程数据交换。
中断服务例程将缓冲接收到的数据,然后唤醒/拉动进程来处理它。
即:
/* This is a ISR */
void uart0_rx_isr(void) __interrupt(URX0_VECTOR)
{
/* read the UART peripheral */
char c = ...;
/* handle it to a process */
process_post(&example_process,
PROCESS_EVENT_NEW_BYTE, c);
}
更多信息在这里:https://github.com/contiki-os/contiki/wiki/processes