Home /  Courses And Programs / Embedded Linux

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 

Software: 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

Hardware: 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.   

Course Typically Offered: Online in Fall and Spring

Prerequisites: 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

Next Step: After completing this course, consider taking other courses in the Embedded Computer Engineering or UNIX & Linux Systems Administration certificate programs.

Contact: For more information about this course, please email unexengr@ucsd.edu

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

+ Expand All