-
Notifications
You must be signed in to change notification settings - Fork 5
Home
In this Wiki you will find directions that must be followed to make a project delivery. Keep in mind that you can also take a look at the teachers' project deliveries to get a little inspiration and also understand what is being asked of the teams to be done with their projects.
Each group must understand that their project will be contained in a git repository and, as an ideal repository, it must:
- Explain what the repository is about
- Description: a top-level overview of the piece of software(s) that is(are) inside the repository
- Objective: what the software tries to accomplish
- Steps to reproduce (this is really important)
- What I need to compile it
- toolchain(s?),
- dependencies
- libs
- packages
- versions
- and how to download and configure/setup each of them
- anything else
- How to compile it, e.g.:
- terminal command-line(s), or
- compilation script, or
- Makefile(s) and how to use it (desired), or
- CMakeLists.txt(s) (desired), or
- anything else or even a mix of the above
- What platform do I need to run it (e.g. Beaglebone Black Rev.C, or a Toradex Colibri VF50 128MB (IT or not))
- How to configure the platform to run it. E.g.:
- What Operating system and version
- What runtime packages and versions
- What I need to compile it
It is, as expected, a piece of software that will run on an embedded system. Here, the embedded system platform will run on Linux-based OS and (usually) be a Toradex Colibri VF, Beaglebone Black, Pocket Beagle, Raspberry Pi, and likes.
We want that the engineers that successfully walk out of this class have a minimum understanding about:
- Linux
- How it works
- How to use it
- C and/or C++ programming languages
- Compilation (C/C++)
- Cross-compilation (C/C++)
- Networking
- TCP/UDP/IP
- Multi-Threading and/or Multi-Processing
- Synchronization
- Communication
- Resource sharing
- Common Hardware access
- GPIO
- I2C
- SPI
- PWM
- etc
_Projects that are based on Arduino-like solutions will not be accepted. WHY? Because
- Linux
- Terminal usage