The University of Newcastle, Australia

Course handbook


The course takes students through various steps involved in designing practical embedded software. It also introduces the basic building blocks of an embedded system.

Availability2020 Course Timetables


  • Semester 1 - 2020

Learning outcomes

On successful completion of the course students will be able to:

1. Understand the building blocks of an embedded system (hardware and software)

2. Perform a functional hardware design for an embedded system

3. Develop software for commonly used peripheral devices

4. Write application software using simple looping executives and real-time operating systems

5. Understand and modify embedded software written by other professional developers


1.    ARM processor core

2.    Embedded programming in C for the ARM processor core

3.    Peripheral devices such as timers, UARTs, A/D converters and PWMs

4.    Bus standards such as SPI and I2C

5.    Interfacing graphic displays and touchscreens

6.    Filesystems

7.    Real-time operating systems 

8.    Common wireless communication interfaces

Assumed knowledge

ENGG1003 Introduction to Procedural Programming or SENG1110 Object Oriented Programming


ELEC1710 Digital and Computer Electronics 1 or ELEC1700 Computer Engineering 1


ELEC2700 Computer Engineering 2 or ELEC2720 Introduction to Embedded Computing

Assessment items

Project: Assignments x 3

Formal Examination: Formal Examination

Contact hours



Face to Face On Campus 2 hour(s) per Week for Full Term


Face to Face On Campus 3 hour(s) per Week for Full Term