CS-473 / 6 credits

Teacher: Kluter Ties Jan Henderikus

Language: English


Summary

To efficiently program embedded systems an understanding of their architectures is required. After following this course students will be able to take an existing SoC, understand its architecture, and efficiently program it.

Content

Hardware elements found in embedded systems:

  • Flash, tightly couples memories, SDRAM, DDR.
  • IO-interfaces and protocols (RS232, I2C, I2S, SPI).
  • Bus architectures.

Architecture imposed restrictions:

  • Memory map and memory holes.
  • Cached and non-cached regions.
  • Interrupt latencies, bus latencies, task-switch latencies.

Software techniques:

  • BIOS/firmware
  • DMA and computation/data-transfer overlaps
  • Hot-spot detection and hardware/software profiling

Learning Prerequisites

Recommended courses

CS-200 Computer architecture or CS-208 Computer architecture I; CS-209 Computer architecture II

Important concepts to start the course

  • C/C++ programming skills
  • Basic Verilog knowledge

Learning Outcomes

  • Analyze and understand the architecture of embedded systems (SoC's)
  • Write a firmeware that initializes an embedded system and efficiently implement the required functionality
  • Explain the different latencies present in an embedded system and how these latencies influence the execution time on the firmware
  • Profile an embedded system and pin-point the hardware related and software induced hot-spots
  • understand the different types of memories present in an embedded systems and how to use them
  • Program the different types of I/O devices present in an embedded system and know how their protocol works

Teaching methods

Ex cathedra with practical exercises (in groups of 2 students)

Expected student activities

  • Reports of practical exercises
  • Written exam

Assessment methods

  • Lab reports : 50%
  • Final written exam : 50%

Supervision

Office hours No
Assistants Yes
Others Electronic forum and Moodle

Resources

Moodle Link

In the programs

  • Semester: Fall
  • Exam form: During the semester (winter session)
  • Subject examined: System programming for Systems-on-chip
  • Courses: 2 Hour(s) per week x 14 weeks
  • Exercises: 2 Hour(s) per week x 14 weeks
  • Type: optional
  • Semester: Fall
  • Exam form: During the semester (winter session)
  • Subject examined: System programming for Systems-on-chip
  • Courses: 2 Hour(s) per week x 14 weeks
  • Exercises: 2 Hour(s) per week x 14 weeks
  • Type: optional
  • Semester: Fall
  • Exam form: During the semester (winter session)
  • Subject examined: System programming for Systems-on-chip
  • Courses: 2 Hour(s) per week x 14 weeks
  • Exercises: 2 Hour(s) per week x 14 weeks
  • Type: optional
  • Semester: Fall
  • Exam form: During the semester (winter session)
  • Subject examined: System programming for Systems-on-chip
  • Courses: 2 Hour(s) per week x 14 weeks
  • Exercises: 2 Hour(s) per week x 14 weeks
  • Type: optional
  • Semester: Fall
  • Exam form: During the semester (winter session)
  • Subject examined: System programming for Systems-on-chip
  • Courses: 2 Hour(s) per week x 14 weeks
  • Exercises: 2 Hour(s) per week x 14 weeks
  • Type: optional
  • Semester: Fall
  • Exam form: During the semester (winter session)
  • Subject examined: System programming for Systems-on-chip
  • Courses: 2 Hour(s) per week x 14 weeks
  • Exercises: 2 Hour(s) per week x 14 weeks
  • Type: optional
  • Semester: Fall
  • Exam form: During the semester (winter session)
  • Subject examined: System programming for Systems-on-chip
  • Courses: 2 Hour(s) per week x 14 weeks
  • Exercises: 2 Hour(s) per week x 14 weeks
  • Type: optional
  • Semester: Fall
  • Exam form: During the semester (winter session)
  • Subject examined: System programming for Systems-on-chip
  • Courses: 2 Hour(s) per week x 14 weeks
  • Exercises: 2 Hour(s) per week x 14 weeks
  • Type: optional
  • Semester: Fall
  • Exam form: During the semester (winter session)
  • Subject examined: System programming for Systems-on-chip
  • Courses: 2 Hour(s) per week x 14 weeks
  • Exercises: 2 Hour(s) per week x 14 weeks
  • Type: optional
  • Semester: Fall
  • Exam form: During the semester (winter session)
  • Subject examined: System programming for Systems-on-chip
  • Courses: 2 Hour(s) per week x 14 weeks
  • Exercises: 2 Hour(s) per week x 14 weeks
  • Type: optional
  • Semester: Fall
  • Exam form: During the semester (winter session)
  • Subject examined: System programming for Systems-on-chip
  • Courses: 2 Hour(s) per week x 14 weeks
  • Exercises: 2 Hour(s) per week x 14 weeks
  • Type: optional
  • Semester: Fall
  • Exam form: During the semester (winter session)
  • Subject examined: System programming for Systems-on-chip
  • Courses: 2 Hour(s) per week x 14 weeks
  • Exercises: 2 Hour(s) per week x 14 weeks
  • Type: optional
  • Exam form: During the semester (winter session)
  • Subject examined: System programming for Systems-on-chip
  • Courses: 2 Hour(s) per week x 14 weeks
  • Exercises: 2 Hour(s) per week x 14 weeks
  • Type: optional

Reference week

Tuesday, 12h - 14h: Lecture INF3

Tuesday, 14h - 16h: Exercise, TP INF3

Related courses

Results from graphsearch.epfl.ch.