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||PS|