in fb twitter feed Made in India Design - Develop - Deploy

ARM Embedded System Design

Summary

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.

Pre-requisite

  • Good programming knowledge.

  • C programming basics

Duration

  • Duration: 80 hours

  • Span: 10 weeks

Syllabus

Advanced C

Types, Declaration, Exp, functions

  • Basic types and declarations

  • Initialization

  • Const and volatile

  • Expressions and operators

  • Short Circuiting

  • Size of

  • typedef

Functions

  • 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

Structures and Unions

  • Purpose of Structures

  • Structure Initialization

  • Arrays of struct

  • Field Alignment and Padding

  • Self Referential Structures

  • Mutually Referential Structures

  • Purpose of Unions

  • Union Initialization

Preprocessor

  • Preprocessor Constants

  • Preprocessor Macros

  • Macro Pitfalls

  • Conditional Compilation

  • Stringization Operator

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

Microcontrollers

  • 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
  • SOC Architecture

  • Peripherals access

ToolChains
  • 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.

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

  • DC Motors

  • H-Bridge

  • Pulse Width Modulation

  • DC Motor Speed Control

  • Stepper Motors

I2C and SPI

  • On-board Interconnects

  • I2C protocol

  • SPI protocol

  • I2C vs SPI Comparison

  • Accessing I2C Slave Devices

  • Accessing SPI Slave Devices

Analog I/Os

  • Analog Inputs

  • Reading an ADC

  • Waveform generation

  • Light Sensor

  • Temperature Sensor

Asynchronous Serial Communications

  • UART, RS-232C

  • Sending and Receiving Data from PC