Skip to content
Alessandro Power edited this page Feb 9, 2017 · 3 revisions

Everything You Need To Know... (Eventually)

Vagrant Environment

The spacecraft software should be developed within Space Concordia's Vagrant environment. For instructions on installing the Vagrant environment please consult the repository's README. It is important to note that you should always do a git pull before bringing the Vagrant box up. If there were changes, execute vagrant up --provision instead of the normal vagrant up.

Development Guide

This section will provide a tour of the project's structure and the development workflow you can expect to follow.

The buildroot directory contains source code to compile an embedded Linux OS. This directory should remain unchanged and you do not need to concern yourself with it. The ext-tree directory contains the project-specific configurations for Buildroot. It contains, among other things, the project executables which will be placed in the root filesystem. qemu.sh launches the Qemu emulator.

The remaining directories contain the project "packages" i.e. the source code to compile the project's libraries and executables. hello is an example package to help you understand the development environment. If you enter the hello directory, you will see that each package is a self-contained project, with its own README, Makefile, .gitignore, and unit tests.

Before building any packages, run make target=<target> build, where target can be either qemu or arietta. Note that it will take approximately one hour to build the OS. To build the packages, run the command make target=<target> mode=<mode>, where mode can be either debug or release. To build the unit tests, run the command make target=<target> mode=<mode> test. (Presently this does not work as the unit testing framework has yet to be integrated with the toolchain.) Finally, to rebuild the Linux OS, run the command make target=<target> build. Subsequent invokations of make will not need to rebuild the entire OS and so will take much less time. Further note that the build output will be in your home directory. This is because most developers will be compiling this project in a shared folder inside our Vagrant environment, and the Linux kernel cannot be built in a shared folder.

To run the emulator, simply execute the qemu.sh script with ./qemu.sh. After some generic boot messages, you will be prompter for login information. The login name is root with no password. The project packages, such as hello, can be found in various locations of the OS e.g. hello will be in /usr/bin.

About

Purpose