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.
- 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 firstname.lastname@example.org
Course Number: ECE-40291
Credit: 3.00 unit(s)
Related Certificate Programs: Embedded Systems Engineering
+ Expand All
3/28/2023 - 5/27/2023
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.
McEntire, Norman C, Founder, Servin Corporation
Norman McEntire founded Servin Corporation in 1995 to provide computer training, consulting and software development with a focus on Android, iOS and Linux. 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.
No refunds after: 4/3/2023.
3/28/2023 - 5/27/2023
You will have access to your course materials on the published start date OR 1 business day after your enrollment is confirmed if you enroll on or after the published start date.
There are no sections of this course currently scheduled. Please contact the Science & Technology department at 858-534-3229 or email@example.com for information about when this course will be offered again.