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

COMP22712 - Microcontrollers

[Formerly CS1242, COMP10242, COMP20262]
The 'official' syllabus is: COMP22712

Aims

This course aims to familiarise students with the internals of a `blank' microprocessor system. They will also be exposed to a variety of interface techniques, both at the hardware and software levels. The course will also reinforce students' ability to programme in assembly language and their appreciation of the role of an operating system.

Objectives

A student completing this course should:

  • be reasonably competent in assembler programming
  • appreciate the function and need for an operating system
  • know when and how to use interrupts
  • have experienced a wide variety of interfaces and interface techniques
  • understand the hardware-software interface and the implementation trade-offs around this boundary

Further information

This course draws on both the ARM programming introduced in COMP15111 and logic design in COMP12111 to show how parts of a computer interact.

The course is primarily practical; some semi-formal teaching is performed in the laboratory but the emphasis is on learning by doing.

The lab. manual is available.

Hardware

Locally developed hardware allows the user to develop applications which cross the hardware/software divide. This comprises an ARM microprocessor board with FPGA support and custom developed software.

[A pointer to the previous hardware is included here in case anyone is still looking for it.]

Software

The equipment is supported by our own software. The primary support is from the Komodo monitor which acts as a remote monitor for the board's state.

The assembler is also locally developed. It uses ARM standard mnemonics with a few minor extensions. A brief manual is available.

Hobby

The School has a library of microcontroller equipment available on free loan to students. This is primarily based around the popular Arduino microcontrollers but there are plenty of other units there too.

There are not many introductory texts based around ARM programming. These may be worth a look:

Books

There are not many introductory texts based around ARM programming. These may be worth a look:

This is not an introductory book, but if you want to get more seriously into what the ARM will do: