Systems Programming for ARM - ELE00062M
« 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
||Autumn 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.
- Be able to write substantial parts of a small operating system kernel for an ARM Cortex M device, in C and assembly language.
||% 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.