CS428 Embedded Systems Lab: Course Info

Department of Computer Science

University of Crete

 

Area:

E4 - Computer Architecture and Computer Systems

ECTS:

6

Semester:

Spring 2025

Instructors:

Angelos Bilas

Manolis Marazakis

 


Course Info
                   Syllabus                        Assignments                 Policies

 


Syllabus

 

 

Semester 

Week #

Week 

Start

Mon (Lecture 1), 16:00-18:00 

Wed (Lecture 2), 16:00-18:00

Fri (Backup) 16:00-18:00

1

10/2

- Introduction: Embedded Systems

- Embedded System Design Issues

- Wikipedia: Embedded Systems

- Lego Mindstorms NXT HW DevKit & Arduino Platform

- Assignment 1

[slides available locally ~hy428/files/slides]

- Timers, clocks

- Real Time Timer RTT (AT91 manual or AT3X manual)

- Hands-on walk-through

[slides available locally ~hy428/files/slides]

2

17/2

- ARM interrupts (2.8 in manual, AT91note)

- AIC (AT91 manual) or NVIC (or AT3X manual)

- Sound: AT91SAM7S SSC (AT91 manual)

[slides available locally ~hy428/files/slides]

- PWM & Sound

- AT91SAM7S basic PIO (AT91 manual or AT3X manual)

- AT91SAM7S PDC/DMA (AT91 manual or AT3X manual)

- Consistent sound

- [SPY0030A datasheet available locally]

- Assignment 2 

[slides available locally ~hy428/files/slides]

3

24/2

- ARM instruct. set (ARM7 manual, ref) 

[slides available locally ~hy428/files/slides]

- SPI (AT91 manual, slides)

- LCD [manual available locally]

[slides available locally ~hy428/files/slides]

4

3/3

Public Holiday

- LCD connectivity

- Display programming

- Analog to Digital Converter (AT3X manual)

[slides available locally ~hy428/files/slides]

5

10/3

- ARM interrupts in depth (1/2)

- Local file: AT91_interrupts.pdf

- Local file: ARM7TDMI_Technical_Reference_Manual.pdf (section 2.8) 

- local file: Cstartup.S 

- Assignment 3 

[slides available locally ~hy428/files/slides]

- ARM interrupts in depth (2/2) 

[slides available locally ~hy428/files/slides]

6

17/3

- I2C (spec: sec1-10, i2c-manual)

- TWI (AT91 manual)

[slides available locally ~hy428/files/slides]

- ARM - peripheral communication over I2C

- I2C implementation on TWI

- Passive sensor input/output

- Assignment 4 

7 (midterm week) 

24/3

- Memory technologies 

[slides available locally ~hy428/files/slides]

 

- NAND Flash and SSDs 1/2 

[slides available locally ~hy428/files/slides]

(1) Flash basics 

Section 2 of Luo et al., Data Retention in MLC NAND Flash Memory: Characterization, Optimization, and Recovery, HPCA15 [~hy428/files/reading/flash/retention_hpca15.pdf]

Micron Technical Note, NAND Flash 101: An Introduction to NAND Flash and How to Design It In to Your Next Product. 2006. [~hy428/files/reading/flash/micron_flash101.pdf]

 

M-sysetms, White Paper, Two Flash Technologies Compared: NOR vs NAND, Arie Tal, Oct. 2002, 91-SR-012-04-8L REV. 1.0  [~hy428/files/reading/flash/nand_vs_nor.pdf]

Midterm (during class, Wednesday, 26/3/2024, 16:00-18:00, αίθουσα του μαθήματος)

8

31/3

- NAND Flash and SSDs 2/2 

[slides available locally ~hy428/files/slides]

 

(1) SSD structure

Sections 1,2,3,5 of: Nitin Agrawal et al. Design tradeoffs for SSD performance. In USENIX 2008 Annual Technical Conference (ATC'08). [~hy428/files/reading/flash/ssd_tradeoffs_atc08.pdf]

(2) FTL address translation + GC

Section 2 of: DFTL: A Flash Translation Layer Employing Demand-based Selective Caching of Page-level Address Mappings. Gupta et al. ASPLOS’09. [~hy428/files/reading/flash/dftl_asplos09.pdf]

 

(3) SSD DRAM cache

Section 3 of: BPLRU: A buffer management scheme for improving random writes in Flash storage. Kim et al. FAST’08. [~hy428/files/reading/flash/bplru_fast08.pdf]

- Real Time 1/2 

[slides available locally ~hy428/files/slides]

 

Rate-Monotonic Analysis for Real-Time Industrial Computing. Mark H. Klein, JohnP. Lehoczky, and Ragunathan Rajkumar Carnegie Mellon University. IEEE Computer 0018-9162/94, 1994. [Available locally: ~hy428/files/reading/RMAKleint94.pdf]

9

7/4

- Virtualization in Embedded Systems   [slides]

- Assignment 6

 

- Reading:

(1) Smith et al., The Architecture of QEMU  

(2) F. Bellard, QEMU, a Fast and Portable Dynamic Translator, USENIX Freenix, 2005

(3) Virtual Machines, IEEE Computer, vol.38, no.5, May 2005

(4) Rosenblum et al., Virtual Machine Monitors: Current Technology and Future Trends, IEEE Computer, May 2005.

- QEMU: Architecture and Internals [slides] 

 

- Reading:

(5) A. Whitaker, R.S. Cox, M. Shaw, S.D. Gribble, Rethinking the Design of Virtual Machine Monitors, IEEE Computer, vol.38, no.5, May 2005.

(6) Kirk L. Kroeker, The Evolution of Virtualization, CACM, vol.52, no. 3, March 2009

(7) G.J. Popek, and R.P. Goldberg, Formal Requirements for Virtualizable Third Generation Architectures, CACM, vol. 17 no. 7, 1974.

Easter recess

14/4

 

Easter recess

21/4

 

 

10

28/4

 - Hardware-assisted virtualization: x86 [slides]

- Virtualization in Embedded Systems   [slides]

- RISC-V Bare Metal on Qemu [slides]  

- Assignment 7

11

5/5

- I/O in Linux Hypervisors and Virtual Machines [slides] 

- Reading:

Mendel Rosenblum, Carl Waldspurger: "I/O Virtualization". ACM Queue, Volume 9, issue 11, November 22, 2011. [ link to ACM Queue ]

 I/O Virtualization 

 

 

12

12/5

 - Linux Kernel [slides] 

- Real Time 2/2 [slides available locally ~hy428/files/slides]

- Extensions to RMA

- Synchronization
- Assignment 5 (lego project)

 

13

19/5

- ARM virtualization [slides] 

- Reading: 

Julien Grall: "Hypervisors on ARM: Overview and Design choices", Root Linux Conference 2017. [slides] 

ARM AArch64 virtualization: Hypervisor software. [link]

- I/O in Linux Hypervisors and Virtual Machines [slides] 

- Project presentations  

 

30/5

- Reading Week

Final Exam

(1st Period)

TBD

- Exam schedule

Final Exam

(2nd Period)

TBD

- Exam schedule

 

(c) Copyright University of Crete, Greece, Last Modified: 20-Jan-2025