Embedded Systems_UEC513_D_MST

Embedded Systems Overview

  • Course Title: UEC513 - Embedded Systems

  • Instructor: Dr. Debabrata Ghosh, Assistant Professor, ECED

  • Usage: This presentation is a reference only, not comprehensive for exams. Use the course syllabus and textbooks for thorough knowledge.

Course Objectives

  • Equip students with fundamental knowledge to design embedded systems.

  • Covers ARM processor architecture, programming, and interfacing with peripherals.

Course Content Breakdown

1. Introduction to Embedded Systems

  • Definition and comparison with general-purpose computing systems.

  • Classification of embedded systems.

  • Major application areas.

2. General Purpose Processor Architecture

  • Topics include:

    • Von-Neumann and Harvard architectures

    • CISC (Complex Instruction Set Computing) vs RISC (Reduced Instruction Set Computing)

    • Big and Little Endian processors

    • Processor design trade-offs

    • Processor cores: soft and hard.

3. Introduction to ARM Processor

  • ARM design philosophy

  • Architecture and register set

  • ARM7TDMI interface and signals

  • Memory interface and bus cycle types

  • Pipeline and operational modes.

4. ARM7TDMI Programming Topics

  • ARM instruction set, condition codes, addressing modes

  • Interrupts, exceptions, assembly language programming

  • Thumb state factors, applications, coprocessor interface.

5. ARM Development Environment

  • Arm Procedure Call Standard (APCS)

  • Embedded software development and related concepts.

Course Learning Objectives (CLO)

  1. Explain embedded systems and its processor architecture.

  2. Describe ARM internal architecture and develop ARM assembly programs.

  3. Design thumb mode operations and interface coprocessors.

  4. Interface hardware peripherals in embedded systems.

  5. Recognize processor software toolchain issues in embedded system development, specifically with C/C++.

References

  • Textbooks:

    1. Hamacher C., Vranesic Z., Zaky S., Manjikian N., “Computer Organization and Embedded Systems, Sixth Edition.”

    2. Furber S., “ARM System-on-Chip Architecture, Second Edition.”

  • Reference Books:

    1. Welsh S., Knaggs P., “ARM: Assembly Language Programming.”

    2. Sloss A. N., Symes D., Wright C., “ARM System Developer's Guide.”

Internal Organization of Computers

1. Basic Components

  • CPU

  • Memory (RAM, ROM)

  • Peripherals

2. Data Buses

  • Address bus, Data bus, Control bus.

3. CPU Connection

  • Data buses decide the communication connections within the CPU.

    • Types: Address bus (unidirectional addressing), Data bus (bidirectional data transfer), Control bus (managing read/write commands).

4. Buses Characteristics

  • More data buses enhance CPU capacity but add costs.

  • Addressing is essential for CPU recognition of devices.

  • The bus size for address can affect the number of addressable devices.

ARM Processor Architecture

1. CPU Components

  • ALU (Arithmetic Logic Unit)

  • Program counter (PC)

  • Stack Pointer (SP), Link Register (LR)

2. Registers in ARM

  • Total: 37 registers

  • Types include: R0-R12 (general purpose), PC, SP, LR

Programming in ARM Assembly

1. Assembly Language Operations

  • Factorial implementation, find larger numbers, condition codes for execution, etc.

2. Shift Operations

  • Logical shifts (LSL, LSR) and their usage in ARM.

3. Loading and Storing

  • Store and load operations, pointer usage, multiple registers

  • Example programs demonstrating data loading and storing.

Learning Deliverables

  • Construct ARM assembly programs that demonstrate various functions and operations based on course content.

  • Develop a working knowledge of embedded system structure and ARM programming.