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: 2017-18
Module will run
||Spring Term 2017-18
- 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.
- Definition of systems programming: Characteristics; differences from applications programming; languages; skills.
- Systems programming basics: stacks; processor modes; exception handling models.
- Operating systems: scheduling algorithms; cooperation and pre-emption; RTC kernels; hardware abstraction; resource management, introduction to FreeRTOS.
- Synchronisation: Semaphores; mutexes; deadlock; the Coffman conditions; priority inversion and inheritance; mailboxes.
- Systems-level process management: context switching; task handles and structures; queues.
- Systems-level synchronisation support: race conditions, atomic operations, spinlocks.
Module learning outcomes
On completion of this module students are expected to be able to:
- Understand how scheduling algorithms (cooperative, fixed priority, variable priority, run-to-completion, etc.) are written.
- Understand mutual exclusion, deadlock, priority inversion, and priority inheritance and their relevance to operating system design and configuration.
- Understand race conditions and the need for atomic operations, and the mechanisms available for their implementation on an ARM Cortex M device.
- Implement an embedded system using a microcontroller and a small embedded operating system kernel.
||% of module mark
Special assessment rules
||% of module mark
Students will receive written feedback on their coursework within 4 weeks of submission.
No key texts.
Coronavirus (COVID-19): changes to courses
The 2020/21 academic year will start in September. We aim to deliver as much face-to-face teaching as we can, supported by high quality online alternatives where we must.
Find details of the measures we're planning to protect our community.
Course changes for new students