Skip to content

Toolchain Setup

Philipp van Kempen edited this page Nov 18, 2020 · 7 revisions

To ensure that every student has the chance to participate at the lab multiple ways are provided to setup a toolchain for the lab experiments on you personal computer. Please be aware of the fact that not every toolchain can receive all of our attention as we have to focus on the most important ones.

⚠️ Warning: This Wiki pages contains some References to outdated toolchains (remote/docker). Please ignore them!

Overview

As they are very different to each other in terms of requirements and setup simplicity, the following section should give some sort of a comparison. This should help you deciding for the toolchain which fits the best for you.

  1. Physical Computer with native Ubuntu installation (Dual-Boot also possible)
    • Initial required steps are quite time consuming (Recommended if you already have such system installed)
    • Best choice if you want ideal rendering performance.
  2. Virtual Machine running Ubuntu
    • Can either be installed manually or imported by using a prepared Disk Image (Recommended for inexperienced students)
    • Overheads exists due to virtualization (Especially on older computers with very little RAM.)
  3. Container-based Setup
    • Provided Docker image
    • Initial setup may be tricky (Only for experienced users)
    • Much more lightweight than using Virtualbox.

After you have selected the way you want to setup your toolchain, you may choose an environment to develop in during the lab (Code/Compile/Debug/VersionControl). Not every way is feasible depending on your prior choice but do not feel compelled to stick with a single development style.

  • Command line only (locally)
    • 100% CMake/Makefile based
    • Run cmake .. in build directory, compile via make, run by executing ../bin/FreeRTOS_Emulator
    • Using simple Text Editor like VIM, gEdit,...
    • Feasible for: Toolchain 1 & 2
  • IDE based option (locally)
    • VSCode recommended (Eclipse supported yet)
    • Development/Compile/Run... on by using VSCode tasks in Linux distribution (native or inside VirtualBox)
    • Feasible for: Toolchain 1 & 2
  • VM based Option (remote, with/without IDE)
    • Development/Compile on Host, Run/Debug on VirtualBox Guest
    • Virtualbox only used for display, thus less slowdowns while writing code
    • Relies on SSH and SMB Mountpoints (Additional Software required!)
    • Only with restrictions (Not recommended at this point!)
    • with IDE: Run cmake -DTOOLCHAIN=vm -DUSE_IDE=vscode, use tasks in VSCode for Compile, Run,...
    • without IDE: Run cmake -DTOOLCHAIN=vm, use Makefile in remote directory for Compile, Run,...
    • Feasible for: Toolchain 2
  • Docker based Development (remote, with/without IDE)~
    • Relies on X11 Forwarding and docker-compose (Additional Software required!)
    • Only with restrictions (Not recommended at this point!)
    • with IDE: Run cmake -DTOOLCHAIN=docker -DUSE_IDE=vscode, use tasks in VSCode for Compile, Run,...
    • without IDE: Run cmake -DTOOLCHAIN=docker, use Makefile in docker directory for Compile, Run,...
    • Feasible for: Toolchain 3

Detailed Explainations