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

This is an archived syllabus from 2021-2022

COMP22712 Microcontrollers syllabus 2021-2022

COMP22712 materials

COMP22712 Microcontrollers

Level 2
Credits: 10
Enrolled students: 41

Course leader: Jim Garside

Additional staff: view all staff


  • Pre-Requisite (Compulsory): COMP15111

Assessment methods

  • 100% Practical skills assessment
Sem 2 w20-27,31-33 Lab Tootill (0 + 1) Tue 09:00 - 11:00 G
Sem 2 w20-27,31-33 Lab Tootill (0 + 1) Thu 09:00 - 11:00 G
Sem 2 w20-27,31-33 Lab Tootill (0 + 1) Wed 10:00 - 12:00 G
Sem 2 w20-27,31-33 Lab Tootill (0 + 1) Fri 11:00 - 13:00 F
Sem 2 w20-27,31-33 Lab Tootill (0 + 1) Tue 13:00 - 15:00 G
Sem 2 w20-27,31,33 Lab Tootill (0 + 1) Mon 11:00 - 13:00 F
Themes to which this unit belongs
  • None


The module is a strong practical reinforcement of the software/hardware interface.  It provides experience in hardware/software codesign as well as dealing with interfacing techniques, from 'bit fiddling' to interrupt routines.  There is also an underpinning of operating systems and their implications in machine architecture.  The module uses custom designed hardware and software tools developed locally for this specific purpose.

This course unit detail provides the framework for delivery in 20/21 and may be subject to change due to any additional Covid-19 impact.  Please see Blackboard / course unit related emails for any further updates.


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.


  • 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]

Teaching methods


No formal lectures


44 hours in total, 22 2-hour sessions

Feedback methods

Direct verbal feedback and advice in scheduled laboratory sessions.

'Automatic' feedback from tools seeing exercises work/fail.

Written feedback by annotating listings from submitted exercises.

Study hours

  • Practical classes & workshops (24 hours)

Employability skills

  • Analytical skills
  • Innovation/creativity
  • Problem solving
  • Other

Learning outcomes

On successful completion of this unit, a student will be able to:

  • interface, from the software side input and output devices with an embedded controller
  • customise simple digital I/O hardware
  • properly understand the von Neumann memory architecture (I can't think of a circumlocution which expresses this any better even if it does use a naughty word!)
  • write reasonably sizeable assembly language routines with all the familiarity with processor architecture that entails
  • write I/O software for parallel interfaces, including time-division multiplexing and timers
  • write interrupt-driven code
  • structure, lay-out and document code to a maintainable standard

Reading list

ARM assembly language : fundamentals and techniques Hohl, William, author.9781482229882CRC Press2014
ARM assembly language : an introduction Gibson, J. R.9781847536969Luluc2007.
ARM system developer's guide : designing and optimizing system software Sloss, Andrew N.9780080490496Elsevier/ Morgan Kaufman©2004

Additional notes

Course unit materials

Links to course unit teaching materials can be found on the School of Computer Science website for current students.