Use the Tab and Up, Down arrow keys to select menu items.
Embedded Systems is the study of specialised computer hardware, such as microcontrollers, programmed to perform a series of tasks, typically using a high-level language such as C, and targeted towards dedicated applications.
Main lecture topics include:• Introduction and study of an advanced RISC-based microcontroller• Microcontroller peripherals, such as PWM, serial, and ADC/DAC modules.• Implement memory structures, such as double and circular buffers, for use in project work.• What is a hardware/software interface? How can we use application programming interface (API) libraries to build an embedded system project?• Extend hardware abstraction methods introduced in ENCE260. • Design real-time kernels, as used in multitasking operating systems, and evaluating the performance of several kernels using context diagrams and CPU load analysis.• The rate monotonic scheduling (RMS) algorithm is introduced.• Apply knowledge of computer architecture to select hardware components and complex devices, such as microprocessors, for specific applications.
At the end of this course, the student will be able to:Build on a first course in microcontrollers to design, test, and debug an embedded system to conform to a project specification. Enhance design skills by utilising internal microprocessor peripherals, such as timers, serial interfaces, and analogue-to-digital converters to build an embedded system.Learn to implement algorithms in the C programming language.Understand what is meant by the hardware and software interface and the constraints of a real-time embedded application.Write well-structured code for the development of software modules to run on an advanced microcontroller. Learn how to use a commercial high-level debugger to locate and correct programming errors. Show competency in utilising an advanced commercial toolchain to develop an embedded application.Develop a simple task scheduler for a multitasking operating system.Learn the basics of scheduling theory and develop a simple task scheduler for a real-time application. Understand event-driven programming using interrupts and background task management.
This course will provide students with an opportunity to develop the Graduate Attributes specified below:
Critically competent in a core academic discipline of their award
Students know and can critically evaluate and, where applicable, apply this knowledge to topics/issues within their majoring subject.
ENEL353, ENEL323, COSC361, ELEC361, ENEL340
Students must attend one activity from each section.
ARM, "Cortex-M4 Devices Generic User Guide";
Labrosse, Jean J;
?C/OS-III : the real-time kernel;
MicriSoBm Press, 2010.
M. Mazidi, S. Chen, Sarmad Naimi and Sepehr Naimi;
TI ARM Peripherals Programming and Interfacing: Using C language for ARM cortex;
Simon, David E;
An embedded software primer;
Addison Wesley, 1999.
The definitive guide to ARM® Cortex®-M3 and Cortex-M4 processors;
Elsevier, Newnes, 2014.
Domestic fee $986.00
International fee $5,500.00
* All fees are inclusive of NZ GST or any equivalent overseas tax, and do not include any programme level discount or additional course-related expenses.
For further information see
Electrical and Computer Engineering.