An Overview of Embedded System - What is an Embedded System? – Categories of Embedded Systems – Requirements of Embedded Systems - Challenges and issues in Embedded Software Development – Trends in Embedded Software Development - Applications of Embedded Systems.
Hardware Fundamentals for the Software Engineer - Gates – Timing Diagrams – memory – Microprocessors – Buses – DMA – Interrupts - Other Common Parts – Built-ins on the microprocessor – Interrupts - Microprocessor Architecture – Interrupt Basics – The Shared Data Problem – Interrupt Latency.
Survey of Software Architectures - Round Robin – Round Robin with Interrupts – Function Queue Scheduling Architecture – Use of real time operating system. RTOS, Tasks, Scheduler, Shared data reentrancy - priority inversion, mutex binary semaphore and counting semaphore – Selecting an Architecture - Introduction to Real Time Operating Systems - Tasks and Task states – Tasks and Data – Semaphores and Shared Data – Message Queues mailboxes and pipes – Timer functions – Events – Memory management – interrupt routines in an RTOS environment.
Basic Design Using a Real Time Operating System - Overview – Principles – Encapsulating Semaphores and Queues – Hard Real - Time Scheduling Considerations – Saving memory space – saving power - Embedded Software Development Tools - Host and Target Machines – inker/Locators for Embedded Software – Getting Embedded software into the target systems.
Debugging Techniques - Testing on Host Machine – Instruction Set simulators – The assert Macro – Using Library Tools - Future Trends in Embedded Systems - System on a chip (SOC) – Smart Cards and the cashless society – Security in Embedded System.