RTEMS (Real-Time Executive for Multiprocessor Systems) is a real-time operating system kernel used around the world and in space. RTEMS is a free real-time operating system (RTOS) designed for deeply embedded systems such as automobile electronics, robotic controllers, and on-board satellite instruments (1,2).
This example is the result of a study of this OS. I was interested in learning how to build an image and create applications for it. At the moment, this project is used as a base for creating embedded controller applications based on x86 CPU and ARM-microcontrollers LPC1768 .
Perhaps this work will be interesting to someone and you will use this knowledge to create your own systems.
Make some preparations once before start the building process:
git clone https://github.com/maxpoliak/rtems-ec-cli.git && cd rtems-ec-cli && ./preparations.sh
Use the help to print all the available options:
./build.sh help
Use ./build.sh [OPTIONS...]
Use $0 [OPTIONS...]"
-a | all Build all: cross-compiler, RTEMS OS and ile-cli application
rtems Build RTEMS OS
cross Build cross-compiler
-C | cleanall Clear all
-r | rebuild Set rebuild flag
Delete the application's object files before building it
-h | help Print help
For the first build, use the build script with the "-a" or "all" option to build all components of the project. As a result, you will build a cross compiler, RTEMS OS and the ile-cli application itself.
./build.sh all
Build the application only, without rebuilding tools and RTEMS OS:
./build.sh
The Waf build system (3,4) is used for the output executable file of the application.
Use the docker.sh scripts to run in the docker container.
./docker.sh ./build.sh all
Test the result in QEMU using the script:
./run.sh