Seeking a platform for self-learning the FreeRTOS kernel/API

I’ve heard of FreeRTOS for several years, but lacked a means (and the excuse) to jump into it. The existence of FreeRTOS and the broad hardware support it provides is exciting as hell. The two PDF files are very well written and have further fueled my enthusiasm.

Last week, I heard that the next generation of Beckhoff CX7000 PLCs will be using Amazon’s FreeRTOS. They are said to not be commercially available until next summer.

I personally see this as quite exciting as I have exclusively developed in Linux/Unix environments for over 20 years and haven’t been eager at all to adopt commercial solutions when open source solutions exist. Namely, I have little interest in developing for Windows CE devices due to limited support, licensing, and entry expenses. Historically, many PLCs have been mired by costly, poorly supported, proprietary software for their programming environments.

I’m not high on the list for acquiring prototypes of this new product, but I want to get a head start and immerse myself in this opportunity. I gather that to start in FreeRTOS, one needs a physical device as the target as there doesn’t seem to be much available in terms of emulators for the supported devices. I am seeking recommendations for an affordable device that I can use as a learning platform such that when I acquire the CX7000, I’ll already have a strong understanding of the API, best practices and programming style.

Least importantly, I’ll introduce myself as I hopefully see myself becoming a user and potential contributor to this project. In the distant past, I have programmed in Ada83, C++ and various flavors of assembly including the 6502, 8086, (sorry, never did the Z80) and a couple obscure RISC processors. My most natural language is C with an IDE of two xterm windows for vim and gcc. I graduated with a degree in Computer Engineering at Iowa State University in case there are any Cyclones out there. I travel frequently between Alabama, USA and Nürnberg, Germany.

Timothy D Legg

The following are some of the easiest ways to get started without hardware:

  1. The Windows simulator. Despite its name this is actually a Windows port. It runs all the kernel code, and the FreeRTOS scheduler decides which task to run when, just like on a real device, but you won’t get real time behaviour out of it. There is a pre-configured Win32 project in the download.

  2. Using the Renode emulator, for which there is also a preconfigured demo in the download.

  3. We also use the Cortex-M3 model in QEMU, also I’m not sure there are demos in the download for that yet, although there will be soon - but there is a RISC-V QEMU demo in the download.

1 Like