Accessibility statement

Systems Programming for Embedded Devices - ELE00063M

« Back to module search

  • Department: Electronic Engineering
  • Module co-ordinator: Dr. Andrew Pomfret
  • Credit value: 10 credits
  • Credit level: M
  • Academic year of delivery: 2021-22

Module summary

This module introduces the subject of programming in C for embedded systems. Embedded programming is different from desktop programming in some important ways. Laboratory work will build up towards using the FreeRTOS embedded operating system on an ARM-based development platform.

Module will run

Occurrence Teaching cycle
A Spring Term 2021-22

Module aims

Subject content aims:

  • To define systems programming as distinct from applications programming.
  • To introduce low-level programming concepts such as processor modes, direct interaction with the stack, and writing interrupt and exception handlers.
  • To explore the programming of a variety of task scheduling and synchronisation algorithms suitable for embedded systems.
  • To study the causes of deadlock and identify a range of solutions.
  • To provide practical experience of the above in the context of an ARM-based embedded system.


Graduate skills aims:

  • To develop skills in effective design, to learn about the importance of design in avoiding various classes of bugs, and to learn to describe a design clearly and concisely to give confidence in a product.

Module learning outcomes

Subject content learning outcomes

After successful completion of this module, students will:

  • Know how to use FreeRTOS to create multi-threaded embedded applications
  • Understand race conditions and deadlock, and the role that design plays in avoiding them
  • Be able to use more advanced aspects of the C programming language, such as type qualifiers, storage classes, and guaranteed-width data types
  • Understand race conditions and the need for atomic operations, and the mechanisms available for their implementation on an ARM Cortex M device


Graduate skills learning outcomes

After successful completion of this module, students will:

  • Be able to present a professional written report on a complex technical subject


Task Length % of module mark
N/A 100

Special assessment rules



Task Length % of module mark
N/A 100

Module feedback

'Feedback’ at a university level can be understood as any part of the learning process which is designed to guide your progress through your degree programme.  We aim to help you reflect on your own learning and help you feel more clear about your progress through clarifying what is expected of you in both formative and summative assessments.

A comprehensive guide to feedback and to forms of feedback is available in the Guide to Assessment Standards, Marking and Feedback.  This can be found at

The Department of Electronic Engineering aims to provide some form of feedback on all formative and summative assessments that are carried out during the degree programme.  In general, feedback on any written work/assignments undertaken will be sufficient so as to indicate the nature of the changes needed in order to improve the work.  Students are provided with their examination results within 20 working days of the end of any given examination period.  The Department will also endeavour to return all coursework feedback within 20 working days of the submission deadline.  The Department would normally expect to adhere to the times given, however, it is possible that exceptional circumstances may delay feedback.  The Department will endeavour to keep such delays to a minimum.  Please note that any marks released are subject to ratification by the Board of Examiners and Senate.  Meetings at the start/end of each term provide you with an opportunity to discuss and reflect with your supervisor on your overall performance to date. 

Indicative reading

No key texts.

The information on this page is indicative of the module that is currently on offer. The University is constantly exploring ways to enhance and improve its degree programmes and therefore reserves the right to make variations to the content and method of delivery of modules, and to discontinue modules, if such action is reasonably considered to be necessary by the University. Where appropriate, the University will notify and consult with affected students in advance about any changes that are required in line with the University's policy on the Approval of Modifications to Existing Taught Programmes of Study.