System programming for Systems-on-chip
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 |
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