Course detailUcsd Extended StudiesComputer Science & Softwareopen

ECE-X402.91

Embedded Controller Programming with Embedded C

This course teaches students Embedded C Programming skills used to program Embedded Controllers.

The course begins with a study of the Embedded C language, including the language syntax, data types, and control structures.

The students will then use Embedded C to write and run code on real embedded controller hardware.

The student will learn how embedded controller hardware maps onto Embedded C data and control structures.

The student will also learn concepts such as HAL (Hardware Abstraction Layer) and how it makes writing Embedded C for many different types of embedded controllers possible.

At the end of the course, the student will have written and run Embedded C to control real hardware features such as GPIO (General Purpose Input/Output), ADC (Analog to Digital Conversion), and Serial I/O.

Course Highlights: Embedded Software Stack Interfacing with Advanced Peripherals Using Hardware Communication Protocols Embedded Software Program Development and Optimization Relevant Case Studies on IoT Design Challenges Course Learning Outcomes: Identify Embedded C software components and know how they are different from standard C software components Recognize and use important concepts such as HAL (Hardware Abstraction Layer) to write Embedded C code that is portable to different embedded controllers Utilize hardware/software signaling mechanism to implement effective communication between embedded software stack and hardware Comprehend hardware communication protocols for implementation with other peripheral hardware devices such as GPIO, ADC, and Serial I/O Understand embedded controller hardware and software stack and their respective differences from traditional software development Hardware: STM32 IOT Discovery Node 915MHZ - Mfg.

Part # B-L475E-IOT01A.

Part can be purchased from MOUSER Electronics or Digi-Key Electronics or any other reputable electronics dealer.

This microcontroller is used in all four required courses in this program.

Course Typically Offered: Online in Fall and Spring quarters.

Prerequisites: CSE-40476 C/C++ Programming II: Dynamic Memory and File I/O Concepts and ECE-40292 Embedded Systems Hardware Design or equivalent knowledge and experience.

Next Step: After completing this course, consider taking ECE-40097 Embedded Controller Programming for Real-Time Systems to continue learning.

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

Schedule note
9/22/2026 - 11/21/2026

Help keep the register running.

Every cup of coffee fuels the sync workers and proxy rotations.

Buy me a coffee