The University of Southampton

COMP2215 Computer Systems II

Module Overview

This module will introduce you to the general principles and practices of developing software that interacts directly with the hardware and its physical environment.

Software has found its way into almost any electronic device with a typical household already possessing well over 100 computers embedded into products. These microcontrollers are complete computers integrated on a single chip, some only costing pennys and taking up no more than 2x2x2mm^3. The relative simplicity of such microcontrollers make it possible to comprehend a complete computer system within the scope of this module. At the same time these systems are state-of-the art technology with applications ranging from mobile devices and the internet-of-things, to sensor networks, distributed control architectures, and robots.

Good self-study skills and the ability to work independently on practical technical challenges are important for this module. To succeed you need to teach yourself C from on-line resources and you need to be able to install a cross-compilation tool-chain on your own computer. Please note:

  • There is no text book for this module, you will use on-line resources and publicly available documentation for libraries and circuits (see the module notes).
  • There is no individual feedback for the frequent coursework (see details below).
  • You will receive a hardware kit that includes a microcontroller development board and the peripherals needed to develop, download and debug code on the board (see the module notes).

In a typical week during this module you will have:

  • Two lectures introducing new material
  • One lecture introducing the coursework exercise due in the coming week
  • A tutorial in which the model answer for the previous coursework exercise is discussed and you can ask questions you have about your own solution
  • Reading assignments for on-line material that complements the lectures

Aims & Objectives

Aims

Knowledge and Understanding

Having successfully completed the module, you will be able to demonstrate knowledge and understanding of:

A1.  Key concepts of operating systems

A2.  Hardware requirements implied by software functionality

A3.  Implementation of simple operating system components

A4.  Capabilities and peculiarities of embedded systems

Intellectual Skills

Having successfully completed the module, you will be able to:

B1.  Design algorithms for resource-constraint systems

B2.  Understand the fundamental concepts of real-time systems

B3.  Assess the reliability of software on devices in harsh environments

Subject Specific Skills

Having successfully completed the module, you will be able to:

C1. Write system-level code in C

C2. Build and debug applications running on a microcontroller

C3. Implement software on an embedded system

Syllabus

  • Programming embedded systems
    • Debugging with limited I/O and memory
    • Asynchronous & reentrant code
    • Real-time programming
  • Input/Output
    • Physical Interfaces
    • Interrupts
    • Drivers
  • Event-driven programming
    • State machines
    • Actors
  • Timing
    • Hardware timer
    • Watchdogs
  • Memory management
    • Bootloader
    • Stack vs. heap
    • RAM vs. Flash
    • Multiprogramming
  • Scheduling
    • Preemtive multitasking
    • Real-time scheduling
    • Performance
  • Serial Communication
    •  UART, I2C/SPII, USB
  • File Systems
    • Flash file systems
    • FAT-FS
  • Embedded Applications
    • Power consumption
    • Reliability

Learning & Teaching

Learning & teaching methods

ActivityDescriptionHours
Lecture36
Tutorial12

Assessment

Assessment methods

For the weekly coursework excersises you will typically receive skeleton code that you need to modify or you can take as a starting point for your own implementation. You will receive detailed instructions for each exercise. If you submit your solution (attempt) by the deadline you will receive full marks---independent of the quality of your submission. However, the material of the exercises will be a focus of the exam. You will need a computer with one free powered USB port (required for the electronic kit you will receive) and you will need to install the cross compilation tool chain on the computer (see module notes for instructions).

The "Noteworthy contributions to the delivery of the module" are the top 5% of marks that can be achieved in this module and will be awarded for exceptionally useful contributions on the student wiki and particularly helpful patches submitted for the module materials.

MethodHoursPercentage contribution
10 Coursework Exercises-20%
Noteworthy contributions to the delivery of the module-5%
Exam1.5 hours75%

Referral Method: By examination, with the original coursework mark being carried forward

Share this module FacebookTwitterWeibo