Parallel and Event Driven Programming in Embedded Systems using Silabs Giant Gecko, FreeRTOS, Linux and Embedded C