This repository uses the basement recipe layer to build both a small Linux image and a FreeRTOS based image in one project that share a common "echo" library that replies to your input. It's meant as an example on how to use Bob to build multi-image code-sharing projects to ensure API and ABI compatibility in heterogeneous and complex environments with ease.
For more information about recipe layers and Bob's usage in general see its documentation. If you're interested in building containers and virtual machine images with Bob, head over to the container example.
- A
x86_64
system with the regular development tools installed (GCC, make, Perl, ...) - Bleeding edge Bob Build Tool (see below)
- Patience ☕
To actually run the built example you'll also need QEMU.
Clone the recipes and build them with Bob:
$ git clone https://github.com/BobBuildTool/bob-example-embedded.git \
--recurse-submodules
$ cd bob-example-embedded
$ bob build demo::linux+freertos
Just execute run.sh
in the result (something like
./work/demo/linux+freertos/dist/1/workspace/
but the number might differ)
directory. It will start the Linux system and you can interact with the FreeRTOS
system via microcom
. Follow the instructions on the console. Both systems are
started in parallel. The UART of the FreeRTOS system is connected to ttyAMA1
in the Linux system.
Contributions are welcome in form of feedback, bug reports and code. If you want to contribute in the form of code but are unsure about how to do things exactly, feel free to open up a pull request and ask for help.
The example uses Bob recipe layers that aren't currently available within a Bob release because one goal of it is testing the new feature intensively. Bob's next release will likely include layers so you won't have to install the bleeding edge version anymore.