Я так понял что основная причина нелюбви к прототредам - много писанины? Так качайте Contiki, там всё убрано в макросы. Типичное оформление прототреда в Contiki:
/*---------------------------------------------------------------------------*/
PROCESS(serial_shell_process, "Contiki serial shell");
/*---------------------------------------------------------------------------*/
PROCESS_THREAD(serial_shell_process, ev, data)
{
PROCESS_BEGIN();
shell_init();
while(1) {
PROCESS_WAIT_EVENT_UNTIL(ev == serial_line_event_message && data != NULL);
shell_input(data, strlen(data));
}
PROCESS_END();
}