All embedded systems require firmware to enable their features. In addition to C programming, firmware engineers must understand system and CPU architecture, as well as the IO and memory interface. They must also master techniques to manage limited memory and tasks, and code programs that are suitable for hardware bring-up and application development. In this course you will learn practical, in-depth knowledge and coding exercises for firmware development.
We’ll review embedded system architecture and hardware configurations specifically on the Espressif ESP32 and its CPU core architectures. You will be introduced to C codes, how to enable hardware features, and work with real-time operating systems, task management and interrupts as well as various inter-chip communication interfaces and access to the outside world. We will introduce the wireless functions of these devices.
Most firmware development in industry is done on Linux systems. You should have solid C programming skills and be ready to complete all class projects with GNU tools. You'll gain experience working on several on-hardware projects. This course prepares you for additional embedded software courses covering a wide range of product interests.
Learning Outcomes
At the conclusion of the course, you should be able to
- Understand key fundamental concepts of embedded firmware programming
- Set up and use an embedded firmware development environment
- Design firmware applications that take advantage of the many I2C and SPI sensors available
- Describe and explain various wireless protocols for IoT devices
- Save Your Seat
Help us confirm course scheduling. Enroll at least seven days before your course starts. - Accessing Canvas
Learn more about gaining access to your course on Canvas in our FAQ section. -
Accessibility and Accommodation
For accessibility questions or to request an accommodation, please visit Access for Students with Disabilities or email the Extension registrar. -
Finance Your Education
Here are ways to pay for your education.
Sections Open for Enrollment:
Schedule
Date: | Start Time: | End Time: | Meeting Type: | Location: |
---|---|---|---|---|
Wed, 01-22-2025 | 6:30 p.m. | 9:30 p.m. | Flexible | SANTA CLARA / REMOTE |
Wed, 01-29-2025 | 6:30 p.m. | 9:30 p.m. | Flexible | SANTA CLARA / REMOTE |
Wed, 02-05-2025 | 6:30 p.m. | 9:30 p.m. | Flexible | SANTA CLARA / REMOTE |
Wed, 02-12-2025 | 6:30 p.m. | 9:30 p.m. | Flexible | SANTA CLARA / REMOTE |
Wed, 02-19-2025 | 6:30 p.m. | 9:30 p.m. | Flexible | SANTA CLARA / REMOTE |
Wed, 02-26-2025 | 6:30 p.m. | 9:30 p.m. | Flexible | SANTA CLARA / REMOTE |
Wed, 03-05-2025 | 6:30 p.m. | 9:30 p.m. | Flexible | SANTA CLARA / REMOTE |
Wed, 03-12-2025 | 6:30 p.m. | 9:30 p.m. | Flexible | SANTA CLARA / REMOTE |