ARM Embedded System Design


The course provides the skills needed to develop software for ARM based embedded systems. The course explains the ARM architecture, then demonstrates the advantages of programming in C instead of the microcontroller’s specific assembly language, including faster development, improved portability, and reusability. The course is taught using an ARM development kit and related add-on boards. This is a very practical, results-oriented course, which will provide knowledge and skills which can be applied immediately.


  • Good programming knowledge.

  • C programming basics


  • Duration: 64 hours

  • Span: 8 weeks


Essential C

Types, Declaration, Exp, functions

  • Basic types and declarations

  • Initialization

  • Const and volatile

  • Expressions and operators

  • Short Circuiting

  • Size of

  • typedef


  • Functions

  • Stack

  • Importance of Function Prototypes

  • storage class

Pointer and Array Basics

  • Simple Pointers

  • Single Dimensional Arrays

  • Arrays Initialization

  • Pointer and Array Names

  • Pointer Arithmetic

  • The Square bracket Notation

  • Passing Arrays to Function

  • Returning Arrays from Function Pitfall

  • NULL Pointers

  • Function Pointers

Pointers and Strings

  • Strings

  • String Literals

  • String Literals and Arrays

  • Null Strings

  • String Literal Pitfalls


  • Preprocessor Constants

  • Preprocessor Macros

  • Macro Pitfalls

  • Conditional Compilation

Embedded System Programming

Hardware Fundamentals

Embedded Systems
  • What Is an Embedded System?

  • Define the components of an embedded systems

Digital Electronics
  • Logic Gates

  • Flip flops

  • Clocks

  • Counters and Shift Registers

  • Decoders and Encoders

  • Demultiplexers and Multiplexers

  • Read Only Memory (ROM) - PROM, EPROM, EEPROM, Flash EEPROM

  • Random Access Memory (RAM) - Static RAM, Dynamic RAM


  • Introduction

  • Architecture

  • On-chip program Memory

  • On-chip Data RAM

  • Bi-directional and Individually Addressable IO Lines

  • Timers/Counters

  • UART

  • Interrupt Structure

  • Clock Oscillator

  • On Chip I2C and SPI bus controllers

ARM Introduction

ARM Architecture
  • ARM Architecture

  • Register set

  • Pipeline

  • Exceptions & Interrupts

  • ARM Processor Families

  • SOC Architecture

  • Peripherals access

  • Write, compile, link, and test embedded C programs.

  • Use the embedded tools including: C compiler and linker.

  • Download and run programs on an evaluation target board.

  • Working with libraries

Human Interface Devices

  • LEDs, Keys

  • Seven-segment display

Timers and Interrupts

  • Interrupts

  • Interrupt Vector Table

  • Writing Interrupt Handlers

  • Timers and Counters

Motors and Relays

  • Relays

  • Stepper Motors

I2C and SPI

  • On-board Interconnects

  • I2C protocol

  • SPI protocol

  • I2C vs SPI Comparison

  • Accessing I2C Slave Devices

  • Accessing SPI Slave Devices

Asynchronous Serial Communications

  • UART, RS-232C

  • Sending and Receiving Data from PC