FreeRTOS is a free, as in liberty, real-time operating system for embedded systems. This means that you can have tasks, mutexes and timers for your PIC32/24, AVR32 or Cortex M3. In fact, there is official support for 27 architectures, and loads of community support – both for platforms and features such as TCP/IP networking.
For those unfamiliar with the term real-time operating system, let us begin there. For most computer algorithms, the result is what matters. A computer calculating the right checksum for a received package is considered to work properly. This is not always true in a real-time scenario. Here, the checksum must not only be correctly calculated, it must also be calculated in time. For instance, the checksum might be out-of-date if it is not calculated quickly enough. To solve this issue, a real-time operating system supports threads, or tasks, with different priorities and scheduler that tries to complete all tasks on time.
Handling this as a developer is not as complicated as it might sound at first, but it adds time as a major factor in the system design. This means that real-time operating systems are ideal for systems where timing is important. Examples are communication gateways, automation systems, etc.
Over the next weeks we will look at FreeRTOS from a developer perspective. Exploring tasks, the available targets and how to do networking from a small embedded system, you will get familiar with the operating system.