ECEn 427: Embedded Linux Systems

This course covers the “full stack” of embedded systems, including developing software applications, user space and kernel drivers, and custom digital hardware.
All of these pieces are integrated together in a semester-long project to implement the original Space Invaders game.
The development platform used in the class is a Linux-based embedded system, and much of the course focuses on learning about Linux and operating systems in general.

The class is hands-on; learning is primarily accomplished by completing a series of lab assignments and reading/studying online documentation.

We will be using the Xilinx PYNQ board for this class. Though the board is typically outfitted with a Python-based productivity environment, we won’t be using that for this class. The boards that we are using will be setup to use Ubuntu so that you can develop directly on these systems.

Important Note: This class relies on your ability to teach yourself and to find things out as you go. In most cases, the lab descriptions will provide only the background information that is difficult to find on the internet. Also, we will go over difficult concepts in class. However, in order to complete the lab exercises, you will need to be resourceful. You will need to carefully study the provided documentation and to find answers to your questions on your own by searching web-sites such as stack-overflow, etc. The TAs will try to help you when you are completely stuck but they generally won’t answer questions that you should be able to answer for yourself. Also, try not to rely too much on other students. Try to become self-reliant. Ultimately, self-reliant engineers get paid more and have better job security.