Home /  Courses And Programs / Embedded Linux

Linux is rapidly emerging as the leading platform for embedded devices using high-performance 32-bit and 64-bit processors A March 2015 market study suggests that “open source, freely and/or publicly available” Linux will grow from 56.2 percent share of embedded unit shipments in 2012 to 64.7 percent in 2017. To remain relevant in the embedded computing world, you must know Linux.
This course is designed to give you practical, hands-on experience in writing and debugging Linux-based application programs on real target hardware. You will install a cross-development environment and set up the Network File System to support rapid turnaround in the edit-compile-debug cycle. Development and debugging are a breeze with the Eclipse Integrated Development Environment.
Course Highlights:

  • Basic Introduction to Linux
  • Understanding the Host and Target Environments and How They Interact
  • Application Development and Debugging using the Eclipse IDE
  • Multi-Threaded and Network Programming
  • Patching, Configuring, and Building the Linux Kernel
  • Device Drivers

Course Benefits:

  • Learn how to set up and use a Cross-Development Environment
  • Set up and use the Network File System to Remotely Mount a File System on a Target Board
  • Learn how to access Peripheral Hardware with or without Device Drivers
  • Gain experience with the Eclipse Integrated Development Environment
  • Learn to configure and build the Linux kernel 

Required Course Materials:
Students are expected to have the Embedded Linux Learning Kit from Intellimetrix for completing programming assignments. The kit is a fairly typical ARM-based single board computer (SBC) that might be used in an embedded device. It is offered at a substantial discount to UCSD students. There are no required textbooks required for this course.    
Most required software is supplied with the Embedded Linux Learning Kit. You will also need to install a Linux Distribution (“distro” for short). The recommended distro is CentOS 7.2. ISO image files are available here: http://archive.kernel.org/centos-vault/7.2.1511/isos/x86_64/
The course is intended for engineers and programmers involved in developing embedded computing systems and devices using the Linux Operating System. Students must have solid knowledge of material covered in ECE-40291 Embedded Controller Programming with Embedded C and CSE-40476 C/C++ Programming II: Dynamic Memory and File I/O Concepts
Students who possess proficient knowledge of these prerequisites and the subjects below may begin with the first required course in this program (no formal waiver is needed).

  • Fluency in C Programming
  • Some familiarity with basic digital hardware components such as network and serial ports
  • Some experience using Linux both from a command shell and a graphical desktop environment
  • Some experience debugging application code is helpful

Students that have taken this course may be interested in courses in:

For more information about this course, please contact the program manager at unexengr@ucsd.edu

Course Number: ECE-40105
Credit: 3.00 unit(s)
Related Certificate Programs: Embedded Computer Engineering

+ Expand All