Embedded Controller Programming with Embedded C
ECE-40291
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