If, as some have called it, engineering is the science of making tradeoffs, then embedded systems engineering must be the final exam. Designers of embedded systems are routinely asked to implement dozens of features in a device with severely limited memory, decades-old processor architectures, and on a shoestring power budget.

Embedded software optimization is thus a necessary part of the job, particularly in mobile and energy saving device design. Engineers must particularly reduce the amount of memory and power consumed by the product. Unfortunately, some optimizations force tradeoffs of their own: some or all algorithms to reduce memory use may increase power consumption.

This course explains the fundamentals of embedded software optimization that every embedded system designer must understand.

  • Background (Types of Optimization, The Need For Optimization, What Would a “More Expensive” Device Mean?)
  • How to Use Less Memory
  • How to Use Less Power
  • Optimization Tradeoffs
  • Specific Approaches and Tools