Almost  every  electronic  appliance  and  device  today  uses  embedded  systems.  Cell phones, automobiles, toasters, televisions, airplanes, medical equipment, and a host of other devices, products, and applications use embedded systems. Such systems include microcontrollers, embedded programs, and real-time operating systems. These systems require a conscious effort to produce the most reliable product possible requiring the utmost diligence in system design and in design methodologies. Indeed, these designs often reflect the design of low power systems and tool support.


By covering the course in Embedded Systems, the student will be able to:

  • Identify some contributors to embedded systems and relate their achievements to the  knowledge  area,  describe  the meaning  of an embedded  system,  explain  the reasons for the importance of embedded systems, describe the relationship between programming languages and embedded systems and describe how computer engineering uses or benefits from embedded systems.
  • Understand the CPU in the context of a complete system with I/O and memory, understand   how  the  CPU  talks  to  the  outside  world  through  devices,  and understand how memory system design (caches, memory management) affect program design and performance.
  • Understand how high-level language programs convert into executable code, know the capabilities and limits of compilers, and comprehend basic representations of programs used to manipulate programs either in a compiler or by hand.
  • Distinguish RTOSs from workstation/server  OS, distinguish real-time scheduling from traditional OS scheduling, understand major real-time scheduling policies and understand interprocess communication mechanisms.
  • Understand  why low-power  computing  is important,  identify sources  of energy consumption  and  identify  possible  remedies  for  energy  consumption  at  various levels of design abstraction.
  • Understand  the  variety  of  sources  of  faults  in  embedded  computing  systems, identify strategies to find problems and identify strategies to minimize the effects of problems.
  • Understand  why real-world  projects are not  the same  as class projects,  identify important  goals  of  the  methodology  and  understand  the  importance  of design tracking and documentation.
  • Understand  role  of  hardware  and  software  tools  in  system  development  and understand how to use tools to support the methodology.
  • Understand the use of multiple processors in embedded systems, identify trade-offs between CPUs and hardwired logic in multiprocessors, and understand basic design techniques.
Attachment Name Attachment Type
CMP3201 Embedded Systems DOC PDF PS