Efficient Embedded Systems Design and Programming

This online course from Arm Education Media is suitable for introductory and mid-level learners working in Electrical, Electronic and Computer Engineering and Computer Science related subjects. It includes lecture slides, lab videos, lab code with solutions, quizzes and more.

The course covers both fundamentals and practical knowledge. State-of-the-art hardware platforms are harnessed in the labs to support the course’s learning outcomes. These use the industry-standard Keil MDK-Arm tool for application development.

If you are interested in an institutional subscription, contact the Arm Education Media team at edumedia@arm.com

Course aims

The course aims to help learners develop their capability of designing and programming Arm-based embedded systems and implementing them in low-level hardware using standard C and assembly language. 

Learning outcomes

Knowledge and understanding of

  • Arm processor architectures
  • Arm-based microcontrollers as modern embedded computing platforms
  • Software design basics, software engineering principles


  • Ability to choose between different programming techniques for embedded system design
  • Ability to evaluate implementation results (e.g. speed, cost, power) and correlate them with the corresponding programming techniques


  • Ability to use commercial tools to develop Arm-based embedded systems
  • Ability to build an Arm-based embedded system and program to satisfy given user specifications


Basic C programming


The hardware used in this course include:

  • ST NUCLEO-F401RE development board
  • Breadboard and a set of discrete components

The hardware bundle can be purchased at Digi-Key Electronics

Course syllabus

Module name
1. Introduction to Embedded Systems Design
2. Software Design Basics
3. The Arm Cortex-M4 Processor Architecture: Part 1
4. The Arm Cortex-M4 Processor Architecture: Part 2
5. C Code as Implemented in Assembly Language
6. Interrupts and Low Power Features
7. General Purpose I/O
8. Analog Interfacing
9. Timer Peripherals
10. Serial Communications

The above syllabus is indicative. It might change from time to time.