This is Part 1 of a 2 PDF bundle which will be enough to get more than 90% in your Embedded System Design and Software exams. It is in the format of Questions and answers which will be helpful for last minute reading. It helped me a lot and got 98 in my exam.
The below topics are included in the PDF's:
Introduction: Embedded Systems Overview, Design Challenge-Optimizing Design Metrics,
Processor Technology, IC Technology, Design Technology, Tradeoffs.
Custom Single-Purpose Processors – Hardware: Custom Single-purpose Processor Design,
Optimizing Custom Single-Purpose Processors.
General-Purpose Processors – Software: Basic Architecture, Operation, Programmer’s View, Development Environment, Application-Specific Instruction-Set Processors (ASIPs), Selecting a
Microprocessor, General Purpose Processor Design.
Standard Single-Purpose Processors – Peripherals: Timers, Counters, and Watchdog Timers, UART, Pulse Width Modulators, LCD Controllers, Keypad Controllers, Stepper Motor Controllers, Analog-to-Digital Converters, Real-Time Clocks.
Memory: Memory Write Ability and Storage Permanence, Common Memory Types, Composing
Memory, Memory Hierarchy and Cache, Advanced RAM.
Embedded software – Interrupts: Interrupt Basics, The Shared-Data Problem, Interrupt Latency.
Survey of Software Architectures: Round-Robin, Round-Robin with Interrupts, Function-Queue-
Scheduling Architecture, Real-Time Operating System Architecture, Selecting an architecture.
Introduction to RTOS: Tasks and Task States, Tasks and Data, Re-entrancy, Semaphores and Shared Data, Semaphore Problems: Priority Inversion, Deadly Embrace Encapsulating Semaphores, RTOS and ISR, Saving Memory Space, Saving Power.
By the end you will be able to:
1. To introduce the difference between embedded systems and general purpose systems.
2. To optimize hardware designs of custom single-purpose processors.
3. To compare different approaches in optimizing general-purpose processors.
4. To introduce different peripheral interfaces to embedded systems.
5. To understand the design tradeoffs made by different models of embedded systems.
6. To apply knowledge gained in software-hardware integration in team-based projects.
7. To Understand the concepts behind embedded software.
8. To design an embedded solution for a real world problem.
9. To select components to implement an embedded system.
10. To program the software for an embedded system together with its sensor and control
11. To optimize an embedded system to meet design requirements of size, speed, and/or power