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