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 should have taken "Embedded Controller Programming I" and "C/C++ Programming I".
Embedded Controller Programming I and C/C++ Programming I may be waived (no formal waiver is needed) if you have proficiency in:
  • 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 EngineeringEmbedded Computer Software

+ Expand All