In previous posts, we were introduced to the hardware and made it operational with the kernel module. Soooo... (drum rolls) it's time to write and run a program on the Epiphany chip! But how can one do it? What compiler do I use? What "language" does the Epiphany chip understands? Is it C, C++, assembly, binary, or what?
In this article, dive into the existing Epiphany kernel module, break it into parts and investigate its functions. Analyzing a few thousands of lines of code is not that exciting, so we are going to pretend the driver doesn't exist and write it from scratch. The empirical approach will help us understand the Kernel <-> Epiphany communication better, and that will become crucial for the project we'll implement at the end of the series.
Parallella board is equipped with a powerful 16-core Epiphany coprocessor. In this post, we dive into hardware design, learn about FPGA, and analyze datasheets to answer the question, "what does make the parallella board special?".
FreeRTOS is a real-time operating system kernel for embedded devices. Usually, we would use it for tiny-time-constraint applications where reliability is at utmost importance, so why bother about RTOS at all?