Skip to navigation | Skip to main content | Skip to footer

COMP22712: Microcontrollers (2011-2012)

This is an archived syllabus from 2011-2012

Level: 2
Credit rating: 10
Pre-requisites: COMP15111
Co-requisites: No Co-requisites
Duration: 11 weeks in second semester
Lectures: No formal lectures
Labs: 44 hours in total, 22 2-hour sessions
Lecturers: Jim Garside, Paul Nutter
Course lecturers: Jim Garside

Paul Nutter

Additional staff: view all staff
Sem 2 Lab Toot 0 Mon 10:00 - 12:00 I
Sem 2 Lab Toot 0 Wed 10:00 - 12:00 I
Sem 2 Lab Toot 0 Tue 11:00 - 13:00 F
Sem 2 Lab Toot 1 Tue 11:00 - 13:00 F
Sem 2 Lab Toot 0 Thu 15:00 - 17:00 F
Sem 2 Lab Toot 1 Thu 15:00 - 17:00 F
Assessment Breakdown
Exam: 0%
Coursework: 0%
Lab: 100%

Themes to which this unit belongs
  • None


This course aims to familiarise students with the use of microprocessors/microcontrollers for simple control and interfacing applications. The course aims to develop the understanding of the programming and operation of the ARM processor introduced in COMP15111 to include modular program construction, separation of user and operating system tasks and interfacing techniques at the hardware and software levels.

This course builds upon the understanding of processor operation and assembler programming introduced in COMP15111 and upon the logic design in introduced in COMP12111 to show how hardware and software interact in the solution of interfacing problems.

This module currently runs as a first year CSE course or a second year CS course. There is some variation towards the end of the module to accommodate different backgrounds.

Programme outcomeUnit learning outcomesAssessment
A3Appreciate the function and need for an operating system.
  • Lab assessment
B2 C5 C6 D5Be competent in assembler programming.
  • Lab assessment
A2 A3Know when and how to use interrupts.
  • Lab assessment
B2 B3 C5 D4Have experienced a wide variety of interfaces and interface techniques.
  • Lab assessment
A3 B3Understand the hardware-software interface and the implementation trade-offs around this boundary.
  • Lab assessment


Basic Interfacing [1]

Parallel I/O [2]

Procedure calls, Nesting & Stacking [2]

System calls, Privilege levels, Initialisation [2]

Timers [3]

Interrupts [2]

Real-time operation, User interaction [2]

Introduction to Verilog [3]/System design [3]

System design [3]/Project [3]

Reading List

Core Text
Title: ARM Assembly Language: fundamentals and techniques (2nd edition)
Author: Hohl, William and Christopher Hinds
ISBN: 9781482229851
Publisher: CRC Press
Edition: 2nd
Year: 2014

Supplementary Text
Title: ARM Assembly Language: an introduction
Author: Gibson, J. R.
ISBN: 9781847536969
Year: 2007
A reasonably priced introduction to ARM assembly code.

Supplementary Text
Title: ARM system developer's guide: designing and optimizing system software
Author: Sloss, Andrew and Dominic Symes and Chris Wright
ISBN: 9781558608740
Publisher: Elsevier
Year: 2004
Not for the faint-hearted! A 'professional' level book for those who wish to squeeze the best out of an ARM core.