SOFTWARE FOR EMBEDDED SYSTEMS
SOFTWARE FOR EMBEDDED SYSTEMS
[Labn] indicates release of an assignment. Due date typically coincides with next release.
[Testn] indicates an in-class test for additional credit.
[Ch n] date by which chapter n of text T should have been read. (before class)
[P] date by which a report for paper P is due (graduate students only)
Please note that the schedule and exact topics of individual are subject to change. This is provided to give an overview of the class only.
Schedule
01/11 - Introduction: Overview & logistics; embedded systems, hardware [1Up, 4Up]
01/13 - Introduction: Low-level programming, tools [Lab0 (PDF)] [ESP Ch1, CPS Ch1]
01/18 - Hardware: Microcontrollers: review of architectures and peripherals; I/O; dedicated ports [1Up, 4up] [ESP Ch2-3]
01/20 - Hardware: polling and synchronous programming models [Lab1 (PDF) (files.zip)] [Test1 (solution)]
01/25 - Time: Timing constraints. [1up, 4up] [ESP Ch4]
01/27 - Hardware: Interrupt vectors; interrupt masking; interrupt handlers [1up, 4up] [Lab2 (PDF)]
02/01 - Snow Day!
02/03 - Time: Worst-case execution time analysis [1up, 3up]
02/08 - Time: Clocks and precision and accuracy [ 1up, 3up] [Lab3 (PDF)]
02/10 Time: Worst-case execution time analysis [CPS Ch 15] [WCET Survey Sample reports: 1 2] [Test2]
02/15 - Hardware: Clocks (ctd)
02/17 - Software Architectures: static task scheduling, round robin architectures, interrupts [ESP Ch5] [1up, 3up] [Lab4]
02/22 - Software Architectures: Single Program Approach, Foreground Background Systems, Multi-tasking [1up, 4up]
02/24 - Software Architectures: OS based multi-tasking; Case studies: TinyOS and uC/OS-II
03/01 - Software Architectures: OS based multi-tasking; Case studies: TinyOS and uC/OS-II
03/03 - Operating Systems: Scheduling computation in embedded and real-time operating systems [ESP 6,7,8] [Lab5] [TinyOS]
03/08 - Operating Systems: Preemption and priority-based scheduling; static priority assignment [Test3]
03/10 - Operating Systems: Schedulability bounds; response time analysis [CPS Ch10,11] [1up, 4up]
-- Spring Break --
03/22 - Operating Systems: Shared resources, release jitter, sporadic tasks; dynamic priority assignment
03/24 - Operating Systems: priority inversion; PIP v PCE [Futexes]
03/29 - EXAM [Lab6]
03/31 - Advanced Topics: High-level languages for Real-time Systems (Java) [1up, 3up]
04/05 - Advanced Topics: Real-time Specification for Java. [1up, 3up]
04/09 - Advanced Topics: Memory management; static allocation, object pooling, garbage collection [1up, 3up]
04/12 - Advanced Topics: Project planning session. Meet in the lab [Custom Allocation]
04/14 - Guest Lecture (NGC): Safety-critical Software Systems; Certification and Validation Meet in LWSN3162 [Read DO178]
04/19 - Advanced Topics: Programming techniques to reduce memory usage and power [Sensornets ]
04/21 - Advanced Topics: Programming techniques to reduce memory usage and power
04/26 - Advanced Topics: TBA [Grenade ]
04/28 - Project Presentations
Optional topics:
Modelling with synchronous languages (Signal, Lustre) [CPS Ch 6]
Turning-off hardware, restart times; memory protection and memory-safe programming for MMU-less embedded systems; recursion, reentrant code
System-on-a chip: hardware architectures; I/O interfaces and pins
status LEDs; serial port; kprintf; emulation; JTAG; real-time monitors [ESP Ch10]