Embedded Linux
ECE-40105
Embedded Linux is the leading platform for embedded devices.
This exciting and fast-paced course is designed to give you practical, hands-on experience in writing and debugging Linux-based application programs on real embedded Linux hardware. You will install an embedded linux development environment and learn how to develop both for host and target embedded devices. Using the popular Raspberry Pi 4 board, you will learn how to write user-mode programs, daemons, kernel modules, and even how to configure and build the Linux kernel.
Course Highlights:
- Explain the Host and Target environments and how they interact
- Building command-line programs
- Building services/daemons
- Building Kernel Modules
- Building Device Drivers
- Building the Linux Kernel
Course Learning Outcomes:
- Ability to set up and use an embedded Linux development environment
- Execute key commands used with embedded Linux development
- Access peripheral hardware with or without device drivers
- Develop of command-line programs
- Develop services/daemons
- Develop kernel modules
- Develop device drivers
- Configure and build the Linux Kernel
Software: During the first lesson you'll follow the provided links to download and install the software required for the course. All the software is from free and open-source sites.
Hardware: Students are expected to have a Raspberry Pi 4 available from Raspberry Pi or any reputable electronics dealer.
Course Typically Offered: Online in Fall and Spring quarters.
Prerequisites: This course is intended for engineers and programmers involved in developing embedded computing systems and devices using the Linux Operating System. Students unfamiliar with Linux operating system are encouraged to complete the course CSE-41333 Linux Operating System Fundamentals prior to enrolling in this course. Some knowledge of the material covered in CSE-40476 C/C++ Programming II: Dynamic Memory and File I/O Concepts and ECE-40291 Embedded Controller Programming with Embedded C will be helpful to students but not required.
Students who possess proficient knowledge of these prerequisite courses as well as the bullet points below may enroll in this course. (no formal department waiver for the prerequisites is needed)
- Familiarity with the Linux command line
- Working knowledge of bash shell
- Experience with basic digital hardware components such as network and serial ports
Next Step: After completing this course, consider taking other courses in the Embedded Systems Engineering certificate program.
Contact: For more information about this course, please email unexengr@ucsd.edu.
Course Information
Course sessions
Section ID:
Class type:
This course is entirely web-based and to be completed asynchronously between the published course start and end dates. Synchronous attendance is NOT required.
You will have access to your online course on the published start date OR 1 business day after your enrollment is confirmed if you enroll on or after the published start date.
Textbooks:
No textbook required.
Policies:
- No refunds after: 9/30/2024
Schedule:
Instructor: Norman McEntire, M.S., MCSE
Founder, Servin Corporation
Norman McEntire founded Servin Corporation in 1995 to provide computer training, consulting, and software development with a focus on Android, iOS, Java, Embedded C, Linux, and Machine Learning. With 25+ years of experience, he has designed both hardware and software at all levels, from embedded Linux to enterprise software. His training clients include Dell, HP, IBM, Intel, NCR and Qualcomm.