- Department: Electronic Engineering
- Credit value: 20 credits
- Credit level: M
- Academic year of delivery: 2023-24
- See module specification for other years: 2024-25
This advanced programming module covers two main things: the challenges of writing low-level “bare-metal” software for embedded systems, and the programmer’s model of the ARM Cortex-M processor core family. It covers several advanced features of the C language, and is designed to give you the skills you will need for a job in firmware programming. It also provides skills relevant to other programming careers, or to CPU development.
Bare-metal programming can be great fun, but also frustrating and time-consuming. You’ll need reasonable programming skills, but don’t worry too much if your C is a little rusty. You’ll also need to be prepared to devote significant time to completing the lab work each week - this is not a module in which you can coast!
Pre-requisite modules
Co-requisite modules
- None
Prohibited combinations
- None
Occurrence | Teaching period |
---|---|
A | Semester 1 2023-24 |
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 introduce advanced features and restrictions of the C language (C99/C11), including type qualifiers, void pointers, unions, and type punning; and of its build system, including preprocessor directives and linker scripts
To explore the programming of parts of a small operating system, including context switching and synchronisation algorithms suitable for embedded systems
To study the causes of deadlock and identify a range of solutions
To introduce effective embedded systems development methodologies, including test-driven design (TDD)
To provide practical experience of the above in the context of an ARM-based embedded system
Graduate skills aims:
To develop skills in critically evaluating and synthesising new information based on researched information and writing concise technical reports appropriate for the target audience
Subject content learning outcomes
After successful completion of this module, students will:
Be able to discuss mutual exclusion, deadlock, priority inversion, and priority inheritance and their relevance to operating system design and configuration
Be able to explain race conditions and the need for atomic operations, and the mechanisms available for their implementation on an ARM Cortex M device
Know how and when to use a variety of type qualifiers in C
Understand the C build process and how the preprocessor, compiler and linker interact
Understand the C type system and describe its limitations
Know how TDD can be applied to embedded systems development
Be able to write substantial parts of a small operating system kernel for an ARM Cortex M device, in C and assembly language
Graduate skills learning outcomes
After successful completion of this module, students will be able to:
Construct concise technical reports that critically evaluate and synthesise new information based on research, appropriate for the target audience
Effectively solve problems and think logically about identifying and correcting problems
Task | % of module mark |
---|---|
Essay/coursework | 100 |
None
Task | % of module mark |
---|---|
Essay/coursework | 100 |
'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.
The School of PET 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. The School will endeavour to return all exam feedback within the timescale set out in the University's Policy on Assessment Feedback Turnaround Time. The School would normally expect to adhere to the times given, however, it is possible that exceptional circumstances may delay feedback. The School 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.
TBC