2110682 Embedded and Real-Time Systems
Department of Computer Engineering
Faculty of Engineering, Chulalongkorn University
Course duration : Jan-April 2018
Lecturer
: Prabhas Chongstitvatana, Prof.
(office Eng build
4, Floor 18, room 13, tel 022186982, email: prabhas at chula dot ac dot th)
Lecture
: Sunday 13.00-16.00 at ENG4 Floor 17
The content of the course is a mixed between hardware and software.
Embedded systems are computer systems with special requirement on
constraints such as low power, high integration, real-time. This course
explores Embedded systems design. On the hardware side, it includes embedded
processors and low level programming, logic design, integrated
circuits. On the software side, it includes Operating systems
scheduling and real-time constraints. Here are the list of topics:
Introduction to embedded and real-time systems
Microprocessor
Assembly level programming
Memory, Peripherals and Microprocessor interface
Operating systems and task scheduling
Real-time systems and their requirements
Internet of Things
How we learn
We learn by doing both hardware and software. The activities include
embedded system model construction, some programming, and hands-on session.
The assignments will be given out periodically throughout the term. A small
project will be given around midterm. Students must present the results of
their projects. At the second half of the semester, a real hardware
will be presented. Students are assigned to design and implement a
small embedded system. The project will be presented in the class. The
final exam is "open book" and has an element of system design plus some
"pseudo" programming.
old lecture 2017
Announcement
. . .
Timetable
January
Introduction
Microprocessors
IOT
board (platform for interrupt programming) demo-rz.txt
example of using IoT board (in Rz): stopwatch
programming with interrupt counting
events
Assembly language S2
version 1: 32-bit processor
example of writing assembly
language: find max
Rz
language and its compiler
logic design Basic Logic
architecture: Evolution of
computer architecture
February
Operating systems and task scheduling basic
OS concepts
Multitask-OS (MOS) (in assembly) mos2.txt
(in Rz) mos-rz.txt
lecture from Matt Welsh, Harvard, semaphores.pdf
semaphore: demo from William Stallings, U.
of Queensland
implementing semaphores
Cooperative
Processes
Cooperative
Multitask OS (CMOS)
Project discussion
March
Project presentation
real-time systems RTOS
real-time scheduling
Embedded Systems
Communication
April
Embedded systems practice (Ardruino Board)
memory, peripherals and interface memory
and interrupt i/o peripherals
Actual hardware: Arduino experiment
Internet of Things: Everything
as a service
Arduino connected to Internet
May
final exam
final project presentation
Homework
1) Write a program for IoT board to function as Frequency meter.
Reading input from Analog port (10) and calculate the period between
"crossing zero" of the wave. Using that information to compute the
frequency. Please email your solution to my email
prabhas@chula.ac.th using the title prefix with embed: .
2) Study the output assembly language generated from Rz input
source program. Investigate how a function calls another
function. How a parameter is passed.
3) 11 Feb 2018 -- Play with mos2.txt, try to make it to work
(by modify the simulator or mos2.txt itself).
. . .
Assignment
Mid term projects
Invent a demo program that uses two IoT boards (I will provide a special
edition IoT simulator). These boards will have extra two ports (for
writing/reading one integer) for communication. Each board can run a
single program or multi-task (by using MOS). You should try to show
an interesting demo.
...
Final project
...
Recommended Textbooks
1. Philip Koopman, Better Embedded System Software, Drumnadrochit
Press, 2010, ISBN-10: 0-9844490-0-0.
2. Ball S, Embedded Microprocessor Systems: Real World Design 2nd
edition, Newnes 2000
3. Vahid F, Givargis T, Embedded System Design: A Unified Hardware/Software
Introduction, Wiley 2002
4. Kopetz H, Real-Time Systems: Design Principles for Distributed Embedded
Applications, Kluwer 1997
Additional Materials
Transistor
level simulation of an antique CPU. 6502 is used in the iconic Apple
II machine.
http://visual6502.org/JSSim/index.html
Course Assessment
Assignments 10%
Mid project 30%
Final project
30%
Final
exam
30%
Tools
IoT board: Rz compiler, S21 assembler, simulator (with MOS)
iot-rz-18.zip
with input: iot-rz-19.zip
s21 tools : assembler and simulator s21-3.zip
rz3.6.1 compiler with s21 assembler and simulator rz361-2.zip
MOS in Rz mos-rz2.txt
(update 25 Feb 2017)
Acknowledgement
Slides and presentations are kindly permitted by Setha Pan-gnam, Chalermek
Intanagonwiwat
last update 22 Apr 2018