Real Time Embedded Programming ENG5220

  • Academic Session: 2019-20
  • School: School of Engineering
  • Credits: 20
  • Level: Level 5 (SCQF level 11)
  • Typically Offered: Semester 2
  • Available to Visiting Students: Yes
  • Available to Erasmus Students: Yes

Short Description

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.

Timetable

4 hour teaching and lab sessions per week

Requirements of Entry

Mandatory Entry Requirements

None

Recommended Entry Requirements

None

Excluded Courses

None

Co-requisites

None

Assessment

100% from continuous assessment

Main Assessment In: April/May

Course Aims

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.