Real Time Embedded Programming ENG5220
- Academic Session: 2023-24
- School: School of Engineering
- Credits: 20
- Level: Level 5 (SCQF level 11)
- Typically Offered: Semester 2
- Available to Visiting Students: Yes
This course develops in students an understanding of the theory and practice of real-time embedded systems firmware and application programming, and introduces students to the techniques and standards of software design, implementation and development for such systems.
4 hour teaching and lab sessions per week
100% from continuous assessment
Main Assessment In: April/May
The aims of this course are to:
■ introduce students to advanced hardware design and development of Linux based real-time embedded systems in C++;
■ demonstrate the functional interactions between embedded software, hardware peripherals and communications in real time systems;
■ undertake project based design, development, documentation and dissemination of an embedded system meeting a given specification.
Intended Learning Outcomes of Course
By the end of this course students will be able to:
■ write C++/object oriented programs on a Linux based embedded system (e.g. Raspberry PI) and use suitable tools to optimise and debug them;
■ explain the difference between polling, interrupt-driven and collaborative/preemptive real time operating systems programming and select the most appropriate for each application;
■ write multi-threaded applications;
■ write a GUI in C++ which allows user interaction;
■ use industry standards such as RS232, SPI, I2C, I2S, LIN, CAN and Ethernet to interface with peripherals and other systems;
■ design and test data acquisition hardware and analogue frontends;
■ write code that conforms to industrial coding standards and techniques (such as MISRA-C ISO 26262);
■ employ different project management techniques used in developing software for embedded systems;
■ document code to industry standards
■ deploy open source code and publicise it on social media
Minimum Requirement for Award of Credits
Students must attend the degree examination and submit at least 75% by weight of the other components of the course's summative assessment.
Students must attend the timetabled laboratory classes.