Atomthreads Docker Container
Anyone keen to experiment with Atomthreads RTOS development can download a ready-made Docker container that contains a full development environment including compilers and simulators: https://registry.hub.docker.com/u/kelvinlawson/atomthreads/
Docker makes it easy for the Atomthreads project to deliver a standard build environment that you can download and be instantly up-and-running with all of the required compilers. simulators etc for Atomthreads development. On Linux it is as simple as running the following, which downloads the complete development environment and then runs a bash shell ready for building code:
docker run --rm -v /data:/data -t -i kelvinlawson/atomthreads /bin/bash
The official Atomthreads Docker container contains proven GNU compiler toolchains for both ARM and AVR development, as well as emulation tools that allow you to run the Atomthreads RTOS without using real hardware. Currently we use QEMU for ARM emulation and Simavr for AVR.
As well as installing all of the required tools in one simple command, using a container makes sure that the compiler tools etc do not conflict with compilers and other tools already on your PC. It provides an isolated environment so that you can, for example, install multiple ARM compilers on one PC, but inside different containers to avoid conflicts between different compiler versions that you use for other projects.
Another advantage is that the same Docker container can be run on many platforms, not just Linux. This means that you can also use the same pre-packaged Atomthreads Docker container on Windows and Mac using Boot2docker, instructions for which can be found here.
The container does not contain the Atomthreads sources. Typically you would download these from Github to a folder on your PC, and then make that folder available to the Docker container (e.g. the command-line above maps your local /data folder to a folder also called /data within the container).
You can then build Atomthreads and run the automated test suite on an emulator. e.g. you can build for the ARM platform and run the full automated test suite within QEMU using the following, which will complete with a pass or fail indication after running the test suite:
cd /data/atomthreads/ports/arm/platforms/qemu_integratorcp
make
make qemutests
Building for AVR and running the automated test suite in Simavr is carried out as follows:
cd /data/atomthreads/ports/avr
make PART=atmega128
make PART=atmega128 simtests