Visit our COVID update page.
The course reviews the embedded system architecture and hardware configurations, including the ARM Cortex-M instruction set. You will be introduced to using C codes to enable or disable hardware features, and gain hands-on experience with clock, timing, delays, and latency when working with different SoC, memory and IO interfaces. You will also learn to write efficient ROM code with limited memory and timing budget.
Most firmware development in industry is done on Linux systems. You should have solid C programming skills and be ready to do all class projects with GNU Tools in a Linux environment. You'll gain experience through a board project. The course will prepare you to take on additional embedded software courses for a wide range of product interests.
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
- Interface hardware to firmware running in a micro-controller
Notes: Students are required to bring a laptop with Linux installed for in-class exercises. Options include VMware, VirtualBox, LiveCD, disk partition or separate drive. Students are also required to purchase a small board, breadboard, resistors, LED, and wires (approx. $70 to $120, not included in the tuition) to do class projects on their Linux laptops. Detailed board information and instruction will be provided on the first night of class.
- 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.
Estimated Cost: TBD
Course Availability Notification
Please use this form to be notified when this course is open for enrollment.