ENCE361-21S1 (C) Semester One 2021

Embedded Systems 1

15 points

Start Date: Monday, 22 February 2021
End Date: Sunday, 27 June 2021
Withdrawal Dates
Last Day to withdraw from this course:
  • Without financial penalty (full fee refund): Sunday, 7 March 2021
  • Without academic penalty (including no fee refund): Friday, 14 May 2021


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.

Learning Outcomes

  • 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.
    • University Graduate Attributes

      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

Timetable 2021

Students must attend one activity from each section.

Lecture A
Activity Day Time Location Weeks
01 Tuesday 11:00 - 12:00 C3 Lecture Theatre
22 Feb - 4 Apr
26 Apr - 6 Jun
Lecture B
Activity Day Time Location Weeks
01 Thursday 09:00 - 10:00 Haere-roa 118 Ngaio Marsh Theatre
22 Feb - 4 Apr
26 Apr - 6 Jun
Lecture C
Activity Day Time Location Weeks
01 Friday 16:00 - 17:00 C3 Lecture Theatre
22 Feb - 28 Mar
26 Apr - 6 Jun
Lab A
Activity Day Time Location Weeks
01 Wednesday 14:00 - 16:00 Elec 210 Electronics Lab
22 Feb - 4 Apr
26 Apr - 6 Jun
02 Friday 10:30 - 12:30 Elec 210 Electronics Lab
22 Feb - 28 Mar
26 Apr - 6 Jun
03 Friday 13:00 - 15:00 Elec 210 Electronics Lab
22 Feb - 28 Mar
26 Apr - 6 Jun
Tutorial A
Activity Day Time Location Weeks
01 Monday 12:00 - 13:00 Rehua 005
22 Feb - 4 Apr
3 May - 6 Jun
02 Tuesday 12:00 - 13:00 Rehua 009
22 Feb - 4 Apr
26 Apr - 6 Jun

Examination and Formal Tests

Test A
Activity Day Time Location Weeks
01 Thursday 18:30 - 20:00 A1 Lecture Theatre
26 Apr - 2 May

Course Coordinator

Ciaran Moore


Le Yang


Assessment Due Date Percentage 
Project Milestone 1 4%
Test 20%
Project Milestone 2 8%
Project Demos and Code 20%
Project Report 8%
Final Exam 40%

Textbooks / Resources

Recommended Reading

ARM; ARM, "Cortex-M4 Devices Generic User Guide"; (http://infocentre.arm.com/help/topic/com.arm.doc.dui0553b/DUI0553.pdf).

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; 2019.

Simon, David E; An embedded software primer; Addison Wesley, 1999.

Yiu, Joseph; The definitive guide to ARM® Cortex®-M3 and Cortex-M4 processors; Third edition; Elsevier, Newnes, 2014.

Indicative Fees

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.

All ENCE361 Occurrences

  • ENCE361-21S1 (C) Semester One 2021