Adigrat University Engineering and technology
Department: computer science
Course title: Real Time and Embedded Systems Course code: COSC3026 Contact hrs: 2
Credit hours: 3 Lab hrs: 3
ECTS: 5 Tutorial hrs: 2
Prerequisite: CoSc3025- Microprocessor and Assembly Language Programming, CoSc3023/Operating
Systems
Instructor Name: G/her G. Course Information:
Instructor’s Contact Information: Academic Year: 2017 E.C
Office: B-55 R-19 Semester: II
Phone: Target group: CS III
Email: gerizaba@[Link]
Course Description
This course provides an overview of the unique concepts and techniques needed to design and implement
computer systems with real-time response requirements in an embedded environment. It contrasts the
concepts and techniques of real-time and embedded systems with those of traditional computer systems.
Topics include basic concepts of real-time and embedded systems, hardware features, sensors and actuators,
programming languages, real-time operating systems, cyclic and priority-based scheduling, concurrent
multitasking, time-sharing access to resources, real-time applications, fault-tolerance, deterministic
behavior, hardware/software integration, embedded systems synchronization techniques, performance
optimization, and current trends such as internet connectivity in real-time and embedded systems.
Course Objectives
The course provides students with opportunities to learn about major issues in real-time and embedded
systems. The objectives are:
To identify the major differences and design challenges for real-time and embedded systems
compared to traditional performance-based computing systems.
To understand and apply scheduling algorithms for real-time computing, including techniques to
evaluate worst-case delays and utilization bounds.
To apply model-driven development approaches to construct target execution environments for
simulation analysis and rapid prototyping, and to verify real-time requirements.
To evaluate, compare, and contrast different scheduling algorithms and real-time and embedded
kernel designs.
To apply knowledge of real-time and embedded system concepts to address open research questions
in the field.
Course Outline
Chapter 1: Introduction (6 Hours)
1.1. Definitions, characteristics, and examples of 1.4. Modeling timing constraints
real-time and embedded systems 1.5. Computer organization concepts and
1.2. Model of real-time systems memory
1.3. Types of real-time tasks 1.6. Design process
1|Page
Chapter 2: Embedded System Architecture (8 Hours)
2.1. Hardware architectures for embedded systems
2.2 ARM Cortex M0+ Hardware Overview: Ports, Registers, GPIO, Analog I/O, ADC/DAC
2.3 Communication: Parallel, USB/Serial, USART, SPI, TWI, Ethernet, Wireless
2.4 ATmega32 Microcontroller Architecture
2.5 Assembly Language Programming with ATmega32 Instruction Set
2.6 Programming in C to interface peripherals, interrupts, ISR, and timers
Chapter 3: Software Frameworks for Real-Time and Embedded Systems (8 Hours)
3.1 Real-time operating systems: definitions, 3.8 Multi-tasking and concurrency issues
characteristics, functionality, structure, and support 3.9 Handling resource sharing and dependencies
for applications - 3.9.1 Priorities and reentrancy
3.2 Features of a real-time operating system - 3.9.2 Resource sharing protocols
3.3 General and specific microprocessors 3.10 Fault-tolerance
3.4 Inter-process communication 3.11 Synchronization techniques
3.5 Real-time task scheduling - 3.11.1 Centralized clock synchronization
3.6 Dynamic allocation of tasks - 3.11.2 Distributed clock synchronization
3.7 Scheduling 3.12 Real-time applications
- 3.7.1 Cyclic scheduling 3.13 RTOS support for semaphores, queues, and
- 3.7.2 Priority-based scheduling events
Chapter 4: Embedded Systems Design Issues (6 Hours)
4.1 Memory management 4.3 Software development
4.2 Hardware development
Chapter 5: Real-Time Communication (4 Hours)
5.1 Basic concepts and examples of real-time 5.5 Internet of Things (IoT)
communication 5.6 Sensors and actuators
5.2 Real-time communication in LAN 5.7 Resource reservation
5.3 Bounded access protocol 5.8 Traffic shaping and policing
5.4 Real-time communication over the internet 5.9 Scheduling mechanisms and QoS models
Assessment Methods
- Assignments/Quizzes: 10% - Project: 20%
- Mid-Semester Examination: 20% - Final Examination: 50%
Textbooks
1. The AVR Microcontroller and Embedded Systems using Assembly and C by Muhammed Ali Mazidi et
al., Prentice Hall, 2011.
2. Hard Real-Time Computing Systems: Predictable Scheduling Algorithms and Applications by Giorgio
C. Buttazzo, Springer, Second/Third Edition, 2004/2011.
3. Real-Time Systems by Jane Liu, Prentice Hall, ISBN: 0130996513.
References
1. Real-Time Systems by C.M. Krishna and K.G. Shin, McGraw Hill, 1997.
2. High-Embedded Computing: Architectures, Applications, and Methodologies by Wayne Wolf, Morgan-
Kaufman, 2007.
3. Embedded C Programming and the Atmel AVR by Richard Barnett, Larry O’Cull, Sarah Cox, 2nd Ed.,
DELMAR CENGAGE Learning, 2007.
2|Page