Skip to content

Local Toolchain

Alex Hoffman edited this page Apr 18, 2020 · 4 revisions

While this approach is the most reliable, it can only run on a Linux based operating system. So it would be optimal to have an native Ubuntu-like installation on your computer. Setting one up is not difficult, but requires some time, additional disk space and eventually knowledge about Multi-Boot environments.

As an alternative, you can run a Lubuntu VM (virtual machine) on your Windows Computer or Mac. You can either setup the toolchain (install required software and libraries) like explained in the following section or just use a prepared VirtualBox machine which is documented here. The VM-based approach is the most flexible option, but has some performance overheads compared to a native Linux installation.

Setting up the local development toolchain on a Ubuntu distribution or VM is quite straightforward once the OS installation is done. Like also mentioned in the README just run the following commands using root privileges (Run 'sudo -i' before and exit using ctrl+d afterwards)

sudo apt-get install libsdl2-ttf-dev libsdl2-mixer-dev libsdl2-image-dev libsdl2-gfx-dev libsdl2-dev

After installing the required packages (which was already done for you if you use the provided VirtualBox Image) you should first check out the latest code inside the FreeRTOS-Emulator repository by running

git clone https://github.com/alxhoff/FreeRTOS-Emulator.git

or respectively create a fork of the repository before and replace alxhoff with your GitHub username.

Tips:

  • Life gets a lot easier if you have set up a pair of SSH keys to connect to GitHub without having to enter your credentials. Follow the explanations you can find f.e. here and use git@github.com:alxhoff/FreeRTOS-Emulator.git instead of the HTTPS variant for cloning.
  • You may want to connect your fork to the original repository to get upstream changes in the Libraries merged into your codebase. The easiest way to do this is to add a second remote to your local checkout of the repo. An example on how to realize this is following.
# Add remote
git remote add upstream https://github.com/alxhoff/FreeRTOS-Emulator.git
git fetch upstream
# Compare with remote
git diff upstream/master
# Implement your changes on top of latest version of master template
git fetch upstream
git rebase upstream/master
# ...