CS428 Embedded Systems Lab: Syllabus

Department of Computer Science

University of Crete

___________________________________________________________________________________________________________________________________

Area:

E4 - Computer Architecture and Computer Systems

ECTS:

6

Semester:

Spring 2021

Instructors:

Angelos Bilas


Manolis Marazakis

___________________________________________________________________________________________________________________________________


Course Info
Syllabus Policies Assignments

___________________________________________________________________________________________________________________________________

Schedule

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

15/2

- Introduction: Embedded Systems

- Embedded System Design Issues

- Wikipedia: Embedded Systems

- Lego Mindstorms NXT HW DevKit

- Assignment 1

[slides available locally ~hy428/files/slides]

- AT91SAM7S timers, clocks

- AT91SAM7S: RTT (manual)

- Hands on walk-through

[slides available locally ~hy428/files/slides]


2

22/2

- ARM interrupts (2.8 in manual, AT91note)

- AT91SAM7S AIC (manual)

- Sound: AT91SAM7S SSC (manual)

[slides available locally ~hy428/files/slides]

- PWM & Sound

- AT91SAM7S basic PIO (manual)

- AT91SAM7S PDC/DMA (manual)

- Consistent sound

- [SPY0030A datasheet available locally]

- Assignment 2 

[slides available locally ~hy428/files/slides]


3

1/3

- ARM instruct. set (manual, ref) 

[slides available locally ~hy428/files/slides]

- SPI (manual,slides)

- LCD [manual available locally]

[slides available locally ~hy428/files/slides]


4

8/3

- LCD connectivity

- Display programming

[slides available locally ~hy428/files/slides]

- 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]


5

15/3

Καθαρή Δευτέρα

- ARM interrupts in depth (2/2) 

[slides available locally ~hy428/files/slides]


6

22/3

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

- TWI (manual)

[slides available locally ~hy428/files/slides]

- ARM, AVR communication

- I2C implementation on TWI

- Passive sensor input/output

- Assignment 4 


7 (midterm week) 

29/3

- ARM, AVR communication

- Assignment 4 

- Memory technologies 

[slides available locally ~hy428/files/slides]


(1) Natarajan, S. et al., "Searching for the dream embedded memory," Solid-State Circuits Magazine, IEEE , vol.1, no.3, pp.34,44, Summer 2009. [available locally: ~hy428/files/reading/flash/dream_ieee_ssc09.pdf]

- Midterm (during class, to be determined) 

8

5/4

- NAND Flash 1/2 

[slides available locally ~hy428/files/slides]


(1) Nitin Agrawal et al. Design tradeoffs for SSD performance. In USENIX 2008 Annual Technical Conference (ATC'08). [~hy428/files/reading/flash/agarwal_atc08.pdf]

(2) Micheloni, R. et al., "Non-Volatile Memories for Removable Media," Proceedings of the IEEE , vol.97, no.1, pp.148,160, Jan. 2009. [available locally: ~hy428/files/reading/flash/micheloni_ieee97.pdf]

(3) 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/msystems_nand_nor.pdf]

(4) 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_tn2919.pdf]

- NAND Flash and SSDs 2/2 

[slides available locally ~hy428/files/slides]







9

12/4

- 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] 


- Assignment 5 (lego project) 

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

- Extensions to RMA

- Synchronization



 


10

19/4

- Assignment 6

- Introduction to Virtualization for Embedded Systems [slides]

- Introduction to Virtualization [slides] 


- Reading:

(1) James E. Smith, Ravi Nair, The Architecture of Virtual Machines, IEEE Computer, vol.38, no.5, May 2005 [PDF]

(2) Mendel Rosenblum, Tal Garfinkel, Virtual Machine Monitors: Current Technology and Future Trends, IEEE Computer, May 2005. [PDF]

(3) 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. [PDF]

(4) Kirk L. Kroeker, The Evolution of Virtualization, CACM, vol.52, no. 3, March 2009 [PDF]

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

- QEMU (dynamic Binary translation) [slides] 


- Reading:

Fabrice Bellard, QEMU, a Fast and Portable Dynamic Translator, USENIX Freenix, 2005 [PDF]



Easter recess

26/4




Easter recess

3/5




11

10/5

- Dynamic binary translation (cont.) 

- Virtualization of I/O [slides] 


- Reading:

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


12

17/5

Virtualization of I/O (cont.)


- Assignment 7


- Virtualization in the ARM Architecture [slides] 


- Reading: 

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


ARM AArch64 virtualization: Hypervisor software. [link]


13

22/5

- Virtualization in the ARM Architecture (cont.)

- Tutorial on Linux device drivers [slides] 



29/5

Reading Week

Final Exam

(1st Period)

TBD

- Instructions 

- Πρόγραμμα εξετάσεων

Final Exam

(2nd Period)

TBD

- Instructions 

- Πρόγραμμα εξετάσεων


(c) Copyright University of Crete, Greece, Last Modified: 24-Jan-2021